diff options
Diffstat (limited to 'clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp')
-rw-r--r-- | clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp b/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp index d0d42740ab0..d546fe59ff9 100644 --- a/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp +++ b/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp @@ -157,6 +157,20 @@ TEST_F(RegistryTest, PolymorphicMatchers) { #endif } +TEST_F(RegistryTest, TemplateArgument) { + Matcher<Decl> HasTemplateArgument = constructMatcher( + "classTemplateSpecializationDecl", + constructMatcher( + "hasAnyTemplateArgument", + constructMatcher("refersToType", + constructMatcher("asString", std::string("int"))))) + .getTypedMatcher<Decl>(); + EXPECT_TRUE(matches("template<typename T> class A {}; A<int> a;", + HasTemplateArgument)); + EXPECT_FALSE(matches("template<typename T> class A {}; A<char> a;", + HasTemplateArgument)); +} + TEST_F(RegistryTest, TypeTraversal) { Matcher<Type> M = constructMatcher( "pointerType", |