From 950d47389be50cd8b530addaa86706bfed28427e Mon Sep 17 00:00:00 2001 From: eidheim Date: Tue, 15 Sep 2015 12:36:00 +0200 Subject: [PATCH] More effective get_similar_token_offsets. --- src/Tokens.cc | 5 ++--- src/Tokens.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Tokens.cc b/src/Tokens.cc index f207daa..42f13e8 100644 --- a/src/Tokens.cc +++ b/src/Tokens.cc @@ -24,14 +24,13 @@ clang::Tokens::~Tokens() { //This works across TranslationUnits! However, to get rename refactoring to work, //one have to open all the files that might include a similar token //Similar tokens defined as tokens with equal referenced cursors. -std::vector > clang::Tokens::get_similar_token_offsets(const std::string &usr) { +std::vector > clang::Tokens::get_similar_token_offsets(const std::string &usr, CursorKind kind) { std::vector > offsets; for(auto &token: *this) { if(token.get_kind()==clang::Token_Identifier) { auto referenced=token.get_cursor().get_referenced(); - if(referenced && usr==referenced.get_usr()) { + if(referenced && kind==referenced.get_kind() && usr==referenced.get_usr()) offsets.emplace_back(token.offsets); - } } } return offsets; diff --git a/src/Tokens.h b/src/Tokens.h index 26c007f..c907b96 100644 --- a/src/Tokens.h +++ b/src/Tokens.h @@ -13,7 +13,7 @@ namespace clang { Tokens(CXTranslationUnit &cx_tu, const SourceRange &range); public: ~Tokens(); - std::vector > get_similar_token_offsets(const std::string &usr); + std::vector > get_similar_token_offsets(const std::string &usr, CursorKind kind); std::vector > get_cxx_methods(); private: CXToken *cx_tokens;