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
|
=== tests/cases/compiler/primitiveConstraints1.ts ===
function foo1<T extends U, U>(t: T, u: U) { }
>foo1 : Symbol(foo1, Decl(primitiveConstraints1.ts, 0, 0))
>T : Symbol(T, Decl(primitiveConstraints1.ts, 0, 14))
>U : Symbol(U, Decl(primitiveConstraints1.ts, 0, 26))
>U : Symbol(U, Decl(primitiveConstraints1.ts, 0, 26))
>t : Symbol(t, Decl(primitiveConstraints1.ts, 0, 30))
>T : Symbol(T, Decl(primitiveConstraints1.ts, 0, 14))
>u : Symbol(u, Decl(primitiveConstraints1.ts, 0, 35))
>U : Symbol(U, Decl(primitiveConstraints1.ts, 0, 26))
foo1<string, number>('hm', 1); // no error
>foo1 : Symbol(foo1, Decl(primitiveConstraints1.ts, 0, 0))
function foo2<T, U extends T>(t: T, u: U) { }
>foo2 : Symbol(foo2, Decl(primitiveConstraints1.ts, 1, 30))
>T : Symbol(T, Decl(primitiveConstraints1.ts, 3, 14))
>U : Symbol(U, Decl(primitiveConstraints1.ts, 3, 16))
>T : Symbol(T, Decl(primitiveConstraints1.ts, 3, 14))
>t : Symbol(t, Decl(primitiveConstraints1.ts, 3, 30))
>T : Symbol(T, Decl(primitiveConstraints1.ts, 3, 14))
>u : Symbol(u, Decl(primitiveConstraints1.ts, 3, 35))
>U : Symbol(U, Decl(primitiveConstraints1.ts, 3, 16))
foo2<number, string>(1, 'hm'); // error
>foo2 : Symbol(foo2, Decl(primitiveConstraints1.ts, 1, 30))
|