diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-08-18 14:51:32 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-08-22 10:01:31 +0000 |
commit | 0db7ad77a068d51764100fabeecce9a649b3ad58 (patch) | |
tree | 8def9c3cdb993c700a8f0e315e861d3788ce6dcb /src/plugins/cpptools/builtincursorinfo.cpp | |
parent | a9ddbb61a4bed1cec59b8fb2d2b56ac25ba4254f (diff) | |
download | qt-creator-0db7ad77a068d51764100fabeecce9a649b3ad58.tar.gz |
Clang: Fix built-in's ExtractFunction action
Since
Clang: Provide highlighting for identifier under cursor
commit ca72c29462d9caae5e6095f8361f843758c5972c
the LocalUseMap, used for some refactoring actions, was not updated
anymore. Fall back to the built-in implementation for the LocalUseMap
because it contains pointers to built-in AST that clang obviously can't
provide.
Task-number: QTCREATORBUG-18607
Change-Id: I08762fe457835d4d83aca719febcb3497ee9696b
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/cpptools/builtincursorinfo.cpp')
-rw-r--r-- | src/plugins/cpptools/builtincursorinfo.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/plugins/cpptools/builtincursorinfo.cpp b/src/plugins/cpptools/builtincursorinfo.cpp index cd46380e19..6cdf19e5fe 100644 --- a/src/plugins/cpptools/builtincursorinfo.cpp +++ b/src/plugins/cpptools/builtincursorinfo.cpp @@ -47,7 +47,6 @@ using namespace CPlusPlus; using SemanticUses = QList<CppTools::SemanticInfo::Use>; namespace CppTools { -namespace Internal { namespace { CursorInfo::Range toRange(const SemanticInfo::Use &use) @@ -186,7 +185,8 @@ private: { CursorInfo result; - const CppTools::SemanticInfo::LocalUseMap localUses = findLocalUses(); + const CppTools::SemanticInfo::LocalUseMap localUses + = BuiltinCursorInfo::findLocalUses(m_document, m_line, m_column); result.localUses = localUses; splitLocalUses(localUses, &result.useRanges, &result.unusedVariablesRanges); @@ -200,16 +200,6 @@ private: return result; // OK, result.unusedVariablesRanges will be passed on } - CppTools::SemanticInfo::LocalUseMap findLocalUses() const - { - AST *ast = m_document->translationUnit()->ast(); - FunctionDefinitionUnderCursor functionDefinitionUnderCursor(m_document->translationUnit()); - DeclarationAST *declaration = functionDefinitionUnderCursor(ast, - static_cast<unsigned>(m_line), - static_cast<unsigned>(m_column)); - return CppTools::LocalSymbols(m_document, declaration).uses; - } - void splitLocalUses(const CppTools::SemanticInfo::LocalUseMap &uses, CursorInfo::Ranges *rangesForLocalVariableUnderCursor, CursorInfo::Ranges *rangesForLocalUnusedVariables) const @@ -365,5 +355,15 @@ QFuture<CursorInfo> BuiltinCursorInfo::run(const CursorInfoParams &cursorInfoPar return Utils::runAsync(&FindUses::find, document, snapshot, line, column, scope, expression); } -} // namespace Internal +CppTools::SemanticInfo::LocalUseMap +BuiltinCursorInfo::findLocalUses(const Document::Ptr &document, int line, int column) +{ + AST *ast = document->translationUnit()->ast(); + FunctionDefinitionUnderCursor functionDefinitionUnderCursor(document->translationUnit()); + DeclarationAST *declaration = functionDefinitionUnderCursor(ast, + static_cast<unsigned>(line), + static_cast<unsigned>(column)); + return CppTools::LocalSymbols(document, declaration).uses; +} + } // namespace CppTools |