summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/builtincursorinfo.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2017-08-18 14:51:32 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2017-08-22 10:01:31 +0000
commit0db7ad77a068d51764100fabeecce9a649b3ad58 (patch)
tree8def9c3cdb993c700a8f0e315e861d3788ce6dcb /src/plugins/cpptools/builtincursorinfo.cpp
parenta9ddbb61a4bed1cec59b8fb2d2b56ac25ba4254f (diff)
downloadqt-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.cpp26
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