Addressing CR feedback

This commit is contained in:
Anders Hejlsberg 2015-08-06 17:17:20 -07:00
parent 07fd7ba8da
commit 105979a89f
4 changed files with 157 additions and 37 deletions

View File

@ -19,14 +19,33 @@ interface C {
<T>(x: T[]): T[];
}
var f: A | B | C;
var n = f(42); // number
var s = f("abc"); // boolean | string | number
var a = f([true, false]); // boolean[]
var f1: A | B | C;
var n1 = f1(42); // number
var s1 = f1("abc"); // boolean | string | number
var a1 = f1([true, false]); // boolean[]
var f2: C | B | A;
var n2 = f2(42); // number
var s2 = f2("abc"); // number | string | boolean
var a2 = f2([true, false]); // boolean[]
var f3: B | A | C;
var n3 = f3(42); // number
var s3 = f3("abc"); // string | boolean | number
var a3 = f3([true, false]); // boolean[]
//// [unionTypeCallSignatures2.js]
var f;
var n = f(42); // number
var s = f("abc"); // boolean | string | number
var a = f([true, false]); // boolean[]
var f1;
var n1 = f1(42); // number
var s1 = f1("abc"); // boolean | string | number
var a1 = f1([true, false]); // boolean[]
var f2;
var n2 = f2(42); // number
var s2 = f2("abc"); // number | string | boolean
var a2 = f2([true, false]); // boolean[]
var f3;
var n3 = f3(42); // number
var s3 = f3("abc"); // string | boolean | number
var a3 = f3([true, false]); // boolean[]

View File

@ -58,21 +58,58 @@ interface C {
>T : Symbol(T, Decl(unionTypeCallSignatures2.ts, 17, 5))
}
var f: A | B | C;
>f : Symbol(f, Decl(unionTypeCallSignatures2.ts, 20, 3))
var f1: A | B | C;
>f1 : Symbol(f1, Decl(unionTypeCallSignatures2.ts, 20, 3))
>A : Symbol(A, Decl(unionTypeCallSignatures2.ts, 0, 0))
>B : Symbol(B, Decl(unionTypeCallSignatures2.ts, 5, 1))
>C : Symbol(C, Decl(unionTypeCallSignatures2.ts, 12, 1))
var n = f(42); // number
>n : Symbol(n, Decl(unionTypeCallSignatures2.ts, 21, 3))
>f : Symbol(f, Decl(unionTypeCallSignatures2.ts, 20, 3))
var n1 = f1(42); // number
>n1 : Symbol(n1, Decl(unionTypeCallSignatures2.ts, 21, 3))
>f1 : Symbol(f1, Decl(unionTypeCallSignatures2.ts, 20, 3))
var s = f("abc"); // boolean | string | number
>s : Symbol(s, Decl(unionTypeCallSignatures2.ts, 22, 3))
>f : Symbol(f, Decl(unionTypeCallSignatures2.ts, 20, 3))
var s1 = f1("abc"); // boolean | string | number
>s1 : Symbol(s1, Decl(unionTypeCallSignatures2.ts, 22, 3))
>f1 : Symbol(f1, Decl(unionTypeCallSignatures2.ts, 20, 3))
var a1 = f1([true, false]); // boolean[]
>a1 : Symbol(a1, Decl(unionTypeCallSignatures2.ts, 23, 3))
>f1 : Symbol(f1, Decl(unionTypeCallSignatures2.ts, 20, 3))
var f2: C | B | A;
>f2 : Symbol(f2, Decl(unionTypeCallSignatures2.ts, 25, 3))
>C : Symbol(C, Decl(unionTypeCallSignatures2.ts, 12, 1))
>B : Symbol(B, Decl(unionTypeCallSignatures2.ts, 5, 1))
>A : Symbol(A, Decl(unionTypeCallSignatures2.ts, 0, 0))
var n2 = f2(42); // number
>n2 : Symbol(n2, Decl(unionTypeCallSignatures2.ts, 26, 3))
>f2 : Symbol(f2, Decl(unionTypeCallSignatures2.ts, 25, 3))
var s2 = f2("abc"); // number | string | boolean
>s2 : Symbol(s2, Decl(unionTypeCallSignatures2.ts, 27, 3))
>f2 : Symbol(f2, Decl(unionTypeCallSignatures2.ts, 25, 3))
var a2 = f2([true, false]); // boolean[]
>a2 : Symbol(a2, Decl(unionTypeCallSignatures2.ts, 28, 3))
>f2 : Symbol(f2, Decl(unionTypeCallSignatures2.ts, 25, 3))
var f3: B | A | C;
>f3 : Symbol(f3, Decl(unionTypeCallSignatures2.ts, 30, 3))
>B : Symbol(B, Decl(unionTypeCallSignatures2.ts, 5, 1))
>A : Symbol(A, Decl(unionTypeCallSignatures2.ts, 0, 0))
>C : Symbol(C, Decl(unionTypeCallSignatures2.ts, 12, 1))
var n3 = f3(42); // number
>n3 : Symbol(n3, Decl(unionTypeCallSignatures2.ts, 31, 3))
>f3 : Symbol(f3, Decl(unionTypeCallSignatures2.ts, 30, 3))
var s3 = f3("abc"); // string | boolean | number
>s3 : Symbol(s3, Decl(unionTypeCallSignatures2.ts, 32, 3))
>f3 : Symbol(f3, Decl(unionTypeCallSignatures2.ts, 30, 3))
var a3 = f3([true, false]); // boolean[]
>a3 : Symbol(a3, Decl(unionTypeCallSignatures2.ts, 33, 3))
>f3 : Symbol(f3, Decl(unionTypeCallSignatures2.ts, 30, 3))
var a = f([true, false]); // boolean[]
>a : Symbol(a, Decl(unionTypeCallSignatures2.ts, 23, 3))
>f : Symbol(f, Decl(unionTypeCallSignatures2.ts, 20, 3))

