[PATCH] D123031: [clangd] Use stable keys for CanonicalIncludes mappings
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 5 05:56:16 PDT 2022
sammccall accepted this revision.
sammccall added a comment.
This revision is now accepted and ready to land.
Just nits
================
Comment at: clang-tools-extra/clangd/IncludeCleaner.cpp:359
if (Entry) {
- auto PublicHeader = CanonIncludes.mapHeader(Entry->getName());
+ auto PublicHeader = CanonIncludes.mapHeader(Entry->getLastRef());
if (!PublicHeader.empty()) {
----------------
getLastRef().getName() is just the same as Entry->getName().
We should be using SM.getFileEntryRefForID instead.
(Which is actually still not preserving the FERef under the hood, but will soon...)
================
Comment at: clang-tools-extra/clangd/index/CanonicalIncludes.h:40
+ /// Adds a file-to-string mapping from \p ID to \p CanonicalPath.
+ void addMapping(const FileEntryRef Header, llvm::StringRef CanonicalPath);
----------------
no const, FileEntryRef is passed by value (and below)
================
Comment at: clang-tools-extra/clangd/index/SymbolCollector.cpp:384
if (Includes) {
- llvm::StringRef Canonical = Includes->mapHeader(Filename);
+ llvm::StringRef Canonical = Includes->mapHeader(FE->getLastRef());
if (!Canonical.empty()) {
----------------
again, avoid getLastRef
================
Comment at: clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp:26
+FileEntryRef
+addFile(llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> &FS,
+ FileManager &FM, llvm::StringRef Filename) {
----------------
no need to take ownership, just take InMemoryFileSystem&?
================
Comment at: clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp:1593
+ CanonicalIncludes Includes;
+ Includes.addMapping((*File)->getLastRef(), "<canonical>");
+ CollectorOpts.CollectIncludePath = true;
----------------
avoid getLastRef
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123031/new/
https://reviews.llvm.org/D123031
More information about the cfe-commits
mailing list