46 lines
765 B
Plaintext
46 lines
765 B
Plaintext
=== tests/cases/compiler/typeParameterOrderReversal.ts ===
|
|
interface X<T> {
|
|
>X : X<T>
|
|
>T : T
|
|
|
|
n: T;
|
|
>n : T
|
|
>T : T
|
|
}
|
|
|
|
// Only difference here is order of type parameters
|
|
function uFirst<U extends X<T>, T>(x: U) { }
|
|
>uFirst : <U extends X<T>, T>(x: U) => void
|
|
>U : U
|
|
>X : X<T>
|
|
>T : T
|
|
>T : T
|
|
>x : U
|
|
>U : U
|
|
|
|
function tFirst<T, U extends X<T>>(x: U) { }
|
|
>tFirst : <T, U extends X<T>>(x: U) => void
|
|
>T : T
|
|
>U : U
|
|
>X : X<T>
|
|
>T : T
|
|
>x : U
|
|
>U : U
|
|
|
|
var z: X<number> = null;
|
|
>z : X<number>
|
|
>X : X<T>
|
|
>null : null
|
|
|
|
// Both of these should be allowed
|
|
uFirst(z);
|
|
>uFirst(z) : void
|
|
>uFirst : <U extends X<T>, T>(x: U) => void
|
|
>z : X<number>
|
|
|
|
tFirst(z);
|
|
>tFirst(z) : void
|
|
>tFirst : <T, U extends X<T>>(x: U) => void
|
|
>z : X<number>
|
|
|