[clang-tools-extra] [clang][include-cleaner] Support ObjC @selector expressions in WalkAST (PR #212564)

via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 14 13:13:19 PDT 2026


================
@@ -573,7 +618,31 @@ class ASTWalker : public RecursiveASTVisitor<ASTWalker> {
 } // namespace
 
 void walkAST(Decl &Root, DeclCallback Callback) {
-  ASTWalker(Callback).TraverseDecl(&Root);
+  ASTWalker Walker(Callback);
+  Walker.TraverseDecl(&Root);
+
+  ASTContext &Ctx = Root.getASTContext();
+  if (!Ctx.getLangOpts().ObjC)
+    return;
+
+  auto RecordedSelectors = Walker.getRecordedSelectors();
+  if (RecordedSelectors.empty())
+    return;
+
+  llvm::DenseSet<Selector> NeededSelectors;
+  for (const auto *E : RecordedSelectors)
+    NeededSelectors.insert(E->getSelector());
+  TargetedSelectorDeclCollector Collector(NeededSelectors);
----------------
dmaclach wrote:

Done

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


More information about the cfe-commits mailing list