From eb2ac188f26d1a51861cabb630032350b5633b36 Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Fri, 18 Jun 2010 09:26:38 +0200
Subject: [PATCH] C++: Make 'follow symbol' for classes work in more cases.

Previously, it would still fail if a forward declaration and declaration
for a class were in the same file.

Task-number: QTCREATORBUG-20
---
 src/libs/cplusplus/CppDocument.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 16d3a69e784..e8dd8647465 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -807,11 +807,13 @@ Class *Snapshot::findMatchingClassDeclaration(Symbol *declaration) const
         LookupContext context(doc, *this);
 
         ClassOrNamespace *type = context.lookupType(declaration);
-        if (!type || type->symbols().count() != 1)
+        if (!type)
             continue;
 
-        if (Class *c = type->symbols().first()->asClass())
-            return c;
+        foreach (Symbol *s, type->symbols()) {
+            if (Class *c = s->asClass())
+                return c;
+        }
     }
 
     return 0;
-- 
GitLab