[PATCH] New AST matcher: isConstexpr()
Szabolcs Sipos
szabolcs.sipos at ericsson.com
Thu May 21 12:48:38 PDT 2015
Hi klimek,
Adding a new AST matcher that matches constexpr function declarations.
http://reviews.llvm.org/D9917
Files:
include/clang/ASTMatchers/ASTMatchers.h
unittests/ASTMatchers/ASTMatchersTest.cpp
Index: include/clang/ASTMatchers/ASTMatchers.h
===================================================================
--- include/clang/ASTMatchers/ASTMatchers.h
+++ include/clang/ASTMatchers/ASTMatchers.h
@@ -2709,6 +2709,19 @@
return Node.isDeleted();
}
+/// \brief Matches constexpr function declarations.
+///
+/// Given:
+/// \code
+/// int foo();
+/// constexpr int bar();
+/// \endcode
+/// functionDecl(isConstexpr())
+/// matches the declaration of bar, but not foo.
+AST_MATCHER(FunctionDecl, isConstexpr) {
+ return Node.isConstexpr();
+}
+
/// \brief Matches the condition expression of an if statement, for loop,
/// or conditional operator.
///
Index: unittests/ASTMatchers/ASTMatchersTest.cpp
===================================================================
--- unittests/ASTMatchers/ASTMatchersTest.cpp
+++ unittests/ASTMatchers/ASTMatchersTest.cpp
@@ -1595,6 +1595,13 @@
functionDecl(hasName("Func"), isDeleted())));
}
+TEST(isConstexpr, MatchesConstexprFunctionDeclarations) {
+ EXPECT_TRUE(notMatches("int foo();",
+ functionDecl(hasName("foo"), isConstexpr())));
+ EXPECT_TRUE(matches("constexpr int bar();",
+ functionDecl(hasName("bar"), isConstexpr())));
+}
+
TEST(HasAnyParameter, DoesntMatchIfInnerMatcherDoesntMatch) {
EXPECT_TRUE(notMatches("class Y {}; class X { void x(int) {} };",
methodDecl(hasAnyParameter(hasType(recordDecl(hasName("X")))))));
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9917.26267.patch
Type: text/x-patch
Size: 1474 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150521/45aa301f/attachment.bin>
More information about the cfe-commits
mailing list