diff options
author | Roberto Raggi <qtc-committer@nokia.com> | 2008-12-29 11:53:40 +0100 |
---|---|---|
committer | Roberto Raggi <qtc-committer@nokia.com> | 2008-12-29 11:53:40 +0100 |
commit | a985b59d402b189b90f5c15d291bc4fecd727d56 (patch) | |
tree | a5e783d3b2989a311e4fe335372d0dae1397db67 /src/plugins/cpptools/cppcodecompletion.cpp | |
parent | 98cc3ec6c9ef0c1b47631c6d3a3ff8035e080249 (diff) | |
download | qt-creator-a985b59d402b189b90f5c15d291bc4fecd727d56.tar.gz |
Initial support for typedefs.
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcodecompletion.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index f8c5fe9b48..075a55b96e 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -180,8 +180,6 @@ protected: } // namespace Internal } // namespace CppTools - - using namespace CppTools::Internal; FunctionArgumentWidget::FunctionArgumentWidget(Core::ICore *core) @@ -581,12 +579,12 @@ bool CppCodeCompletion::completeMember(FullySpecifiedType, const QList<TypeOfExpression::Result> &results, const LookupContext &context) { - QTC_ASSERT(!results.isEmpty(), return false); + if (results.isEmpty()) + return false; + const TypeOfExpression::Result p = results.first(); QList<Symbol *> classObjectCandidates; - TypeOfExpression::Result p = results.first(); - if (m_completionOperator == T_ARROW) { FullySpecifiedType ty = p.first; @@ -666,13 +664,13 @@ bool CppCodeCompletion::completeMember(FullySpecifiedType, } if (namedTy) { - const QList<Symbol *> classes = - context.resolveClass(namedTy->name(), - context.visibleScopes(p)); - - foreach (Symbol *c, classes) { - if (! classObjectCandidates.contains(c)) - classObjectCandidates.append(c); + SymbolsForDotAccess symbolsForDotAccess; + const QList<Symbol *> symbols = symbolsForDotAccess(namedTy, p, context); + foreach (Symbol *symbol, symbols) { + if (classObjectCandidates.contains(symbol)) + continue; + if (Class *klass = symbol->asClass()) + classObjectCandidates.append(klass); } } } |