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
|
=== tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceTransitiveConstraints.ts ===
function fn<A extends Date, B extends A, C extends B>(a: A, b: B, c: C) {
>fn : Symbol(fn, Decl(typeArgumentInferenceTransitiveConstraints.ts, 0, 0))
>A : Symbol(A, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 12))
>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>B : Symbol(B, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 27))
>A : Symbol(A, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 12))
>C : Symbol(C, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 40))
>B : Symbol(B, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 27))
>a : Symbol(a, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 54))
>A : Symbol(A, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 12))
>b : Symbol(b, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 59))
>B : Symbol(B, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 27))
>c : Symbol(c, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 65))
>C : Symbol(C, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 40))
return [a, b, c];
>a : Symbol(a, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 54))
>b : Symbol(b, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 59))
>c : Symbol(c, Decl(typeArgumentInferenceTransitiveConstraints.ts, 1, 65))
}
var d = fn(new Date(), new Date(), new Date());
>d : Symbol(d, Decl(typeArgumentInferenceTransitiveConstraints.ts, 5, 3), Decl(typeArgumentInferenceTransitiveConstraints.ts, 6, 3))
>fn : Symbol(fn, Decl(typeArgumentInferenceTransitiveConstraints.ts, 0, 0))
>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
var d: Date[]; // Should be OK (d should be Date[])
>d : Symbol(d, Decl(typeArgumentInferenceTransitiveConstraints.ts, 5, 3), Decl(typeArgumentInferenceTransitiveConstraints.ts, 6, 3))
>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|