1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
=== tests/cases/compiler/unionTypeParameterInference.ts ===
// Regression test for #5861
interface Foo<T> { prop: T; }
>Foo : Foo<T>
>T : T
>prop : T
>T : T
declare function lift<U>(value: U | Foo<U>): Foo<U>;
>lift : <U>(value: U | Foo<U>) => Foo<U>
>U : U
>value : U | Foo<U>
>U : U
>Foo : Foo<T>
>U : U
>Foo : Foo<T>
>U : U
function unlift<U>(value: U | Foo<U>): U {
>unlift : <U>(value: U | Foo<U>) => U
>U : U
>value : U | Foo<U>
>U : U
>Foo : Foo<T>
>U : U
>U : U
return lift(value).prop;
>lift(value).prop : U
>lift(value) : Foo<U>
>lift : <U>(value: U | Foo<U>) => Foo<U>
>value : U | Foo<U>
>prop : U
}
|