summaryrefslogtreecommitdiffstats
path: root/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp')
-rw-r--r--clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
index 27f0669ca70..789982972e0 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
@@ -2204,5 +2204,22 @@ TEST(Matcher, HasAnyDeclaration) {
functionDecl(hasName("bar"))))));
}
+TEST(SubstTemplateTypeParmType, HasReplacementType)
+{
+ std::string Fragment = "template<typename T>"
+ "double F(T t);"
+ "int i;"
+ "double j = F(i);";
+ EXPECT_TRUE(matches(Fragment, substTemplateTypeParmType(hasReplacementType(
+ qualType(asString("int"))))));
+ EXPECT_TRUE(notMatches(Fragment, substTemplateTypeParmType(hasReplacementType(
+ qualType(asString("double"))))));
+ EXPECT_TRUE(
+ notMatches("template<int N>"
+ "double F();"
+ "double j = F<5>();",
+ substTemplateTypeParmType(hasReplacementType(qualType()))));
+}
+
} // namespace ast_matchers
} // namespace clang
OpenPOWER on IntegriCloud