You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This T2 on the last line corresponds to the formal argument in Bar(T2)'s superclass, i.e. it is a Crystal::TypeParameter, formed by substituting T1. The same also happens if that argument is a nested generic like Array(T2) or a splat like *T2 (in that case the type is a Crystal::TypeSplat instead).
This means those type parameters must be substituted repeatedly until no formal parameters appear in the type.
The text was updated successfully, but these errors were encountered:
This was discovered while writing #3649 (comment). Consider:
This
T2
on the last line corresponds to the formal argument inBar(T2)
's superclass, i.e. it is aCrystal::TypeParameter
, formed by substitutingT1
. The same also happens if that argument is a nested generic likeArray(T2)
or a splat like*T2
(in that case the type is aCrystal::TypeSplat
instead).This means those type parameters must be substituted repeatedly until no formal parameters appear in the type.
The text was updated successfully, but these errors were encountered: