diff options
| author | Christian Kamm <[email protected]> | 2010-06-18 09:26:38 +0200 |
|---|---|---|
| committer | Christian Kamm <[email protected]> | 2010-06-18 09:28:32 +0200 |
| commit | eb2ac188f26d1a51861cabb630032350b5633b36 (patch) | |
| tree | f77e2504b113790ff9e010c517d95d9f9b1ce056 /src/libs/cplusplus/CppDocument.cpp | |
| parent | 3c3af9c25b6e57dfc8c28a07679b90f902759a1a (diff) | |
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 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; |
