diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index 43694659a5d6688720b92f4fbb46b9cceffc2c3d..2ae4f84da1cb83d09c8e0d99073e189f45765aba 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -566,6 +566,11 @@ ResolveExpression::resolveBaseExpression(const QList<Result> &baseResults, int a FullySpecifiedType ty = result.first.simplified(); Symbol *lastVisibleSymbol = result.second; + if (Function *funTy = ty->asFunctionType()) { + if (funTy->isAmbiguous()) + ty = funTy->returnType().simplified(); + } + if (accessOp == T_ARROW) { if (lastVisibleSymbol && ty->isClassType() && ! lastVisibleSymbol->isClass()) { // ### remove ! lastVisibleSymbol->isClass() from the condition.