diff options
author | Sam McCall <sam.mccall@gmail.com> | 2019-12-16 15:57:43 +0100 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2019-12-16 15:57:43 +0100 |
commit | 8f876d5105507f874c0fb86bc779c9853eab3fe2 (patch) | |
tree | b2c58b10c688ee22f4216766717e7a2bfb0d41e3 /clang-tools-extra/clangd/XRefs.cpp | |
parent | 2500a8d5d8813a3e31fc9ba8dd45e211439a1e3d (diff) | |
download | bcm5719-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.cpp | 17 |
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; } |