mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-15 21:15:23 +02:00
Bug 486618 - Name resolution problem with alias template
Corrected previous fix attempt. Change-Id: Ie8e5425387a3b0d7d6f0558f5a36f1b8d379aa78
This commit is contained in:
parent
1548dc7cf4
commit
3fbf9980ad
1 changed files with 4 additions and 5 deletions
|
@ -2844,13 +2844,12 @@ public class CPPTemplates {
|
||||||
if (unknown instanceof ICPPUnknownMemberClassInstance && result instanceof ICPPTemplateDefinition) {
|
if (unknown instanceof ICPPUnknownMemberClassInstance && result instanceof ICPPTemplateDefinition) {
|
||||||
ICPPTemplateArgument[] args1 = instantiateArguments(
|
ICPPTemplateArgument[] args1 = instantiateArguments(
|
||||||
((ICPPUnknownMemberClassInstance) unknown).getArguments(), tpMap, packOffset, within, point, false);
|
((ICPPUnknownMemberClassInstance) unknown).getArguments(), tpMap, packOffset, within, point, false);
|
||||||
if (result instanceof ICPPAliasTemplate) {
|
|
||||||
IType aliasedType = ((ICPPAliasTemplate) result).getType();
|
|
||||||
if (aliasedType instanceof IBinding)
|
|
||||||
result = (IBinding) aliasedType;
|
|
||||||
}
|
|
||||||
if (result instanceof ICPPClassTemplate) {
|
if (result instanceof ICPPClassTemplate) {
|
||||||
result = instantiate((ICPPClassTemplate) result, args1, point);
|
result = instantiate((ICPPClassTemplate) result, args1, point);
|
||||||
|
} else if (result instanceof ICPPAliasTemplate) {
|
||||||
|
ICPPAliasTemplate aliasTemplate = (ICPPAliasTemplate) result;
|
||||||
|
IType type= instantiateType(aliasTemplate.getType(), tpMap, -1, getSpecializationContext(within), point);
|
||||||
|
result = new CPPAliasTemplateInstance(aliasTemplate.getNameCharArray(), aliasTemplate, type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue