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@&gt;1#Tcomment_to_html_conversion_17#t0.0#v#</USR><Declaration>template &lt;typename T&gt; 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@&gt;1#Tcomment_to_html_conversion_17#t0.0#v#</USR><Declaration>template &lt;typename T&gt; 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@&gt;2#T#Tcomment_to_html_conversion_19#t0.0#t0.1#v#</USR><Declaration>template &lt;typename AAA, typename BBB&gt;\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@&gt;2#T#Tcomment_to_html_conversion_19#t0.0#t0.1#v#</USR><Declaration>template &lt;typename PPP, typename QQQ&gt;\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@&gt;3#T#T#NIcomment_to_html_conversion_20#t0.0#t0.1#v#</USR><Declaration>template &lt;typename AAA, typename BBB, int CCC&gt;\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@&gt;3#T#T#NIcomment_to_html_conversion_20#t0.0#t0.1#v#</USR><Declaration>template &lt;typename PPP, typename QQQ, int RRR&gt;\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@&gt;1#t&gt;2#t&gt;1#T#Tcomment_to_html_conversion_21#v#</USR><Declaration>template &lt;template &lt;template &lt;typename CCC&gt; class DDD, class BBB&gt; class AAA&gt;\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@&gt;1#t&gt;2#t&gt;1#T#Tcomment_to_html_conversion_21#v#</USR><Declaration>template &lt;template &lt;template &lt;typename RRR&gt; class SSS, class QQQ&gt; class PPP&gt;\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@&gt;2#T#t&gt;2#T#t&gt;2#T#Tcomment_to_html_conversion_22#v#</USR><Declaration>template &lt;class C1, template &lt;class C2, template &lt;class C3, class C4&gt; class BBB&gt;\n      class AAA&gt;\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@&gt;2#T#t&gt;2#T#t&gt;2#T#Tcomment_to_html_conversion_22#v#</USR><Declaration>template &lt;class CCC1, template &lt;class CCC2, template &lt;class CCC3, class CCC4&gt;\n                            class QQQ&gt; class PPP&gt;\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