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> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits