From 9ed1f667a81f4cefe71ac832a92763df1fce468d Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Fri, 14 May 2010 09:57:59 +0200 Subject: [PATCH] Resolve ambiguous C++-like initilized declarations. --- src/libs/cplusplus/ResolveExpression.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index dd6f996fa1e..b3103a07c75 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; } -- GitLab