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
|
=== tests/cases/compiler/ambiguousGenericAssertion1.ts ===
function f<T>(x: T): T { return null; }
>f : <T>(x: T) => T
>x : T
>null : null
var r = <T>(x: T) => x;
>r : <T>(x: T) => T
><T>(x: T) => x : <T>(x: T) => T
>x : T
>x : T
var r2 = < <T>(x: T) => T>f; // valid
>r2 : <T>(x: T) => T
>< <T>(x: T) => T>f : <T>(x: T) => T
>x : T
>f : <T>(x: T) => T
var r3 = <<T>(x: T) => T>f; // ambiguous, appears to the parser as a << operation
>r3 : boolean
><<T>(x : boolean
><<T : number
> : any
>T : any
>(x : any
>x : any
>T : any
>T>f : boolean
>T : any
>f : <T>(x: T) => T
|