steveire marked 2 inline comments as done. steveire added inline comments.
================ Comment at: clang/unittests/AST/ASTTraverserTest.cpp:1092 + +// Explicit instantiation of template functions do not appear in the AST +template float timesTwo(float); ---------------- aaron.ballman wrote: > Huh, do you have any idea if that's a bug? We have > `ClassTemplateSpecializationDecl` and `VarTemplateSpecializationDecl`, but we > have `FunctionTemplateSpecializationInfo` that doesn't generate an AST node > and no mention of why in the comments that I've spotted yet. I don't know why, but this is part of the confusion in the test in the discussion below. I can look into it after this is merged if you don't beat me to it. ================ Comment at: clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp:2280 + EXPECT_TRUE(matches(Code, traverse(TK_AsIs, M))); + EXPECT_TRUE(matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, M))); + } ---------------- aaron.ballman wrote: > Explicitly instantiating a function template in ignore mode returns false, > but explicitly instantiating a class template returns true? Is this > intentional or just fallout from the lack of explicit instantiation > information in the AST for functions? I've added some more tests and comments to try to clarify this. We should be able to match on the template arguments of explicit instantiations, but not the contents of the instantiations. Lack of representation of explicit function instantiations makes the expected test results confusing, but hopefully the comments now clarify. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D90763/new/ https://reviews.llvm.org/D90763 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits