[PATCH] D63426: [clangd] Narrow rename to local symbols.
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 18 01:41:35 PDT 2019
sammccall added inline comments.
================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:79
+
+ if (Index) {
+ // Consult the index to determine whether the symbol is used outside of
----------------
pull out a function for this?
================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:83
+ // FIXME: we may skip querying the index if D is function-local.
+ const NamedDecl *D =
+ clang::tooling::getNamedDeclAt(ASTCtx, SourceLocationBeg);
----------------
it's unfortunate that our "what's under the cursor" logic here has to duplicate what's done by RenameOccurrences::initiate().
Can we have RenameOccurrences expose the NamedDecl instead?
================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:83
+ // FIXME: we may skip querying the index if D is function-local.
+ const NamedDecl *D =
+ clang::tooling::getNamedDeclAt(ASTCtx, SourceLocationBeg);
----------------
sammccall wrote:
> it's unfortunate that our "what's under the cursor" logic here has to duplicate what's done by RenameOccurrences::initiate().
>
> Can we have RenameOccurrences expose the NamedDecl instead?
does this not work for macros?
================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:85
+ clang::tooling::getNamedDeclAt(ASTCtx, SourceLocationBeg);
+ if (!D)
+ return llvm::make_error<llvm::StringError>(
----------------
We're effectively doing this test twice (see `if (!Rename)` below) and emitting different error mesages
maybe we should just skip the rest of the check in this case?
(Exposing the ND from the RenameOccurrences would help make this duplication more obvious)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63426/new/
https://reviews.llvm.org/D63426
More information about the cfe-commits
mailing list