diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index dd6f996fa1e42753ce4ec6e0d17c71d592123ef6..b3103a07c75e295bfba110f42decaaf12673cb8a 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -570,9 +570,8 @@ bool ResolveExpression::visit(MemberAccessAST *ast) ClassOrNamespace *ResolveExpression::findClass(const FullySpecifiedType &originalTy, Scope *scope) const { - ClassOrNamespace *binding = 0; - FullySpecifiedType ty = originalTy.simplified(); + ClassOrNamespace *binding = 0; if (Class *klass = ty->asClassType()) binding = _context.classOrNamespace(klass); @@ -580,6 +579,9 @@ ClassOrNamespace *ResolveExpression::findClass(const FullySpecifiedType &origina else if (NamedType *namedTy = ty->asNamedType()) binding = _context.classOrNamespace(namedTy->name(), scope); + else if (Function *funTy = ty->asFunctionType()) + return findClass(funTy->returnType(), scope); + return binding; }