Author: pcc Date: Thu Feb 6 15:52:24 2014 New Revision: 200949 URL: http://llvm.org/viewvc/llvm-project?rev=200949&view=rev Log: Add isListInitialization matcher.
Differential Revision: http://llvm-reviews.chandlerc.com/D2708 Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h?rev=200949&r1=200948&r2=200949&view=diff ============================================================================== --- cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h (original) +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h Thu Feb 6 15:52:24 2014 @@ -2186,6 +2186,11 @@ AST_POLYMORPHIC_MATCHER_P(hasAnyArgument return false; } +/// \brief Matches a constructor call expression which uses list initialization. +AST_MATCHER(CXXConstructExpr, isListInitialization) { + return Node.isListInitialization(); +} + /// \brief Matches the n'th parameter of a function declaration. /// /// Given Modified: cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp?rev=200949&r1=200948&r2=200949&view=diff ============================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp (original) +++ cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp Thu Feb 6 15:52:24 2014 @@ -231,6 +231,7 @@ RegistryMaps::RegistryMaps() { REGISTER_MATCHER(isExternC); REGISTER_MATCHER(isImplicit); REGISTER_MATCHER(isInteger); + REGISTER_MATCHER(isListInitialization); REGISTER_MATCHER(isOverride); REGISTER_MATCHER(isPrivate); REGISTER_MATCHER(isProtected); Modified: cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp?rev=200949&r1=200948&r2=200949&view=diff ============================================================================== --- cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp (original) +++ cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp Thu Feb 6 15:52:24 2014 @@ -1637,6 +1637,17 @@ TEST(Matcher, ConstructorArgumentCount) Constructor1Arg)); } +TEST(Matcher, ConstructorListInitialization) { + StatementMatcher ConstructorListInit = constructExpr(isListInitialization()); + + EXPECT_TRUE( + matches("class X { public: X(int); }; void x() { X x{0}; }", + ConstructorListInit)); + EXPECT_FALSE( + matches("class X { public: X(int); }; void x() { X x(0); }", + ConstructorListInit)); +} + TEST(Matcher,ThisExpr) { EXPECT_TRUE( matches("struct X { int a; int f () { return a; } };", thisExpr())); _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
