summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/ResolveExpression.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-12-08 12:38:27 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2009-12-08 12:38:27 +0100
commit02c733679518375caf87d3c05457ade3bc27c5c6 (patch)
tree925b3599195303a509691af53ce1b2e98383a123 /src/libs/cplusplus/ResolveExpression.cpp
parentfef2ad6bba36158de74127c3443aba70934cbca9 (diff)
downloadqt-creator-02c733679518375caf87d3c05457ade3bc27c5c6.tar.gz
Expand the template parameters.
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.cpp')
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp14
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;
}
}