diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2010-06-18 09:26:38 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2010-06-18 09:28:32 +0200 |
commit | eb2ac188f26d1a51861cabb630032350b5633b36 (patch) | |
tree | f77e2504b113790ff9e010c517d95d9f9b1ce056 /src/libs/cplusplus/CppDocument.cpp | |
parent | 3c3af9c25b6e57dfc8c28a07679b90f902759a1a (diff) | |
download | qt-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.cpp | 8 |
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; |