diff options
-rw-r--r-- | src/libs/cplusplus/LookupContext.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 7418b8e808..be608af2b9 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -767,7 +767,17 @@ bool CreateBindings::visit(Namespace *ns) bool CreateBindings::visit(Class *klass) { - ClassOrNamespace *previous = enterEntity(klass); + ClassOrNamespace *previous = _currentClassOrNamespace; + ClassOrNamespace *binding = 0; + + if (klass->name() && klass->name()->isQualifiedNameId()) + binding = _currentClassOrNamespace->lookupClassOrNamespace(klass->name()); + + if (! binding) + binding = _currentClassOrNamespace->findOrCreate(klass->name()); + + _currentClassOrNamespace = binding; + _currentClassOrNamespace->addSymbol(klass); for (unsigned i = 0; i < klass->baseClassCount(); ++i) process(klass->baseClassAt(i)); |