[clang-tools-extra] [clang-tidy] Avoid expensive AST traversal in RedundantTypenameCheck (PR #170540)

Paul Kirth via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 5 13:16:18 PST 2025


================
@@ -18,9 +18,13 @@ using namespace clang::ast_matchers;
 namespace clang::tidy::readability {
 
 void RedundantTypenameCheck::registerMatchers(MatchFinder *Finder) {
-  Finder->addMatcher(typeLoc(unless(hasAncestor(decl(isInstantiated()))))
-                         .bind("nonDependentTypeLoc"),
-                     this);
+  Finder->addMatcher(
+      typeLoc(loc(TypeMatcher(anyOf(typedefType(), tagType(),
----------------
ilovepi wrote:

`loc(anyOf(...))` is ambiguous w/o the `TypeMatcher`.  I didn't see an obvious way to make it work any nicer than this. Happy to try a different spelling if you think it would be better, though.

https://github.com/llvm/llvm-project/pull/170540


More information about the cfe-commits mailing list