View File

@ -58,29 +58,82 @@ interface C {
>T : T
}
var f: A | B | C;
>f : A | B | C
var f1: A | B | C;
>f1 : A | B | C
>A : A
>B : B
>C : C
var n = f(42); // number
>n : number
>f(42) : number
>f : A | B | C
var n1 = f1(42); // number
>n1 : number
>f1(42) : number
>f1 : A | B | C
>42 : number
var s = f("abc"); // boolean | string | number
>s : boolean | string | number
>f("abc") : boolean | string | number
>f : A | B | C
var s1 = f1("abc"); // boolean | string | number
>s1 : boolean | string | number
>f1("abc") : boolean | string | number
>f1 : A | B | C
>"abc" : string
var a = f([true, false]); // boolean[]
>a : boolean[]
>f([true, false]) : boolean[]
>f : A | B | C
var a1 = f1([true, false]); // boolean[]
>a1 : boolean[]
>f1([true, false]) : boolean[]
>f1 : A | B | C
>[true, false] : boolean[]
>true : boolean
>false : boolean
var f2: C | B | A;
>f2 : C | B | A
>C : C
>B : B
>A : A
var n2 = f2(42); // number
>n2 : number
>f2(42) : number
>f2 : C | B | A
>42 : number
var s2 = f2("abc"); // number | string | boolean
>s2 : number | string | boolean
>f2("abc") : number | string | boolean
>f2 : C | B | A
>"abc" : string
var a2 = f2([true, false]); // boolean[]
>a2 : boolean[]
>f2([true, false]) : boolean[]
>f2 : C | B | A
>[true, false] : boolean[]
>true : boolean
>false : boolean
var f3: B | A | C;
>f3 : B | A | C
>B : B
>A : A
>C : C
var n3 = f3(42); // number
>n3 : number
>f3(42) : number
>f3 : B | A | C
>42 : number
var s3 = f3("abc"); // string | boolean | number
>s3 : string | boolean | number
>f3("abc") : string | boolean | number
>f3 : B | A | C
>"abc" : string
var a3 = f3([true, false]); // boolean[]
>a3 : boolean[]
>f3([true, false]) : boolean[]
>f3 : B | A | C
>[true, false] : boolean[]
>true : boolean
>false : boolean

View File

@ -18,7 +18,18 @@ interface C {
<T>(x: T[]): T[];
}
var f: A | B | C;
var n = f(42); // number
var s = f("abc"); // boolean | string | number
var a = f([true, false]); // boolean[]
var f1: A | B | C;
var n1 = f1(42); // number
var s1 = f1("abc"); // boolean | string | number
var a1 = f1([true, false]); // boolean[]
var f2: C | B | A;
var n2 = f2(42); // number
var s2 = f2("abc"); // number | string | boolean
var a2 = f2([true, false]); // boolean[]
var f3: B | A | C;
var n3 = f3(42); // number
var s3 = f3("abc"); // string | boolean | number
var a3 = f3([true, false]); // boolean[]