From 54e09a1802c2b426bad923233e6f907359a71a00 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 26 May 2010 15:44:01 +0200 Subject: [PATCH] Changed C++ code completion to use the new LookupContext. --- src/plugins/cpptools/cppcodecompletion.cpp | 36 +++++++++------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 88ca3b75587..afd2b7b77d0 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -46,7 +46,6 @@ #include #include -#include #include #include #include @@ -1459,11 +1458,6 @@ bool CppCodeCompletion::completeQtMethod(const QList &results, const LookupContext &context = typeOfExpression.context(); - DeprecatedLookupContext depContext(typeOfExpression.scope()->owner(), - context.expressionDocument(), - context.thisDocument(), - context.snapshot()); - ConvertToCompletionItem toCompletionItem(this); Overview o; o.setShowReturnTypes(false); @@ -1487,26 +1481,24 @@ bool CppCodeCompletion::completeQtMethod(const QList &results, if (! b) continue; - const QList classObjects = b->symbols(); + QListtodo; + QSet processed; + QList scopes; + todo.append(b); + while (!todo.isEmpty()) { + ClassOrNamespace *binding = todo.takeLast(); + if (!processed.contains(binding)) { + processed.insert(binding); - if (classObjects.isEmpty()) - continue; + foreach (Symbol *s, binding->symbols()) + if (Class *clazz = s->asClass()) + scopes.append(clazz->members()); - Class *klass = 0; - foreach (Symbol *c, classObjects) { - klass = c->asClass(); - if (klass != 0) - break; + todo.append(binding->usings()); + } } - if (! klass) - continue; - - QList todo; - const QList visibleScopes = depContext.visibleScopes(p); - depContext.expand(klass->members(), visibleScopes, &todo); - - foreach (Scope *scope, todo) { + foreach (Scope *scope, scopes) { if (! scope->isClassScope()) continue;