[PATCH] D101388: [clangd] Add SymbolID to LocatedSymbol.
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 28 02:41:11 PDT 2021
sammccall accepted this revision.
sammccall added a comment.
This revision is now accepted and ready to land.
LG, but can you amend the description a bit?
> We do not have to both locate the symbol and also query the SymbolID (using getSymbolInfo).
IIRC this isn't really the reason, it's because getSymbolInfo and locateSymbolAt don't have the same semantics *for choosing symbols* and we want the ID of the symbol that matches the latter.
================
Comment at: clang-tools-extra/clangd/XRefs.cpp:260
Macro.Definition = Loc;
+ Macro.ID = getSymbolID(M->Name, M->Info, AST.getSourceManager());
return Macro;
----------------
note that this populates SymbolID even if there's no ID available, so it's incorrect if the type is Optional<SymbolID>
================
Comment at: clang-tools-extra/clangd/XRefs.h:51
llvm::Optional<Location> Definition;
+ // SymbolID of the symbol. Not present for file referents.
+ llvm::Optional<SymbolID> ID;
----------------
There are other cases too, maybe just "if available"
================
Comment at: clang-tools-extra/clangd/XRefs.h:52
+ // SymbolID of the symbol. Not present for file referents.
+ llvm::Optional<SymbolID> ID;
};
----------------
SymbolID is already inherently optional (it has a zero value for a whil enow)
================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:924
EXPECT_EQ(Results[0].PreferredDeclaration.range, *WantDecl) << Test;
+ EXPECT_THAT(Results[0], HasID()) << Test;
llvm::Optional<Range> GotDef;
----------------
nit, just `EXPECT_TRUE(Results[0].ID)`, and remove the matcher?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101388/new/
https://reviews.llvm.org/D101388
More information about the cfe-commits
mailing list