hokein added a comment.
thanks, looks mostly good, I think we can simplify the unittest further.
================
Comment at: clang-tools-extra/include-cleaner/lib/WalkAST.cpp:51
Type = Type->getPointeeType();
+ if (const TemplateSpecializationType *TST =
+ Type->getAs<TemplateSpecializationType>()) {
----------------
nit: we can use `const auto*` here as the type is explicitly spelled in the
`getAs<XXX>`
================
Comment at: clang-tools-extra/include-cleaner/lib/WalkAST.cpp:52
+ if (const TemplateSpecializationType *TST =
+ Type->getAs<TemplateSpecializationType>()) {
+ return TST->getTemplateName().getAsTemplateDecl();
----------------
nit: remove the {} around the if statement
================
Comment at: clang-tools-extra/include-cleaner/lib/WalkAST.cpp:74
}
+ bool VisitCXXDependentScopeMemberExpr(CXXDependentScopeMemberExpr *E) {
----------------
nit: I will remove this blank line, to make `VisitMemberExpr` and
`VisitCXXDependentScopeMemberExpr` group together as they both achieve the same
goal.
================
Comment at: clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp:207
+ testWalk("template<typename T> struct $explicit^Base { void method(); };",
+ "template<typename T> void k(Base<T>* t) { t->^method(); }");
+ testWalk("template<typename T> struct $explicit^Base { void method(); };",
----------------
I think keeping the above 3 test cases is enough, I would probably add them to
the exiting MemberExprs test (with a comment saying this is dependent-type
case).
================
Comment at: clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp:209
+ testWalk("template<typename T> struct $explicit^Base { void method(); };",
+ "template<typename T> void k() { Base<T> t; t.^method(); }");
+ testWalk("template<typename T> struct $explicit^Base { void method(); };",
----------------
I think we can remove this test, this test duplicates the first test
================
Comment at: clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp:211
+ testWalk("template<typename T> struct $explicit^Base { void method(); };",
+ "template<typename T> void k() { Base<T>* t; t->^method(); }");
+ testWalk("template<typename T> struct $explicit^Base { void method(); };",
----------------
And this case as well
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D139409/new/
https://reviews.llvm.org/D139409
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits