Hello.
Consider the following small program:
Hello.
Consider the following small program:
This would be better; I don't think we really get anything out of the current
redundancy in TemplateName. We might need a
DependentTemplateSpecializationType first, though.
John.
I'd like to make the following proposal to rationalize this area of type
system:
- introduce UnresolvedNameType (it contains only an IdentifierInfo*)
- introduce UnresolvedTemplateSpecializationType (IdentifierInfo* +
template arguments)
- (optional) unify DependentNameType to ElaboratedType: an
ElaboratedType is a dependent name type (in the meaning of removed
DependentNameType) if its inner type is Unresolved
This isn't appropriate for a canonical type system. How would such a type
canonicalize? A<T>::foo and B<T>::foo have different canonical types.
I still think a DependentTemplateSpecializationType in parallel with
DependentNameType would be more appropriate. Like DNT, it would
instantiate to an ElaboratedType, only the inner type would be a TST
instead of some sort of TypeDecl type.
I'll implement this tomorrow.
John.