diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-12-08 12:38:27 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-12-08 12:38:27 +0100 |
commit | 02c733679518375caf87d3c05457ade3bc27c5c6 (patch) | |
tree | 925b3599195303a509691af53ce1b2e98383a123 /src/libs/cplusplus/ResolveExpression.cpp | |
parent | fef2ad6bba36158de74127c3443aba70934cbca9 (diff) | |
download | qt-creator-02c733679518375caf87d3c05457ade3bc27c5c6.tar.gz |
Expand the template parameters.
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.cpp')
-rw-r--r-- | src/libs/cplusplus/ResolveExpression.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index ca497beab0..5d934707ea 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -637,11 +637,15 @@ ResolveExpression::resolveBaseExpression(const QList<LookupItem> &baseResults, i if (NamedType *namedTy = ty->asNamedType()) { const QList<Scope *> visibleScopes = _context.visibleScopes(result); - const QList<Symbol *> typedefCandidates = _context.resolve(namedTy->name(), visibleScopes); - foreach (Symbol *typedefCandidate, typedefCandidates) { - if (typedefCandidate->isTypedef() && typedefCandidate->type()->isNamedType()) { - ty = typedefCandidate->type(); - lastVisibleSymbol = typedefCandidate; + const QList<Symbol *> candidates = _context.resolve(namedTy->name(), visibleScopes); + foreach (Symbol *candidate, candidates) { + if (candidate->isTypedef() && candidate->type()->isNamedType()) { + ty = candidate->type(); + lastVisibleSymbol = candidate; + break; + } else if (TypenameArgument *arg = candidate->asTypenameArgument()) { + ty = arg->type(); + lastVisibleSymbol = candidate; break; } } |