summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/CppDocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/CppDocument.cpp')
-rw-r--r--src/libs/cplusplus/CppDocument.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index eb17e4c9d7..cd7c0feb58 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())