diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 6e0a511db7d23de7956439fb4ba77b01251e9140..fea6fd3ed8d305b8eea34b69bc4524d9a1976f7f 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -646,8 +646,20 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor, typeOfExpression(expression, doc, lastSymbol); if (!resolvedSymbols.isEmpty()) { - Symbol *symbol = resolvedSymbols.first().second; - if (symbol) { + TypeOfExpression::Result result = resolvedSymbols.first(); + + if (result.first->isForwardClassDeclarationType()) { + while (! resolvedSymbols.isEmpty()) { + TypeOfExpression::Result r = resolvedSymbols.takeFirst(); + + if (! r.first->isForwardClassDeclarationType()) { + result = r; + break; + } + } + } + + if (Symbol *symbol = result.second) { Symbol *def = 0; if (lookupDefinition && !lastSymbol->isFunction()) def = findDefinition(symbol);