forked from qt-creator/qt-creator
Initial work on the `new' GenTemplateInstance.
This commit is contained in:
@@ -695,7 +695,7 @@ ResolveExpression::resolveMember(Name *memberName, Class *klass,
|
||||
QList<Scope *> scopes;
|
||||
_context.expand(klass->members(), _context.visibleScopes(), &scopes);
|
||||
|
||||
QList<Symbol *> candidates = _context.resolve(memberName, scopes);
|
||||
const QList<Symbol *> candidates = _context.resolve(memberName, scopes);
|
||||
|
||||
foreach (Symbol *candidate, candidates) {
|
||||
FullySpecifiedType ty = candidate->type();
|
||||
@@ -710,13 +710,17 @@ ResolveExpression::resolveMember(Name *memberName, Class *klass,
|
||||
for (unsigned i = 0; i < templId->templateArgumentCount(); ++i) {
|
||||
FullySpecifiedType templArgTy = templId->templateArgumentAt(i);
|
||||
|
||||
if (i < klass->templateParameterCount())
|
||||
subst.append(qMakePair(klass->templateParameterAt(i)->name(),
|
||||
templArgTy));
|
||||
if (i < klass->templateParameterCount()) {
|
||||
Name *templArgName = klass->templateParameterAt(i)->name();
|
||||
if (templArgName && templArgName->identifier()) {
|
||||
Identifier *templArgId = templArgName->identifier();
|
||||
subst.append(qMakePair(templArgId, templArgTy));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GenTemplateInstance inst(control(), subst);
|
||||
ty = inst(ty);
|
||||
GenTemplateInstance inst(_context, subst);
|
||||
ty = inst(candidate);
|
||||
}
|
||||
|
||||
results.append(Result(ty, candidate));
|
||||
|
||||
Reference in New Issue
Block a user