[clang] ff02ae2 - Add test missing from previous commit
Stephen Kelly via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 3 03:07:03 PST 2020
Author: Stephen Kelly
Date: 2020-11-03T11:06:52Z
New Revision: ff02ae2139eebbe3fbd66d4204ad7589d475a355
URL: https://github.com/llvm/llvm-project/commit/ff02ae2139eebbe3fbd66d4204ad7589d475a355
DIFF: https://github.com/llvm/llvm-project/commit/ff02ae2139eebbe3fbd66d4204ad7589d475a355.diff
LOG: Add test missing from previous commit
Added:
Modified:
clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Removed:
################################################################################
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
index 092747e4387d..13b5011bfe3e 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
@@ -2188,6 +2188,59 @@ void varDeclCtors() {
Code,
traverse(TK_IgnoreUnlessSpelledInSource,
varDecl(hasName("var8"), hasInitializer(cxxConstructExpr())))));
+
+ Code = R"cpp(
+
+template<typename T>
+struct TemplStruct {
+ TemplStruct() {}
+ ~TemplStruct() {}
+
+private:
+ T m_t;
+};
+
+template<typename T>
+T timesTwo(T input)
+{
+ return input * 2;
+}
+
+void instantiate()
+{
+ TemplStruct<int> ti;
+ TemplStruct<double> td;
+ (void)timesTwo<int>(2);
+ (void)timesTwo<double>(2);
+}
+
+)cpp";
+ {
+ auto M = cxxRecordDecl(hasName("TemplStruct"),
+ has(fieldDecl(hasType(asString("int")))));
+ EXPECT_TRUE(matches(Code, traverse(TK_AsIs, M)));
+ EXPECT_FALSE(matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, M)));
+ }
+ {
+ auto M = cxxRecordDecl(hasName("TemplStruct"),
+ has(fieldDecl(hasType(asString("double")))));
+ EXPECT_TRUE(matches(Code, traverse(TK_AsIs, M)));
+ EXPECT_FALSE(matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, M)));
+ }
+ {
+ auto M =
+ functionDecl(hasName("timesTwo"),
+ hasParameter(0, parmVarDecl(hasType(asString("int")))));
+ EXPECT_TRUE(matches(Code, traverse(TK_AsIs, M)));
+ EXPECT_FALSE(matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, M)));
+ }
+ {
+ auto M =
+ functionDecl(hasName("timesTwo"),
+ hasParameter(0, parmVarDecl(hasType(asString("double")))));
+ EXPECT_TRUE(matches(Code, traverse(TK_AsIs, M)));
+ EXPECT_FALSE(matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, M)));
+ }
}
template <typename MatcherT>
More information about the cfe-commits
mailing list