summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-12-10 10:47:41 +0100
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-12-10 15:07:34 +0100
commite6b41d7e2fa5d1faa57f0d960204cad7afef92ca (patch)
treeaae913e31774659fb6913261dc8b027c46439761 /src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
parentaf995ca1b889bc3227f50d7d3ae28d68d9ff189e (diff)
downloadqt-creator-e6b41d7e2fa5d1faa57f0d960204cad7afef92ca.tar.gz
CppEditor: Use TypeHierarchyBuilder in FunctionHelper::overrides
...instead going the way over CppClass. This makes FunctionHelper::overrides independent of the cppeditor plugin. Change-Id: Ifaedb94da1f67b3876e06cce9e745aaf3c1050a7 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp')
-rw-r--r--src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
index 4530a47b98..aff4973e05 100644
--- a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
+++ b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
@@ -30,8 +30,8 @@
#include "cppvirtualfunctionassistprovider.h"
+#include "cppeditor.h"
#include "cppeditorconstants.h"
-#include "cppelementevaluator.h"
#include "cppvirtualfunctionproposalitem.h"
#include <cplusplus/Icons.h>
@@ -41,6 +41,7 @@
#include <coreplugin/actionmanager/command.h>
#include <cpptools/symbolfinder.h>
+#include <cpptools/typehierarchybuilder.h>
#include <texteditor/codeassist/basicproposalitemlistmodel.h>
#include <texteditor/codeassist/genericproposal.h>
@@ -48,6 +49,7 @@
#include <texteditor/codeassist/iassistinterface.h>
#include <texteditor/codeassist/iassistprocessor.h>
#include <texteditor/codeassist/iassistproposal.h>
+#include <texteditor/texteditorconstants.h>
#include <utils/qtcassert.h>
@@ -287,23 +289,23 @@ QList<Symbol *> FunctionHelper::overrides(Function *function, Class *functionsCl
QTC_ASSERT(referenceName && referenceType.isValid(), return result);
// Find overrides
- CppEditor::Internal::CppClass cppClass = CppClass(functionsClass);
- cppClass.lookupDerived(staticClass, snapshot);
+ CppTools::TypeHierarchyBuilder builder(staticClass, snapshot);
+ const CppTools::TypeHierarchy &staticClassHierarchy = builder.buildDerivedTypeHierarchy();
- QList<CppClass> l;
- l << cppClass;
+ QList<CppTools::TypeHierarchy> l;
+ l.append(CppTools::TypeHierarchy(functionsClass));
+ l.append(staticClassHierarchy);
while (!l.isEmpty()) {
// Add derived
- CppClass clazz = l.takeFirst();
-
- QTC_ASSERT(clazz.declaration, continue);
- Class *c = clazz.declaration->asClass();
+ const CppTools::TypeHierarchy hierarchy = l.takeFirst();
+ QTC_ASSERT(hierarchy.symbol(), continue);
+ Class *c = hierarchy.symbol()->asClass();
QTC_ASSERT(c, continue);
- foreach (const CppClass &d, clazz.derived) {
- if (!l.contains(d))
- l << d;
+ foreach (const CppTools::TypeHierarchy &t, hierarchy.hierarchy()) {
+ if (!l.contains(t))
+ l << t;
}
// Check member functions