[PATCH] D55818: [clangd] Unify path canonicalizations in the codebase
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 18 08:15:15 PST 2018
kadircet marked 7 inline comments as done.
kadircet added inline comments.
================
Comment at: clangd/SourceCode.h:91
+/// possible.
+llvm::Expected<std::string> getCanonicalPath(const FileEntry *F,
+ const SourceManager &SourceMgr);
----------------
ilya-biryukov wrote:
> ilya-biryukov wrote:
> > A different name proposal: `canonicalizePath`? WDYT?
> Maybe leave it `Optional`?
> Semantic differences make it very hard to verify the code after rewrite is correct, as `Expected` requires checking for errors.
but it rather gets the canonical path for a FileEntry rather than canonicalizing a path ?
================
Comment at: clangd/index/SymbolCollector.cpp:58
+ if (auto CanonPath =
+ getCanonicalPath(SM.getFileManager().getFile(Path), SM)) {
+ AbsolutePath = *CanonPath;
----------------
ilya-biryukov wrote:
> This looks like the only change that might subtly change the behavior of our program. I believe things might break because of this.
> Could we keep this review closer to an NFC and avoid introducing this subtle difference here? Happy to take a look at a separate patch with it.
As discussed offline this is not introducing a behavior change.
================
Comment at: clangd/index/SymbolCollector.cpp:64
}
-
+ if (!sys::path::is_absolute(AbsolutePath) && !Opts.FallbackDir.empty())
+ sys::fs::make_absolute(Opts.FallbackDir, AbsolutePath);
----------------
ilya-biryukov wrote:
> Why not do this only in the `else` branch?
Adding a comment.
Repository:
rCTE Clang Tools Extra
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55818/new/
https://reviews.llvm.org/D55818
More information about the cfe-commits
mailing list