From ac07b0fcef346b52268895b6449a4548b38c10c6 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Mon, 10 May 2010 12:30:42 +0200 Subject: [PATCH] Resolve the class-or-namespace specifiers when creating bindings for classes. --- src/libs/cplusplus/LookupContext.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 7418b8e8087..be608af2b99 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)); -- GitLab