summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/LookupContext.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-05-26 10:08:29 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-05-26 10:10:23 +0200
commitd2a62b07f02a83e648304979f4f61f769c17397b (patch)
treea0996d34f50590aefd642faebc574c8366a7c028 /src/libs/cplusplus/LookupContext.cpp
parent1263babfc6c96eb56613182310cb5c9eabcd8dc0 (diff)
downloadqt-creator-d2a62b07f02a83e648304979f4f61f769c17397b.tar.gz
Create bindings for anonymous typedefs.
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r--src/libs/cplusplus/LookupContext.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 77880ca06c..5f883feab9 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -755,7 +755,7 @@ bool CreateBindings::visit(Enum *e)
bool CreateBindings::visit(Declaration *decl)
{
if (decl->isTypedef()) {
- const FullySpecifiedType ty = decl->type();
+ FullySpecifiedType ty = decl->type();
const Identifier *typedefId = decl->identifier();
if (typedefId && ! (ty.isConst() || ty.isVolatile())) {
@@ -766,6 +766,11 @@ bool CreateBindings::visit(Declaration *decl)
Overview oo;
qDebug() << "found entity not found for" << oo(namedTy->name());
}
+ } else if (Class *klass = ty->asClassType()) {
+ if (const NameId *nameId = decl->name()->asNameId()) {
+ ClassOrNamespace *binding = _currentClassOrNamespace->findOrCreateType(nameId);
+ binding->addSymbol(klass);
+ }
}
}
}