[clang-tools-extra] [clangd] Retrieve documentation for member function instance from index (PR #153337)
Nathan Ridge via cfe-commits
cfe-commits at lists.llvm.org
Sat Aug 16 17:31:14 PDT 2025
================
@@ -1887,7 +1887,19 @@ class CodeCompleteFlow {
for (auto &Cand : C.first) {
if (Cand.SemaResult &&
Cand.SemaResult->Kind == CodeCompletionResult::RK_Declaration) {
- auto ID = clangd::getSymbolID(Cand.SemaResult->getDeclaration());
+ const NamedDecl *DeclToLookup = Cand.SemaResult->getDeclaration();
+ // For instantiations of members of class templates, the
+ // documentation will be stored at the member's original
+ // declaration.
----------------
HighCommander4 wrote:
In any case, here's a reason not to have SemaCodeComplete give us the "spelled" declaration:
```c++
template <typename T>
struct vector {
void push(T);
};
int main() {
vector<int> v;
v.^ // signature shown is `push(int)`
}
```
Returning the instantiated declaration allows us to e.g. show the instantiated signature (`push(int)` rather than `push(T)`) which is more helpful to the user.
In that sense, the instantiated declaration provides strictly more information than the spelled declaration; the consumer can always query the spelled declaration (as we're doing here) if desired.
https://github.com/llvm/llvm-project/pull/153337
More information about the cfe-commits
mailing list