summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/CppDocument.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-06-18 09:26:38 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2010-06-18 09:28:32 +0200
commiteb2ac188f26d1a51861cabb630032350b5633b36 (patch)
treef77e2504b113790ff9e010c517d95d9f9b1ce056 /src/libs/cplusplus/CppDocument.cpp
parent3c3af9c25b6e57dfc8c28a07679b90f902759a1a (diff)
downloadqt-creator-eb2ac188f26d1a51861cabb630032350b5633b36.tar.gz
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
Diffstat (limited to 'src/libs/cplusplus/CppDocument.cpp')
-rw-r--r--src/libs/cplusplus/CppDocument.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 16d3a69e78..e8dd864746 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;