hokein added inline comments.
================ Comment at: clang-tools-extra/clangd/Hover.cpp:1099 + trace::Span Tracer("Hover::maybeAddSymbolProviders"); + include_cleaner::walkUsed( + AST.getLocalTopLevelDecls(), MacroReferences, AST.getPragmaIncludes(), ---------------- It seems that the `walkUsed` API might be not the best fit. `walkUsed` API has some special logic on handling different AST nodes, e.g. refs of operators are ignored, so if we hover on an operator ref, we will not show the providing header (which we should). Our goal is to provide the information (header) where the symbol under the hover comes from (ref satisfaction is out of the scope). I think `include_cleaner::headersForSymbol` is a better fit for our purpose, and the implementation is simpler: - on hover, we have the selected symbol (either a regular declaration or a macro) - it is easy to construct a `include_cleaner::Symbol` from the selected symbol - choose the first result from `headersForSymbol` To do that we need to expose `headersForSymbol` from the internal `AnalysisInternal.h`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D144976/new/ https://reviews.llvm.org/D144976 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits