diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-12-10 10:47:41 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-12-10 15:07:34 +0100 |
commit | e6b41d7e2fa5d1faa57f0d960204cad7afef92ca (patch) | |
tree | aae913e31774659fb6913261dc8b027c46439761 /src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp | |
parent | af995ca1b889bc3227f50d7d3ae28d68d9ff189e (diff) | |
download | qt-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.cpp | 26 |
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 |