summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/XRefs.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2019-12-16 15:57:43 +0100
committerSam McCall <sam.mccall@gmail.com>2019-12-16 15:57:43 +0100
commit8f876d5105507f874c0fb86bc779c9853eab3fe2 (patch)
treeb2c58b10c688ee22f4216766717e7a2bfb0d41e3 /clang-tools-extra/clangd/XRefs.cpp
parent2500a8d5d8813a3e31fc9ba8dd45e211439a1e3d (diff)
downloadbcm5719-llvm-8f876d5105507f874c0fb86bc779c9853eab3fe2.tar.gz
bcm5719-llvm-8f876d5105507f874c0fb86bc779c9853eab3fe2.zip
Revert "[clangd] Reapply b60896fad926 Fall back to selecting token-before-cursor if token-after-cursor fails."
This reverts commit 2500a8d5d8813a3e31fc9ba8dd45e211439a1e3d.
Diffstat (limited to 'clang-tools-extra/clangd/XRefs.cpp')
-rw-r--r--clang-tools-extra/clangd/XRefs.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/clang-tools-extra/clangd/XRefs.cpp b/clang-tools-extra/clangd/XRefs.cpp
index 170637b596d..b16e7080aa6 100644
--- a/clang-tools-extra/clangd/XRefs.cpp
+++ b/clang-tools-extra/clangd/XRefs.cpp
@@ -131,16 +131,15 @@ SymbolLocation getPreferredLocation(const Location &ASTLoc,
std::vector<const Decl *> getDeclAtPosition(ParsedAST &AST, SourceLocation Pos,
DeclRelationSet Relations) {
- unsigned Offset = AST.getSourceManager().getDecomposedSpellingLoc(Pos).second;
+ FileID FID;
+ unsigned Offset;
+ std::tie(FID, Offset) = AST.getSourceManager().getDecomposedSpellingLoc(Pos);
+ SelectionTree Selection(AST.getASTContext(), AST.getTokens(), Offset);
std::vector<const Decl *> Result;
- SelectionTree::createEach(AST.getASTContext(), AST.getTokens(), Offset,
- Offset, [&](SelectionTree ST) {
- if (const SelectionTree::Node *N =
- ST.commonAncestor())
- llvm::copy(targetDecl(N->ASTNode, Relations),
- std::back_inserter(Result));
- return !Result.empty();
- });
+ if (const SelectionTree::Node *N = Selection.commonAncestor()) {
+ auto Decls = targetDecl(N->ASTNode, Relations);
+ Result.assign(Decls.begin(), Decls.end());
+ }
return Result;
}
OpenPOWER on IntegriCloud