aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-12-05 19:54:11 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-12-05 19:54:11 +0000
commit02a2e5a1dd0ad1b93f66040fc7aae6d69a918daf (patch)
tree3cf1f5925d905d44fd1349b8e1248b507dac0114
parente0c01963514ed158208cde1f3a0343a788156e27 (diff)
Testing C++ declarations embedded in
<declaration> 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
-rw-r--r--lib/AST/DeclPrinter.cpp2
-rw-r--r--test/Index/comment-to-html-xml-conversion.cpp2
-rw-r--r--unittests/AST/DeclPrinterTest.cpp29
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=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="3"><Name>comment_to_xml_conversion_01</Name><USR>c:@C@comment_to_xml_conversion_01@F@comment_to_xml_conversion_01#I#</USR><Declaration></Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah.</Para></Discussion></Parameter></Parameters></Function>]
+// CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: CXXConstructor=comment_to_xml_conversion_01:{{.*}} FullCommentAsXML=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="3"><Name>comment_to_xml_conversion_01</Name><USR>c:@C@comment_to_xml_conversion_01@F@comment_to_xml_conversion_01#I#</USR><Declaration>comment_to_xml_conversion_01(int aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah.</Para></Discussion></Parameter></Parameters></Function>]
/// 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<T...>(const A<T...> &a)"));
}
#if !defined(_MSC_VER)