diff options
author | Roberto Raggi <qtc-committer@nokia.com> | 2009-02-03 12:50:53 +0100 |
---|---|---|
committer | Roberto Raggi <qtc-committer@nokia.com> | 2009-02-03 12:50:53 +0100 |
commit | f1a40d304b105b9116f78de58ae398a4403e215c (patch) | |
tree | 4c7706f3f12f62d3c3aefa050b08158f91a6a488 /src/plugins/cpptools/cppcodecompletion.cpp | |
parent | 63a5f15f9d5e287debe8944259ded24b719570b4 (diff) | |
download | qt-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.cpp | 6 |
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) { |