1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
=== tests/cases/conformance/types/typeRelationships/recursiveTypes/infiniteExpansionThroughInstantiation2.ts ===
// instantiating a derived type can cause an infinitely expanding type reference to be generated
// which could be used in an assignment check for constraint satisfaction
interface AA<T extends AA<T>> // now an error due to referencing type parameter in constraint
>AA : AA<T>
>T : T
>AA : AA<T>
>T : T
{
x: T
>x : T
>T : T
}
interface BB extends AA<AA<BB>>
>BB : BB
>AA : AA<T>
>AA : AA<T>
>BB : BB
{
}
|