summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodecompletion.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <qtc-committer@nokia.com>2008-12-29 11:53:40 +0100
committerRoberto Raggi <qtc-committer@nokia.com>2008-12-29 11:53:40 +0100
commita985b59d402b189b90f5c15d291bc4fecd727d56 (patch)
treea5e783d3b2989a311e4fe335372d0dae1397db67 /src/plugins/cpptools/cppcodecompletion.cpp
parent98cc3ec6c9ef0c1b47631c6d3a3ff8035e080249 (diff)
downloadqt-creator-a985b59d402b189b90f5c15d291bc4fecd727d56.tar.gz
Initial support for typedefs.
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp22
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);
}
}
}