diff options
Diffstat (limited to 'clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp')
-rw-r--r-- | clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp b/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp index 9a24c80cc7f..e716484e207 100644 --- a/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp +++ b/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp @@ -179,6 +179,19 @@ TEST_F(RegistryTest, PolymorphicMatchers) { EXPECT_FALSE(matches("int Foo;", RecordDecl)); EXPECT_TRUE(matches("class Foo {};", RecordDecl)); EXPECT_FALSE(matches("void Foo(){};", RecordDecl)); + + Matcher<Stmt> ConstructExpr = constructMatcher( + "constructExpr", + constructMatcher( + "hasDeclaration", + constructMatcher( + "methodDecl", + constructMatcher( + "ofClass", constructMatcher("hasName", std::string("Foo")))))) + .getTypedMatcher<Stmt>(); + EXPECT_FALSE(matches("class Foo { public: Foo(); };", ConstructExpr)); + EXPECT_TRUE( + matches("class Foo { public: Foo(); }; Foo foo = Foo();", ConstructExpr)); } TEST_F(RegistryTest, TemplateArgument) { |