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