From 02a2e5a1dd0ad1b93f66040fc7aae6d69a918daf Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Wed, 5 Dec 2012 19:54:11 +0000 Subject: [PATCH] Testing C++ declarations embedded in tag of Comment XML. Added DeclPrint support for constructors and fix tests accordingly. This is wip. // rdar://12378714 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169412 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/DeclPrinter.cpp | 2 ++ test/Index/comment-to-html-xml-conversion.cpp | 2 +- unittests/AST/DeclPrinterTest.cpp | 29 +++++++------------ 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/lib/AST/DeclPrinter.cpp b/lib/AST/DeclPrinter.cpp index d06ccc5157..95d56b69d7 100644 --- a/lib/AST/DeclPrinter.cpp +++ b/lib/AST/DeclPrinter.cpp @@ -547,6 +547,8 @@ void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) { } Out << ")"; } + if (!Proto.empty()) + Out << Proto; } else AFT->getResultType().print(Out, Policy, Proto); diff --git a/test/Index/comment-to-html-xml-conversion.cpp b/test/Index/comment-to-html-xml-conversion.cpp index e9d2ad5e18..2809415c6c 100644 --- a/test/Index/comment-to-html-xml-conversion.cpp +++ b/test/Index/comment-to-html-xml-conversion.cpp @@ -593,7 +593,7 @@ class comment_to_xml_conversion_01 { /// \param aaa Blah blah. comment_to_xml_conversion_01(int aaa); -// CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: CXXConstructor=comment_to_xml_conversion_01:{{.*}} FullCommentAsXML=[comment_to_xml_conversion_01c:@C@comment_to_xml_conversion_01@F@comment_to_xml_conversion_01#I#aaa0in Blah blah.] +// CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: CXXConstructor=comment_to_xml_conversion_01:{{.*}} FullCommentAsXML=[comment_to_xml_conversion_01c:@C@comment_to_xml_conversion_01@F@comment_to_xml_conversion_01#I#comment_to_xml_conversion_01(int aaa)aaa0in Blah blah.] /// Aaa. ~comment_to_xml_conversion_01(); diff --git a/unittests/AST/DeclPrinterTest.cpp b/unittests/AST/DeclPrinterTest.cpp index a2fc839b9c..a770022e05 100644 --- a/unittests/AST/DeclPrinterTest.cpp +++ b/unittests/AST/DeclPrinterTest.cpp @@ -412,8 +412,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl1) { " A();" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A();" + "A()")); } TEST(DeclPrinter, TestCXXConstructorDecl2) { @@ -422,8 +421,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl2) { " A(int a);" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A(int a);" + "A(int a)")); } TEST(DeclPrinter, TestCXXConstructorDecl3) { @@ -432,8 +430,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl3) { " A(const A &a);" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A(const A &a);" + "A(const A &a)")); } TEST(DeclPrinter, TestCXXConstructorDecl4) { @@ -442,8 +439,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl4) { " A(const A &a, int = 0);" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A(const A &a, int = 0);" + "A(const A &a, int = 0)")); } TEST(DeclPrinter, TestCXXConstructorDecl5) { @@ -452,8 +448,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl5) { " A(const A &&a);" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A(const A &&a);" + "A(const A &&a)")); } TEST(DeclPrinter, TestCXXConstructorDecl6) { @@ -462,7 +457,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl6) { " explicit A(int a);" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); + "A(int a)")); // WRONG; Should be: "explicit A(int a);" } @@ -472,7 +467,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl7) { " constexpr A();" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); + "A()")); // WRONG; Should be: "constexpr A();" } @@ -482,8 +477,8 @@ TEST(DeclPrinter, TestCXXConstructorDecl8) { " A() = default;" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A() = default;" + "A() noexcept")); + // WRONG; Should be: "A() = delete;" } TEST(DeclPrinter, TestCXXConstructorDecl9) { @@ -492,8 +487,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl9) { " A() = delete;" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - " = delete")); - // WRONG; Should be: "A() = delete;" + "A() = delete")); } TEST(DeclPrinter, TestCXXConstructorDecl10) { @@ -503,8 +497,7 @@ TEST(DeclPrinter, TestCXXConstructorDecl10) { " A(const A &a);" "};", constructorDecl(ofClass(hasName("A"))).bind("id"), - "")); - // WRONG; Should be: "A(const A &a);" + "A(const A &a)")); } #if !defined(_MSC_VER) -- 2.40.0