summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodecompletion.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <qtc-committer@nokia.com>2009-02-03 12:50:53 +0100
committerRoberto Raggi <qtc-committer@nokia.com>2009-02-03 12:50:53 +0100
commitf1a40d304b105b9116f78de58ae398a4403e215c (patch)
tree4c7706f3f12f62d3c3aefa050b08158f91a6a488 /src/plugins/cpptools/cppcodecompletion.cpp
parent63a5f15f9d5e287debe8944259ded24b719570b4 (diff)
downloadqt-creator-f1a40d304b105b9116f78de58ae398a4403e215c.tar.gz
Fixes: Member completion when the symbol's type is ClassTy.
For example, struct { int a, b } foo; int main() { foo. <- }
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index b6bac92bf9..1f5bb7e1f4 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -598,7 +598,9 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &re
if (ReferenceType *refTy = ty->asReferenceType())
ty = refTy->elementType();
- if (NamedType *namedTy = ty->asNamedType()) {
+ if (Class *classTy = ty->asClass()) {
+ classObjectCandidates.append(classTy);
+ } else if (NamedType *namedTy = ty->asNamedType()) {
// ### This code is pretty slow.
const QList<Symbol *> candidates = context.resolve(namedTy->name());
foreach (Symbol *candidate, candidates) {
@@ -697,6 +699,8 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &re
++m_startPosition;
namedTy = ptrTy->elementType()->asNamedType();
}
+ } else if (Class *classTy = ty->asClass()) {
+ classObjectCandidates.append(classTy);
} else {
namedTy = ty->asNamedType();
if (! namedTy) {