diff options
| author | Roberto Raggi <[email protected]> | 2010-05-14 09:57:59 +0200 |
|---|---|---|
| committer | Roberto Raggi <[email protected]> | 2010-05-14 13:55:24 +0200 |
| commit | 9ed1f667a81f4cefe71ac832a92763df1fce468d (patch) | |
| tree | 526589a7d85a1a7af3fb693c63ff5d376eab4722 /src/libs/cplusplus | |
| parent | 517e04ff606e28a5eac527b666a3b81976f904ac (diff) | |
Resolve ambiguous C++-like initilized declarations.
Diffstat (limited to 'src/libs/cplusplus')
| -rw-r--r-- | src/libs/cplusplus/ResolveExpression.cpp | 6 |
1 files 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; } |
