diff --git a/clang-tools-extra/clangd/ClangdLSPServer.cpp b/clang-tools-extra/clangd/ClangdLSPServer.cpp --- a/clang-tools-extra/clangd/ClangdLSPServer.cpp +++ b/clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -1451,7 +1451,7 @@ return Reply(Types.takeError()); std::vector Response; for (const LocatedSymbol &Sym : *Types) - Response.push_back(Sym.PreferredDeclaration); + Response.push_back(Sym.Definition.value_or(Sym.PreferredDeclaration)); return Reply(std::move(Response)); }); } @@ -1467,7 +1467,7 @@ return Reply(Overrides.takeError()); std::vector Impls; for (const LocatedSymbol &Sym : *Overrides) - Impls.push_back(Sym.PreferredDeclaration); + Impls.push_back(Sym.Definition.value_or(Sym.PreferredDeclaration)); return Reply(std::move(Impls)); }); }