diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp index eb17e4c9d77386ccd79129f424859e56208aeb7e..cd7c0feb5895c1283e5cb0a119f8bd805c2d4d9e 100644 --- a/src/libs/cplusplus/CppDocument.cpp +++ b/src/libs/cplusplus/CppDocument.cpp @@ -742,14 +742,17 @@ Symbol *Snapshot::findMatchingDefinition(Symbol *symbol) const QList<Function *> viableFunctions; + ClassOrNamespace *enclosingType = context.lookupType(declaration); + if (! enclosingType) + continue; // nothing to do + foreach (Function *fun, result) { const QList<Symbol *> declarations = context.lookup(fun->name(), fun->scope()); + if (declarations.isEmpty()) + continue; - if (declarations.contains(declaration)) + else if (enclosingType == context.lookupType(declarations.first())) viableFunctions.append(fun); - - else if (false) - qDebug() << "does not contain" << declaration->fileName() << declaration->line() << declaration->column(); } if (viableFunctions.isEmpty())