16553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// RUN: rm -rf %t 26553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// RUN: mkdir %t 36553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s > %t/out 46553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// RUN: FileCheck %s < %t/out 56553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// Test to search overridden methods for documentation when overriding method has none. rdar://12378793 66553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 76553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// Ensure that XML we generate is not invalid. 86553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// RUN: FileCheck %s -check-prefix=WRONG < %t/out 96553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian// WRONG-NOT: CommentXMLInvalid 106553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 116553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam 126553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \param AAA Blah blah 136553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<typename T> 146553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_17(T AAA); 156553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_17</Name><USR>c:@FT@>1#Tcomment_to_html_conversion_17#t0.0#v#</USR><Declaration>template <typename T> void comment_to_html_conversion_17(T AAA)</Declaration><Parameters><Parameter><Name>AAA</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah</Para></Discussion></Parameter></Parameters></Function>] 17e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 186553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<typename T> 196553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_17(T PPP); 206553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_17</Name><USR>c:@FT@>1#Tcomment_to_html_conversion_17#t0.0#v#</USR><Declaration>template <typename T> void comment_to_html_conversion_17(T PPP)</Declaration><Parameters><Parameter><Name>PPP</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah</Para></Discussion></Parameter></Parameters></Function>] 22e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 23e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko//===----------------------------------------------------------------------===// 24e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 256553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam BBB Bbb 266553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam AAA Aaa 276553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<typename AAA, typename BBB> 286553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_19(AAA aaa, BBB bbb); 296553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 300e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_19</Name><USR>c:@FT@>2#T#Tcomment_to_html_conversion_19#t0.0#t0.1#v#</USR><Declaration>template <typename AAA, typename BBB>\nvoid comment_to_html_conversion_19(AAA aaa, BBB bbb)</Declaration><TemplateParameters><Parameter><Name>AAA</Name><Index>0</Index><Discussion><Para> Aaa</Para></Discussion></Parameter><Parameter><Name>BBB</Name><Index>1</Index><Discussion><Para> Bbb </Para></Discussion></Parameter></TemplateParameters></Function>] 31e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 326553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<typename PPP, typename QQQ> 336553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_19(PPP aaa, QQQ bbb); 346553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 350e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_19</Name><USR>c:@FT@>2#T#Tcomment_to_html_conversion_19#t0.0#t0.1#v#</USR><Declaration>template <typename PPP, typename QQQ>\nvoid comment_to_html_conversion_19(PPP aaa, QQQ bbb)</Declaration><TemplateParameters><Parameter><Name>PPP</Name><Index>0</Index><Discussion><Para> Aaa</Para></Discussion></Parameter><Parameter><Name>QQQ</Name><Index>1</Index><Discussion><Para> Bbb </Para></Discussion></Parameter></TemplateParameters></Function>] 36e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 37e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko//===----------------------------------------------------------------------===// 38e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 396553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam BBB Bbb 406553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam UUU Zzz 416553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam CCC Ccc 426553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam AAA Aaa 436553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<typename AAA, typename BBB, int CCC> 446553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_20(AAA aaa, BBB bbb); 456553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 460e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_20</Name><USR>c:@FT@>3#T#T#NIcomment_to_html_conversion_20#t0.0#t0.1#v#</USR><Declaration>template <typename AAA, typename BBB, int CCC>\nvoid comment_to_html_conversion_20(AAA aaa, BBB bbb)</Declaration><TemplateParameters><Parameter><Name>AAA</Name><Index>0</Index><Discussion><Para> Aaa</Para></Discussion></Parameter><Parameter><Name>BBB</Name><Index>1</Index><Discussion><Para> Bbb </Para></Discussion></Parameter><Parameter><Name>CCC</Name><Index>2</Index><Discussion><Para> Ccc </Para></Discussion></Parameter><Parameter><Name>UUU</Name><Discussion><Para> Zzz </Para></Discussion></Parameter></TemplateParameters></Function>] 47e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 486553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<typename PPP, typename QQQ, int RRR> 496553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_20(PPP aaa, QQQ bbb); 506553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 510e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_20</Name><USR>c:@FT@>3#T#T#NIcomment_to_html_conversion_20#t0.0#t0.1#v#</USR><Declaration>template <typename PPP, typename QQQ, int RRR>\nvoid comment_to_html_conversion_20(PPP aaa, QQQ bbb)</Declaration><TemplateParameters><Parameter><Name>PPP</Name><Index>0</Index><Discussion><Para> Aaa</Para></Discussion></Parameter><Parameter><Name>QQQ</Name><Index>1</Index><Discussion><Para> Bbb </Para></Discussion></Parameter><Parameter><Name>RRR</Name><Index>2</Index><Discussion><Para> Ccc </Para></Discussion></Parameter><Parameter><Name>UUU</Name><Discussion><Para> Zzz </Para></Discussion></Parameter></TemplateParameters></Function>] 52e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 53e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko//===----------------------------------------------------------------------===// 54e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 556553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam AAA Aaa 566553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam BBB Bbb 576553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam CCC Ccc 586553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam DDD Ddd 596553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<template<template<typename CCC> class DDD, class BBB> class AAA> 606553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_21(); 616553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 620e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_21</Name><USR>c:@FT@>1#t>2#t>1#T#Tcomment_to_html_conversion_21#v#</USR><Declaration>template <template <template <typename CCC> class DDD, class BBB> class AAA>\nvoid comment_to_html_conversion_21()</Declaration><TemplateParameters><Parameter><Name>AAA</Name><Index>0</Index><Discussion><Para> Aaa </Para></Discussion></Parameter><Parameter><Name>BBB</Name><Discussion><Para> Bbb </Para></Discussion></Parameter><Parameter><Name>CCC</Name><Discussion><Para> Ccc </Para></Discussion></Parameter><Parameter><Name>DDD</Name><Discussion><Para> Ddd</Para></Discussion></Parameter></TemplateParameters></Function>] 63e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 646553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<template<template<typename RRR> class SSS, class QQQ> class PPP> 656553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_21(); 666553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 670e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_21</Name><USR>c:@FT@>1#t>2#t>1#T#Tcomment_to_html_conversion_21#v#</USR><Declaration>template <template <template <typename RRR> class SSS, class QQQ> class PPP>\nvoid comment_to_html_conversion_21()</Declaration><TemplateParameters><Parameter><Name>PPP</Name><Index>0</Index><Discussion><Para> Aaa </Para></Discussion></Parameter><Parameter><Name>QQQ</Name><Discussion><Para> Bbb </Para></Discussion></Parameter><Parameter><Name>RRR</Name><Discussion><Para> Ccc </Para></Discussion></Parameter><Parameter><Name>SSS</Name><Discussion><Para> Ddd</Para></Discussion></Parameter></TemplateParameters></Function>] 68e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 69e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko//===----------------------------------------------------------------------===// 70e60729a17c5b5eb725be00ec986bf5675c0680e3Dmitri Gribenko 716553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam C1 Ccc 1 726553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam AAA Zzz 736553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam C2 Ccc 2 746553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam C3 Ccc 3 756553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam C4 Ccc 4 766553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian/// \tparam BBB Bbb 77032f25329565adfc542f001953565091eccba130Daniel Jaspertemplate <class C1, template <class C2, template <class C3, class C4> class BBB > class AAA> 786553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_22(); 796553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 800e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_22</Name><USR>c:@FT@>2#T#t>2#T#t>2#T#Tcomment_to_html_conversion_22#v#</USR><Declaration>template <class C1, template <class C2, template <class C3, class C4> class BBB>\n class AAA>\nvoid comment_to_html_conversion_22()</Declaration><TemplateParameters><Parameter><Name>C1</Name><Index>0</Index><Discussion><Para> Ccc 1 </Para></Discussion></Parameter><Parameter><Name>AAA</Name><Index>1</Index><Discussion><Para> Zzz </Para></Discussion></Parameter><Parameter><Name>C2</Name><Discussion><Para> Ccc 2 </Para></Discussion></Parameter><Parameter><Name>C3</Name><Discussion><Para> Ccc 3 </Para></Discussion></Parameter><Parameter><Name>C4</Name><Discussion><Para> Ccc 4 </Para></Discussion></Parameter><Parameter><Name>BBB</Name><Discussion><Para> Bbb</Para></Discussion></Parameter></TemplateParameters></Function>] 816553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 826553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahaniantemplate<class CCC1, template<class CCC2, template<class CCC3, class CCC4> class QQQ> class PPP> 836553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanianvoid comment_to_html_conversion_22(); 846553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 850e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}overriding-ftemplate-comments.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_22</Name><USR>c:@FT@>2#T#t>2#T#t>2#T#Tcomment_to_html_conversion_22#v#</USR><Declaration>template <class CCC1, template <class CCC2, template <class CCC3, class CCC4>\n class QQQ> class PPP>\nvoid comment_to_html_conversion_22()</Declaration><TemplateParameters><Parameter><Name>CCC1</Name><Index>0</Index><Discussion><Para> Ccc 1 </Para></Discussion></Parameter><Parameter><Name>PPP</Name><Index>1</Index><Discussion><Para> Zzz </Para></Discussion></Parameter><Parameter><Name>CCC2</Name><Discussion><Para> Ccc 2 </Para></Discussion></Parameter><Parameter><Name>CCC3</Name><Discussion><Para> Ccc 3 </Para></Discussion></Parameter><Parameter><Name>CCC4</Name><Discussion><Para> Ccc 4 </Para></Discussion></Parameter><Parameter><Name>QQQ</Name><Discussion><Para> Bbb</Para></Discussion></Parameter></TemplateParameters></Function>] 866553c686cb419b22b4c79d05a422fb1e96f6e122Fariborz Jahanian 87