From 9e1864f5090b0e6acfb3fbceb11af2cbcb719267 Mon Sep 17 00:00:00 2001 From: Ghabriel Date: Mon, 16 Jul 2018 23:10:19 -0300 Subject: [PATCH 1/4] Added a new overload to .concat() --- src/lib/es5.d.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib/es5.d.ts b/src/lib/es5.d.ts index c00f37c260de3..4bba4b7b6b3e9 100644 --- a/src/lib/es5.d.ts +++ b/src/lib/es5.d.ts @@ -1011,6 +1011,11 @@ interface ReadonlyArray { * @param items Additional items to add to the end of array1. */ concat(...items: ConcatArray[]): T[]; + /** + * Combines two or more arrays. + * @param items Additional items to add to the end of array1. + */ + concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; /** * Combines two or more arrays. * @param items Additional items to add to the end of array1. @@ -1139,6 +1144,11 @@ interface Array { * @param items Additional items to add to the end of array1. */ concat(...items: ConcatArray[]): T[]; + /** + * Combines two or more arrays. + * @param items Additional items to add to the end of array1. + */ + concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; /** * Combines two or more arrays. * @param items Additional items to add to the end of array1. From daa2210a1c63f169cd64b568e7a3542ccfc296d7 Mon Sep 17 00:00:00 2001 From: Ghabriel Date: Tue, 17 Jul 2018 09:00:05 -0300 Subject: [PATCH 2/4] Added the baseline changes --- .../baselines/reference/arrayConcat2.symbols | 12 +++---- tests/baselines/reference/arrayConcat2.types | 12 +++---- .../baselines/reference/arrayConcat3.symbols | 4 +-- tests/baselines/reference/arrayConcat3.types | 4 +-- .../reference/arrayConcatMap.symbols | 4 +-- .../baselines/reference/arrayConcatMap.types | 4 +-- ...typeIsAssignableToReadonlyArray.errors.txt | 30 +++++++++++------- tests/baselines/reference/concatError.symbols | 8 ++--- tests/baselines/reference/concatError.types | 8 ++--- .../baselines/reference/concatTuples.symbols | 4 +-- tests/baselines/reference/concatTuples.types | 4 +-- ...ressionTypecheckingDoesntBlowStack.symbols | 4 +-- ...xpressionTypecheckingDoesntBlowStack.types | 4 +-- ...tructuringParameterDeclaration4.errors.txt | 2 +- .../emitSkipsThisWithRestParameter.symbols | 4 +-- .../emitSkipsThisWithRestParameter.types | 4 +-- tests/baselines/reference/for-of39.errors.txt | 26 +++++++--------- .../intersectionTypeInference3.symbols | 4 +-- .../intersectionTypeInference3.types | 4 +-- .../iterableArrayPattern28.errors.txt | 8 ++--- .../iteratorSpreadInArray6.errors.txt | 31 ------------------- .../reference/iteratorSpreadInArray6.symbols | 4 +-- .../reference/iteratorSpreadInArray6.types | 6 ++-- .../reference/iteratorSpreadInArray7.symbols | 4 +-- .../reference/iteratorSpreadInArray7.types | 4 +-- .../reference/parserRealSource4.symbols | 4 +-- .../reference/parserRealSource4.types | 4 +-- .../baselines/reference/parserharness.symbols | 4 +-- tests/baselines/reference/parserharness.types | 4 +-- .../reference/restInvalidArgumentType.types | 2 +- .../reference/spreadInvalidArgumentType.types | 4 +-- ...ousTypeNotReferencingTypeParameter.symbols | 4 +-- ...ymousTypeNotReferencingTypeParameter.types | 4 +-- ...entPartialDefinitionStillErrors.errors.txt | 2 +- .../reference/underscoreTest1.symbols | 4 +-- .../baselines/reference/underscoreTest1.types | 4 +-- 36 files changed, 108 insertions(+), 135 deletions(-) delete mode 100644 tests/baselines/reference/iteratorSpreadInArray6.errors.txt diff --git a/tests/baselines/reference/arrayConcat2.symbols b/tests/baselines/reference/arrayConcat2.symbols index 7da42f6dfcb5e..1f36d26ff9dfc 100644 --- a/tests/baselines/reference/arrayConcat2.symbols +++ b/tests/baselines/reference/arrayConcat2.symbols @@ -3,21 +3,21 @@ var a: string[] = []; >a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) a.concat("hello", 'world'); ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) a.concat('Hello'); ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) var b = new Array(); >b : Symbol(b, Decl(arrayConcat2.ts, 5, 3)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) b.concat('hello'); ->b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(arrayConcat2.ts, 5, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/arrayConcat2.types b/tests/baselines/reference/arrayConcat2.types index f1ca2a5f10977..f359dcfa42a62 100644 --- a/tests/baselines/reference/arrayConcat2.types +++ b/tests/baselines/reference/arrayConcat2.types @@ -5,17 +5,17 @@ var a: string[] = []; a.concat("hello", 'world'); >a.concat("hello", 'world') : string[] ->a.concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>a.concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >a : string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >"hello" : "hello" >'world' : "world" a.concat('Hello'); >a.concat('Hello') : string[] ->a.concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>a.concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >a : string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >'Hello' : "Hello" var b = new Array(); @@ -25,8 +25,8 @@ var b = new Array(); b.concat('hello'); >b.concat('hello') : string[] ->b.concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>b.concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >b : string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >'hello' : "hello" diff --git a/tests/baselines/reference/arrayConcat3.symbols b/tests/baselines/reference/arrayConcat3.symbols index 309fddf179475..a828b93c6acac 100644 --- a/tests/baselines/reference/arrayConcat3.symbols +++ b/tests/baselines/reference/arrayConcat3.symbols @@ -24,9 +24,9 @@ function doStuff(a: Array>, b: ArrayT1 : Symbol(T1, Decl(arrayConcat3.ts, 2, 34)) b.concat(a); ->b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(arrayConcat3.ts, 2, 65)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcat3.ts, 2, 49)) } diff --git a/tests/baselines/reference/arrayConcat3.types b/tests/baselines/reference/arrayConcat3.types index 33321c4321781..62472e5e15e98 100644 --- a/tests/baselines/reference/arrayConcat3.types +++ b/tests/baselines/reference/arrayConcat3.types @@ -25,9 +25,9 @@ function doStuff(a: Array>, b: Arrayb.concat(a) : Fn[] ->b.concat : { (...items: ConcatArray>[]): Fn[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } +>b.concat : { (...items: ConcatArray>[]): Fn[]; (...items: (ConcatArray> | ConcatArray)[]): (Fn | U)[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } >b : Fn[] ->concat : { (...items: ConcatArray>[]): Fn[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } +>concat : { (...items: ConcatArray>[]): Fn[]; (...items: (ConcatArray> | ConcatArray)[]): (Fn | U)[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } >a : Fn[] } diff --git a/tests/baselines/reference/arrayConcatMap.symbols b/tests/baselines/reference/arrayConcatMap.symbols index a01d0f078bfee..fd94619879c61 100644 --- a/tests/baselines/reference/arrayConcatMap.symbols +++ b/tests/baselines/reference/arrayConcatMap.symbols @@ -2,8 +2,8 @@ var x = [].concat([{ a: 1 }], [{ a: 2 }]) >x : Symbol(x, Decl(arrayConcatMap.ts, 0, 3)) >[].concat([{ a: 1 }], [{ a: 2 }]) .map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) ->[].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>[].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcatMap.ts, 0, 20)) >a : Symbol(a, Decl(arrayConcatMap.ts, 0, 32)) diff --git a/tests/baselines/reference/arrayConcatMap.types b/tests/baselines/reference/arrayConcatMap.types index ffc49e548a350..43d353ac5e35c 100644 --- a/tests/baselines/reference/arrayConcatMap.types +++ b/tests/baselines/reference/arrayConcatMap.types @@ -4,9 +4,9 @@ var x = [].concat([{ a: 1 }], [{ a: 2 }]) >[].concat([{ a: 1 }], [{ a: 2 }]) .map(b => b.a) : any[] >[].concat([{ a: 1 }], [{ a: 2 }]) .map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] >[].concat([{ a: 1 }], [{ a: 2 }]) : any[] ->[].concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>[].concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >[] : undefined[] ->concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >[{ a: 1 }] : { a: number; }[] >{ a: 1 } : { a: number; } >a : number diff --git a/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt b/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt index 7ae20699c85ff..3014a4a0bf14b 100644 --- a/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt +++ b/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt @@ -1,13 +1,16 @@ tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(13,1): error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. Types of property 'concat' are incompatible. - Type '{ (...items: ConcatArray[]): A[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (B | ConcatArray)[]): B[]; }'. - Type 'A[]' is not assignable to type 'B[]'. - Type 'A' is not assignable to type 'B'. - Property 'b' is missing in type 'A'. + Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. + Types of parameters 'items' and 'items' are incompatible. + Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray'. + Property 'length' is missing in type 'B'. tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. Types of property 'concat' are incompatible. - Type '{ (...items: ConcatArray[]): A[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (B | ConcatArray)[]): B[]; }'. - Type 'A[]' is not assignable to type 'B[]'. + Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. + Types of parameters 'items' and 'items' are incompatible. + Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray'. ==== tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts (2 errors) ==== @@ -27,10 +30,11 @@ tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error T ~~~ !!! error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. !!! error TS2322: Types of property 'concat' are incompatible. -!!! error TS2322: Type '{ (...items: ConcatArray[]): A[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (B | ConcatArray)[]): B[]; }'. -!!! error TS2322: Type 'A[]' is not assignable to type 'B[]'. -!!! error TS2322: Type 'A' is not assignable to type 'B'. -!!! error TS2322: Property 'b' is missing in type 'A'. +!!! error TS2322: Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. +!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. +!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. +!!! error TS2322: Property 'length' is missing in type 'B'. rra = cra; rra = crb; // OK, C is assignable to ReadonlyArray @@ -39,6 +43,8 @@ tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error T ~~~ !!! error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. !!! error TS2322: Types of property 'concat' are incompatible. -!!! error TS2322: Type '{ (...items: ConcatArray[]): A[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (B | ConcatArray)[]): B[]; }'. -!!! error TS2322: Type 'A[]' is not assignable to type 'B[]'. +!!! error TS2322: Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. +!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. +!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. \ No newline at end of file diff --git a/tests/baselines/reference/concatError.symbols b/tests/baselines/reference/concatError.symbols index f0e455c161daa..02257fd610010 100644 --- a/tests/baselines/reference/concatError.symbols +++ b/tests/baselines/reference/concatError.symbols @@ -13,15 +13,15 @@ var fa: number[]; fa = fa.concat([0]); >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) fa = fa.concat(0); >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/concatError.types b/tests/baselines/reference/concatError.types index 52f413b20b6b4..ddc9b87fdde88 100644 --- a/tests/baselines/reference/concatError.types +++ b/tests/baselines/reference/concatError.types @@ -15,9 +15,9 @@ fa = fa.concat([0]); >fa = fa.concat([0]) : number[] >fa : number[] >fa.concat([0]) : number[] ->fa.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>fa.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >fa : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >[0] : number[] >0 : 0 @@ -25,9 +25,9 @@ fa = fa.concat(0); >fa = fa.concat(0) : number[] >fa : number[] >fa.concat(0) : number[] ->fa.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>fa.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >fa : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >0 : 0 diff --git a/tests/baselines/reference/concatTuples.symbols b/tests/baselines/reference/concatTuples.symbols index 3ebe9664e4d13..6f08289d2e840 100644 --- a/tests/baselines/reference/concatTuples.symbols +++ b/tests/baselines/reference/concatTuples.symbols @@ -4,7 +4,7 @@ let ijs: [number, number][] = [[1, 2]]; ijs = ijs.concat([[3, 4], [5, 6]]); >ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3)) ->ijs.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>ijs.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/concatTuples.types b/tests/baselines/reference/concatTuples.types index d85ee92557041..917f5b378b6b1 100644 --- a/tests/baselines/reference/concatTuples.types +++ b/tests/baselines/reference/concatTuples.types @@ -10,9 +10,9 @@ ijs = ijs.concat([[3, 4], [5, 6]]); >ijs = ijs.concat([[3, 4], [5, 6]]) : [number, number][] >ijs : [number, number][] >ijs.concat([[3, 4], [5, 6]]) : [number, number][] ->ijs.concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } +>ijs.concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: (ConcatArray<[number, number]> | ConcatArray)[]): ([number, number] | U)[]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } >ijs : [number, number][] ->concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } +>concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: (ConcatArray<[number, number]> | ConcatArray)[]): ([number, number] | U)[]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } >[[3, 4], [5, 6]] : [number, number][] >[3, 4] : [number, number] >3 : 3 diff --git a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols index fc44c97996c92..225c2d0dca4cc 100644 --- a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols +++ b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols @@ -47,9 +47,9 @@ export default class Operation { // Commenting out this line will fix the problem. result = (result || []).concat(innerResult); >result : Symbol(result, Decl(contextualExpressionTypecheckingDoesntBlowStack.ts, 7, 11)) ->(result || []).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>(result || []).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >result : Symbol(result, Decl(contextualExpressionTypecheckingDoesntBlowStack.ts, 7, 11)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >innerResult : Symbol(innerResult, Decl(contextualExpressionTypecheckingDoesntBlowStack.ts, 12, 17)) } } diff --git a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types index 5965a2c77430e..078e87e7f91de 100644 --- a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types +++ b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types @@ -76,12 +76,12 @@ export default class Operation { >result = (result || []).concat(innerResult) : IValidationError[] >result : IValidationError[] | null >(result || []).concat(innerResult) : IValidationError[] ->(result || []).concat : { (...items: ConcatArray[]): IValidationError[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } +>(result || []).concat : { (...items: ConcatArray[]): IValidationError[]; (...items: (ConcatArray | ConcatArray)[]): (IValidationError | U)[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } >(result || []) : IValidationError[] >result || [] : IValidationError[] >result : IValidationError[] | null >[] : never[] ->concat : { (...items: ConcatArray[]): IValidationError[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } +>concat : { (...items: ConcatArray[]): IValidationError[]; (...items: (ConcatArray | ConcatArray)[]): (IValidationError | U)[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } >innerResult : any } } diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt index d5a0d34e1a1b4..a2c99b449af76 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt @@ -48,7 +48,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( a1(...array2); // Error parameter type is (number|string)[] ~~~~~~ !!! error TS2552: Cannot find name 'array2'. Did you mean 'Array'? -!!! related TS2728 /.ts/lib.es5.d.ts:1298:15: 'Array' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1308:15: 'Array' is declared here. a5([1, 2, "string", false, true]); // Error, parameter type is [any, any, [[any]]] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '[number, number, string, boolean, boolean]' is not assignable to parameter of type '[any, any, [[any]]]'. diff --git a/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols b/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols index 7c2e8f05b3d09..656fb71b81874 100644 --- a/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols +++ b/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols @@ -15,9 +15,9 @@ function rebase(fn: (base: any, ...args: any[]) => any): (...args: any[]) => any >fn : Symbol(fn, Decl(emitSkipsThisWithRestParameter.ts, 0, 16)) >apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) >this : Symbol(this, Decl(emitSkipsThisWithRestParameter.ts, 1, 20)) ->[ this ].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>[ this ].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >this : Symbol(this, Decl(emitSkipsThisWithRestParameter.ts, 1, 20)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >args : Symbol(args, Decl(emitSkipsThisWithRestParameter.ts, 1, 30)) }; diff --git a/tests/baselines/reference/emitSkipsThisWithRestParameter.types b/tests/baselines/reference/emitSkipsThisWithRestParameter.types index 9aa0e1fa55b66..d301626045642 100644 --- a/tests/baselines/reference/emitSkipsThisWithRestParameter.types +++ b/tests/baselines/reference/emitSkipsThisWithRestParameter.types @@ -18,10 +18,10 @@ function rebase(fn: (base: any, ...args: any[]) => any): (...args: any[]) => any >apply : (this: Function, thisArg: any, argArray?: any) => any >this : any >[ this ].concat(args) : any[] ->[ this ].concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>[ this ].concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >[ this ] : any[] >this : any ->concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >args : any[] }; diff --git a/tests/baselines/reference/for-of39.errors.txt b/tests/baselines/reference/for-of39.errors.txt index 62edda40de371..06793ddec2dd7 100644 --- a/tests/baselines/reference/for-of39.errors.txt +++ b/tests/baselines/reference/for-of39.errors.txt @@ -1,24 +1,22 @@ tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,19): error TS2345: Argument of type '([string, number] | [string, true])[]' is not assignable to parameter of type 'ReadonlyArray<[string, boolean]>'. - Types of property 'concat' are incompatible. - Type '{ (...items: ConcatArray<[string, number] | [string, true]>[]): ([string, number] | [string, true])[]; (...items: ([string, number] | [string, true] | ConcatArray<[string, number] | [string, true]>)[]): ([string, number] | [string, true])[]; }' is not assignable to type '{ (...items: ConcatArray<[string, boolean]>[]): [string, boolean][]; (...items: ([string, boolean] | ConcatArray<[string, boolean]>)[]): [string, boolean][]; }'. - Types of parameters 'items' and 'items' are incompatible. - Type 'ConcatArray<[string, boolean]>' is not assignable to type 'ConcatArray<[string, number] | [string, true]>'. - Type '[string, boolean]' is not assignable to type '[string, number] | [string, true]'. - Type '[string, boolean]' is not assignable to type '[string, number]'. - Type 'boolean' is not assignable to type 'number'. + Types of property 'slice' are incompatible. + Type '(start?: number, end?: number) => ([string, number] | [string, true])[]' is not assignable to type '(start?: number, end?: number) => [string, boolean][]'. + Type '([string, number] | [string, true])[]' is not assignable to type '[string, boolean][]'. + Type '[string, number] | [string, true]' is not assignable to type '[string, boolean]'. + Type '[string, number]' is not assignable to type '[string, boolean]'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/conformance/es6/for-ofStatements/for-of39.ts (1 errors) ==== var map = new Map([["", true], ["", 0]]); ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '([string, number] | [string, true])[]' is not assignable to parameter of type 'ReadonlyArray<[string, boolean]>'. -!!! error TS2345: Types of property 'concat' are incompatible. -!!! error TS2345: Type '{ (...items: ConcatArray<[string, number] | [string, true]>[]): ([string, number] | [string, true])[]; (...items: ([string, number] | [string, true] | ConcatArray<[string, number] | [string, true]>)[]): ([string, number] | [string, true])[]; }' is not assignable to type '{ (...items: ConcatArray<[string, boolean]>[]): [string, boolean][]; (...items: ([string, boolean] | ConcatArray<[string, boolean]>)[]): [string, boolean][]; }'. -!!! error TS2345: Types of parameters 'items' and 'items' are incompatible. -!!! error TS2345: Type 'ConcatArray<[string, boolean]>' is not assignable to type 'ConcatArray<[string, number] | [string, true]>'. -!!! error TS2345: Type '[string, boolean]' is not assignable to type '[string, number] | [string, true]'. -!!! error TS2345: Type '[string, boolean]' is not assignable to type '[string, number]'. -!!! error TS2345: Type 'boolean' is not assignable to type 'number'. +!!! error TS2345: Types of property 'slice' are incompatible. +!!! error TS2345: Type '(start?: number, end?: number) => ([string, number] | [string, true])[]' is not assignable to type '(start?: number, end?: number) => [string, boolean][]'. +!!! error TS2345: Type '([string, number] | [string, true])[]' is not assignable to type '[string, boolean][]'. +!!! error TS2345: Type '[string, number] | [string, true]' is not assignable to type '[string, boolean]'. +!!! error TS2345: Type '[string, number]' is not assignable to type '[string, boolean]'. +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. for (var [k, v] of map) { k; v; diff --git a/tests/baselines/reference/intersectionTypeInference3.symbols b/tests/baselines/reference/intersectionTypeInference3.symbols index 7c851010e0153..4524dce9446a2 100644 --- a/tests/baselines/reference/intersectionTypeInference3.symbols +++ b/tests/baselines/reference/intersectionTypeInference3.symbols @@ -32,12 +32,12 @@ declare const b: Set; const c1 = Array.from(a).concat(Array.from(b)); >c1 : Symbol(c1, Decl(intersectionTypeInference3.ts, 11, 5)) ->Array.from(a).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Array.from(a).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Array.from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) >a : Symbol(a, Decl(intersectionTypeInference3.ts, 8, 13)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Array.from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) diff --git a/tests/baselines/reference/intersectionTypeInference3.types b/tests/baselines/reference/intersectionTypeInference3.types index 9af8eaf6d0354..141fb2155e93b 100644 --- a/tests/baselines/reference/intersectionTypeInference3.types +++ b/tests/baselines/reference/intersectionTypeInference3.types @@ -33,13 +33,13 @@ declare const b: Set; const c1 = Array.from(a).concat(Array.from(b)); >c1 : Nominal<"A", string>[] >Array.from(a).concat(Array.from(b)) : Nominal<"A", string>[] ->Array.from(a).concat : { (...items: ConcatArray>[]): Nominal<"A", string>[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } +>Array.from(a).concat : { (...items: ConcatArray>[]): Nominal<"A", string>[]; (...items: (ConcatArray> | ConcatArray)[]): (Nominal<"A", string> | U)[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } >Array.from(a) : Nominal<"A", string>[] >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } >Array : ArrayConstructor >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } >a : Set> ->concat : { (...items: ConcatArray>[]): Nominal<"A", string>[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } +>concat : { (...items: ConcatArray>[]): Nominal<"A", string>[]; (...items: (ConcatArray> | ConcatArray)[]): (Nominal<"A", string> | U)[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } >Array.from(b) : Nominal<"A", string>[] >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } >Array : ArrayConstructor diff --git a/tests/baselines/reference/iterableArrayPattern28.errors.txt b/tests/baselines/reference/iterableArrayPattern28.errors.txt index 7ca750cd81fae..1e4d2c50d214b 100644 --- a/tests/baselines/reference/iterableArrayPattern28.errors.txt +++ b/tests/baselines/reference/iterableArrayPattern28.errors.txt @@ -1,7 +1,7 @@ tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(1,33): error TS2501: A rest element cannot contain a binding pattern. tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,32): error TS2345: Argument of type '([string, number] | [string, boolean])[]' is not assignable to parameter of type 'ReadonlyArray<[string, number]>'. - Types of property 'concat' are incompatible. - Type '{ (...items: ConcatArray<[string, number] | [string, boolean]>[]): ([string, number] | [string, boolean])[]; (...items: ([string, number] | [string, boolean] | ConcatArray<[string, number] | [string, boolean]>)[]): ([string, number] | [string, boolean])[]; }' is not assignable to type '{ (...items: ConcatArray<[string, number]>[]): [string, number][]; (...items: ([string, number] | ConcatArray<[string, number]>)[]): [string, number][]; }'. + Types of property 'slice' are incompatible. + Type '(start?: number, end?: number) => ([string, number] | [string, boolean])[]' is not assignable to type '(start?: number, end?: number) => [string, number][]'. Type '([string, number] | [string, boolean])[]' is not assignable to type '[string, number][]'. Type '[string, number] | [string, boolean]' is not assignable to type '[string, number]'. Type '[string, boolean]' is not assignable to type '[string, number]'. @@ -15,8 +15,8 @@ tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,32): error takeFirstTwoEntries(...new Map([["", 0], ["hello", true]])); ~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '([string, number] | [string, boolean])[]' is not assignable to parameter of type 'ReadonlyArray<[string, number]>'. -!!! error TS2345: Types of property 'concat' are incompatible. -!!! error TS2345: Type '{ (...items: ConcatArray<[string, number] | [string, boolean]>[]): ([string, number] | [string, boolean])[]; (...items: ([string, number] | [string, boolean] | ConcatArray<[string, number] | [string, boolean]>)[]): ([string, number] | [string, boolean])[]; }' is not assignable to type '{ (...items: ConcatArray<[string, number]>[]): [string, number][]; (...items: ([string, number] | ConcatArray<[string, number]>)[]): [string, number][]; }'. +!!! error TS2345: Types of property 'slice' are incompatible. +!!! error TS2345: Type '(start?: number, end?: number) => ([string, number] | [string, boolean])[]' is not assignable to type '(start?: number, end?: number) => [string, number][]'. !!! error TS2345: Type '([string, number] | [string, boolean])[]' is not assignable to type '[string, number][]'. !!! error TS2345: Type '[string, number] | [string, boolean]' is not assignable to type '[string, number]'. !!! error TS2345: Type '[string, boolean]' is not assignable to type '[string, number]'. diff --git a/tests/baselines/reference/iteratorSpreadInArray6.errors.txt b/tests/baselines/reference/iteratorSpreadInArray6.errors.txt deleted file mode 100644 index 4f547c59ed045..0000000000000 --- a/tests/baselines/reference/iteratorSpreadInArray6.errors.txt +++ /dev/null @@ -1,31 +0,0 @@ -tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts(15,14): error TS2345: Argument of type 'symbol[]' is not assignable to parameter of type 'number | ConcatArray'. - Type 'symbol[]' is not assignable to type 'ConcatArray'. - Types of property 'slice' are incompatible. - Type '(start?: number, end?: number) => symbol[]' is not assignable to type '(start?: number, end?: number) => number[]'. - Type 'symbol[]' is not assignable to type 'number[]'. - Type 'symbol' is not assignable to type 'number'. - - -==== tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts (1 errors) ==== - class SymbolIterator { - next() { - return { - value: Symbol(), - done: false - }; - } - - [Symbol.iterator]() { - return this; - } - } - - var array: number[] = [0, 1]; - array.concat([...new SymbolIterator]); - ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type 'symbol[]' is not assignable to parameter of type 'number | ConcatArray'. -!!! error TS2345: Type 'symbol[]' is not assignable to type 'ConcatArray'. -!!! error TS2345: Types of property 'slice' are incompatible. -!!! error TS2345: Type '(start?: number, end?: number) => symbol[]' is not assignable to type '(start?: number, end?: number) => number[]'. -!!! error TS2345: Type 'symbol[]' is not assignable to type 'number[]'. -!!! error TS2345: Type 'symbol' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/iteratorSpreadInArray6.symbols b/tests/baselines/reference/iteratorSpreadInArray6.symbols index 0903693a8bc73..6bb486b9ea906 100644 --- a/tests/baselines/reference/iteratorSpreadInArray6.symbols +++ b/tests/baselines/reference/iteratorSpreadInArray6.symbols @@ -31,8 +31,8 @@ var array: number[] = [0, 1]; >array : Symbol(array, Decl(iteratorSpreadInArray6.ts, 13, 3)) array.concat([...new SymbolIterator]); ->array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >array : Symbol(array, Decl(iteratorSpreadInArray6.ts, 13, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray6.ts, 0, 0)) diff --git a/tests/baselines/reference/iteratorSpreadInArray6.types b/tests/baselines/reference/iteratorSpreadInArray6.types index b964fdbca1304..553f60896ccc1 100644 --- a/tests/baselines/reference/iteratorSpreadInArray6.types +++ b/tests/baselines/reference/iteratorSpreadInArray6.types @@ -38,10 +38,10 @@ var array: number[] = [0, 1]; >1 : 1 array.concat([...new SymbolIterator]); ->array.concat([...new SymbolIterator]) : any ->array.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>array.concat([...new SymbolIterator]) : (number | symbol)[] +>array.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >array : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >[...new SymbolIterator] : symbol[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/iteratorSpreadInArray7.symbols b/tests/baselines/reference/iteratorSpreadInArray7.symbols index 15bd761ea32b9..e9c8c5ffc88cf 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.symbols +++ b/tests/baselines/reference/iteratorSpreadInArray7.symbols @@ -31,8 +31,8 @@ var array: symbol[]; >array : Symbol(array, Decl(iteratorSpreadInArray7.ts, 13, 3)) array.concat([...new SymbolIterator]); ->array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >array : Symbol(array, Decl(iteratorSpreadInArray7.ts, 13, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 0, 0)) diff --git a/tests/baselines/reference/iteratorSpreadInArray7.types b/tests/baselines/reference/iteratorSpreadInArray7.types index 9d3cf2cfa7ed6..4db2729de9da1 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.types +++ b/tests/baselines/reference/iteratorSpreadInArray7.types @@ -36,9 +36,9 @@ var array: symbol[]; array.concat([...new SymbolIterator]); >array.concat([...new SymbolIterator]) : symbol[] ->array.concat : { (...items: ConcatArray[]): symbol[]; (...items: (symbol | ConcatArray)[]): symbol[]; } +>array.concat : { (...items: ConcatArray[]): symbol[]; (...items: (ConcatArray | ConcatArray)[]): (symbol | U)[]; (...items: (symbol | ConcatArray)[]): symbol[]; } >array : symbol[] ->concat : { (...items: ConcatArray[]): symbol[]; (...items: (symbol | ConcatArray)[]): symbol[]; } +>concat : { (...items: ConcatArray[]): symbol[]; (...items: (ConcatArray | ConcatArray)[]): (symbol | U)[]; (...items: (symbol | ConcatArray)[]): symbol[]; } >[...new SymbolIterator] : symbol[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/parserRealSource4.symbols b/tests/baselines/reference/parserRealSource4.symbols index f43c35dcaa53a..f6401760239c9 100644 --- a/tests/baselines/reference/parserRealSource4.symbols +++ b/tests/baselines/reference/parserRealSource4.symbols @@ -373,13 +373,13 @@ module TypeScript { >getAllKeys : Symbol(DualStringHashTable.getAllKeys, Decl(parserRealSource4.ts, 120, 78)) return this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()); ->this.primaryTable.getAllKeys().concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>this.primaryTable.getAllKeys().concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >this.primaryTable.getAllKeys : Symbol(IHashTable.getAllKeys, Decl(parserRealSource4.ts, 22, 33)) >this.primaryTable : Symbol(DualStringHashTable.primaryTable, Decl(parserRealSource4.ts, 119, 21)) >this : Symbol(DualStringHashTable, Decl(parserRealSource4.ts, 110, 5)) >primaryTable : Symbol(DualStringHashTable.primaryTable, Decl(parserRealSource4.ts, 119, 21)) >getAllKeys : Symbol(IHashTable.getAllKeys, Decl(parserRealSource4.ts, 22, 33)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >this.secondaryTable.getAllKeys : Symbol(IHashTable.getAllKeys, Decl(parserRealSource4.ts, 22, 33)) >this.secondaryTable : Symbol(DualStringHashTable.secondaryTable, Decl(parserRealSource4.ts, 119, 53)) >this : Symbol(DualStringHashTable, Decl(parserRealSource4.ts, 110, 5)) diff --git a/tests/baselines/reference/parserRealSource4.types b/tests/baselines/reference/parserRealSource4.types index ed0d23feb41e4..385463af41634 100644 --- a/tests/baselines/reference/parserRealSource4.types +++ b/tests/baselines/reference/parserRealSource4.types @@ -424,14 +424,14 @@ module TypeScript { return this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()); >this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()) : string[] ->this.primaryTable.getAllKeys().concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>this.primaryTable.getAllKeys().concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >this.primaryTable.getAllKeys() : string[] >this.primaryTable.getAllKeys : () => string[] >this.primaryTable : IHashTable >this : this >primaryTable : IHashTable >getAllKeys : () => string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >this.secondaryTable.getAllKeys() : string[] >this.secondaryTable.getAllKeys : () => string[] >this.secondaryTable : IHashTable diff --git a/tests/baselines/reference/parserharness.symbols b/tests/baselines/reference/parserharness.symbols index 85fcd37d626ee..283ef454196d6 100644 --- a/tests/baselines/reference/parserharness.symbols +++ b/tests/baselines/reference/parserharness.symbols @@ -3415,9 +3415,9 @@ module Harness { >forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) >v : Symbol(v, Decl(parserharness.ts, 1177, 36)) >lines : Symbol(lines, Decl(parserharness.ts, 1176, 19)) ->lines.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>lines.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >lines : Symbol(lines, Decl(parserharness.ts, 1176, 19)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >v.file.lines : Symbol(WriterAggregator.lines, Decl(parserharness.ts, 690, 62)) >v.file : Symbol(file, Decl(parserharness.ts, 1175, 63)) >v : Symbol(v, Decl(parserharness.ts, 1177, 36)) diff --git a/tests/baselines/reference/parserharness.types b/tests/baselines/reference/parserharness.types index cc8bae97706e9..fe2bc5d12ccfe 100644 --- a/tests/baselines/reference/parserharness.types +++ b/tests/baselines/reference/parserharness.types @@ -4868,9 +4868,9 @@ module Harness { >lines = lines.concat(v.file.lines) : any[] >lines : any[] >lines.concat(v.file.lines) : any[] ->lines.concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>lines.concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >lines : any[] ->concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >v.file.lines : string[] >v.file : WriterAggregator >v : { filename: string; file: WriterAggregator; } diff --git a/tests/baselines/reference/restInvalidArgumentType.types b/tests/baselines/reference/restInvalidArgumentType.types index cea3764f1d2a4..624e73b29ee43 100644 --- a/tests/baselines/reference/restInvalidArgumentType.types +++ b/tests/baselines/reference/restInvalidArgumentType.types @@ -87,7 +87,7 @@ function f(p1: T, p2: T[]) { >p1 : T var {...r2} = p2; // OK ->r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } >p2 : T[] var {...r3} = t; // Error, generic type paramter diff --git a/tests/baselines/reference/spreadInvalidArgumentType.types b/tests/baselines/reference/spreadInvalidArgumentType.types index 60d332d7db180..b6675c717ebaf 100644 --- a/tests/baselines/reference/spreadInvalidArgumentType.types +++ b/tests/baselines/reference/spreadInvalidArgumentType.types @@ -89,8 +89,8 @@ function f(p1: T, p2: T[]) { >p1 : T var o2 = { ...p2 }; // OK ->o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } ->{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } >p2 : T[] var o3 = { ...t }; // Error, generic type paramter diff --git a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols index 5bcfebca97ce8..59f2fd1e2d0a3 100644 --- a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols +++ b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols @@ -300,9 +300,9 @@ class ListWrapper { >ListWrapper : Symbol(ListWrapper, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 38, 1)) >a : Symbol(a, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 40)) >b : Symbol(b, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 50)) ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 40)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 50)) static insert(dit: typeof ListWrapper, list: T[], index: number, value: T) { list.splice(index, 0, value); } diff --git a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types index 56cded213453d..5427f55510ea3 100644 --- a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types +++ b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types @@ -348,9 +348,9 @@ class ListWrapper { >a : any[] >b : any[] >a.concat(b) : any[] ->a.concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>a.concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >a : any[] ->concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >b : any[] static insert(dit: typeof ListWrapper, list: T[], index: number, value: T) { list.splice(index, 0, value); } diff --git a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt index 255d0eb32bc7d..69d949c45c564 100644 --- a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt +++ b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt @@ -15,5 +15,5 @@ tests/cases/compiler/file.tsx(11,14): error TS2322: Type 'number' is not assigna prop={1}>; // should error ~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 /.ts/lib.es5.d.ts:1382:39: The expected type comes from property 'prop' which is declared here on type 'Record' +!!! related TS6500 /.ts/lib.es5.d.ts:1392:39: The expected type comes from property 'prop' which is declared here on type 'Record' \ No newline at end of file diff --git a/tests/baselines/reference/underscoreTest1.symbols b/tests/baselines/reference/underscoreTest1.symbols index cfae9f8bb6c6f..9bd3cdaa5c002 100644 --- a/tests/baselines/reference/underscoreTest1.symbols +++ b/tests/baselines/reference/underscoreTest1.symbols @@ -71,9 +71,9 @@ var flat = _.reduceRight(list, (a, b) => a.concat(b), []); >list : Symbol(list, Decl(underscoreTest1_underscoreTests.ts, 13, 3)) >a : Symbol(a, Decl(underscoreTest1_underscoreTests.ts, 14, 32)) >b : Symbol(b, Decl(underscoreTest1_underscoreTests.ts, 14, 34)) ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(underscoreTest1_underscoreTests.ts, 14, 32)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(underscoreTest1_underscoreTests.ts, 14, 34)) var even = _.find([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0); diff --git a/tests/baselines/reference/underscoreTest1.types b/tests/baselines/reference/underscoreTest1.types index fbc64c0012b54..a9eb30a8de91b 100644 --- a/tests/baselines/reference/underscoreTest1.types +++ b/tests/baselines/reference/underscoreTest1.types @@ -124,9 +124,9 @@ var flat = _.reduceRight(list, (a, b) => a.concat(b), []); >a : number[] >b : number[] >a.concat(b) : number[] ->a.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>a.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >a : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >b : number[] >[] : undefined[] From 2167cf1f8e48f46992dc121e59484ce339d4ccff Mon Sep 17 00:00:00 2001 From: Ghabriel Date: Tue, 17 Jul 2018 19:02:05 -0300 Subject: [PATCH 3/4] Removed an unnecessary concat overload --- src/lib/es5.d.ts | 14 ++------ .../baselines/reference/arrayConcat2.symbols | 12 +++---- tests/baselines/reference/arrayConcat2.types | 12 +++---- .../baselines/reference/arrayConcat3.symbols | 4 +-- tests/baselines/reference/arrayConcat3.types | 6 ++-- .../reference/arrayConcatMap.symbols | 4 +-- .../baselines/reference/arrayConcatMap.types | 4 +-- ...typeIsAssignableToReadonlyArray.errors.txt | 32 +++++++++++-------- tests/baselines/reference/concatError.symbols | 8 ++--- tests/baselines/reference/concatError.types | 8 ++--- .../baselines/reference/concatTuples.symbols | 4 +-- tests/baselines/reference/concatTuples.types | 4 +-- ...ressionTypecheckingDoesntBlowStack.symbols | 4 +-- ...xpressionTypecheckingDoesntBlowStack.types | 4 +-- ...tructuringParameterDeclaration4.errors.txt | 2 +- .../emitSkipsThisWithRestParameter.symbols | 4 +-- .../emitSkipsThisWithRestParameter.types | 4 +-- .../intersectionTypeInference3.symbols | 4 +-- .../intersectionTypeInference3.types | 4 +-- .../reference/iteratorSpreadInArray6.symbols | 4 +-- .../reference/iteratorSpreadInArray6.types | 4 +-- .../reference/iteratorSpreadInArray7.symbols | 4 +-- .../reference/iteratorSpreadInArray7.types | 4 +-- .../reference/parserRealSource4.symbols | 4 +-- .../reference/parserRealSource4.types | 4 +-- .../baselines/reference/parserharness.symbols | 4 +-- tests/baselines/reference/parserharness.types | 4 +-- .../reference/restInvalidArgumentType.types | 2 +- .../reference/spreadInvalidArgumentType.types | 4 +-- ...ousTypeNotReferencingTypeParameter.symbols | 4 +-- ...ymousTypeNotReferencingTypeParameter.types | 4 +-- ...entPartialDefinitionStillErrors.errors.txt | 2 +- .../reference/underscoreTest1.symbols | 4 +-- .../baselines/reference/underscoreTest1.types | 4 +-- 34 files changed, 94 insertions(+), 100 deletions(-) diff --git a/src/lib/es5.d.ts b/src/lib/es5.d.ts index 4bba4b7b6b3e9..3510b65ec5568 100644 --- a/src/lib/es5.d.ts +++ b/src/lib/es5.d.ts @@ -1010,12 +1010,7 @@ interface ReadonlyArray { * Combines two or more arrays. * @param items Additional items to add to the end of array1. */ - concat(...items: ConcatArray[]): T[]; - /** - * Combines two or more arrays. - * @param items Additional items to add to the end of array1. - */ - concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; + concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; /** * Combines two or more arrays. * @param items Additional items to add to the end of array1. @@ -1143,12 +1138,7 @@ interface Array { * Combines two or more arrays. * @param items Additional items to add to the end of array1. */ - concat(...items: ConcatArray[]): T[]; - /** - * Combines two or more arrays. - * @param items Additional items to add to the end of array1. - */ - concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; + concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; /** * Combines two or more arrays. * @param items Additional items to add to the end of array1. diff --git a/tests/baselines/reference/arrayConcat2.symbols b/tests/baselines/reference/arrayConcat2.symbols index 1f36d26ff9dfc..7da42f6dfcb5e 100644 --- a/tests/baselines/reference/arrayConcat2.symbols +++ b/tests/baselines/reference/arrayConcat2.symbols @@ -3,21 +3,21 @@ var a: string[] = []; >a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) a.concat("hello", 'world'); ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) a.concat('Hello'); ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) var b = new Array(); >b : Symbol(b, Decl(arrayConcat2.ts, 5, 3)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) b.concat('hello'); ->b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(arrayConcat2.ts, 5, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/arrayConcat2.types b/tests/baselines/reference/arrayConcat2.types index f359dcfa42a62..c35b2c490bf1b 100644 --- a/tests/baselines/reference/arrayConcat2.types +++ b/tests/baselines/reference/arrayConcat2.types @@ -5,17 +5,17 @@ var a: string[] = []; a.concat("hello", 'world'); >a.concat("hello", 'world') : string[] ->a.concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>a.concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >a : string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >"hello" : "hello" >'world' : "world" a.concat('Hello'); >a.concat('Hello') : string[] ->a.concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>a.concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >a : string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >'Hello' : "Hello" var b = new Array(); @@ -25,8 +25,8 @@ var b = new Array(); b.concat('hello'); >b.concat('hello') : string[] ->b.concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>b.concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >b : string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >'hello' : "hello" diff --git a/tests/baselines/reference/arrayConcat3.symbols b/tests/baselines/reference/arrayConcat3.symbols index a828b93c6acac..309fddf179475 100644 --- a/tests/baselines/reference/arrayConcat3.symbols +++ b/tests/baselines/reference/arrayConcat3.symbols @@ -24,9 +24,9 @@ function doStuff(a: Array>, b: ArrayT1 : Symbol(T1, Decl(arrayConcat3.ts, 2, 34)) b.concat(a); ->b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>b.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(arrayConcat3.ts, 2, 65)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcat3.ts, 2, 49)) } diff --git a/tests/baselines/reference/arrayConcat3.types b/tests/baselines/reference/arrayConcat3.types index 62472e5e15e98..5c15476bc0e80 100644 --- a/tests/baselines/reference/arrayConcat3.types +++ b/tests/baselines/reference/arrayConcat3.types @@ -24,10 +24,10 @@ function doStuff(a: Array>, b: ArrayT1 : T1 b.concat(a); ->b.concat(a) : Fn[] ->b.concat : { (...items: ConcatArray>[]): Fn[]; (...items: (ConcatArray> | ConcatArray)[]): (Fn | U)[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } +>b.concat(a) : (Fn | Fn)[] +>b.concat : { (...items: (ConcatArray> | ConcatArray)[]): (Fn | U)[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } >b : Fn[] ->concat : { (...items: ConcatArray>[]): Fn[]; (...items: (ConcatArray> | ConcatArray)[]): (Fn | U)[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } +>concat : { (...items: (ConcatArray> | ConcatArray)[]): (Fn | U)[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } >a : Fn[] } diff --git a/tests/baselines/reference/arrayConcatMap.symbols b/tests/baselines/reference/arrayConcatMap.symbols index fd94619879c61..a01d0f078bfee 100644 --- a/tests/baselines/reference/arrayConcatMap.symbols +++ b/tests/baselines/reference/arrayConcatMap.symbols @@ -2,8 +2,8 @@ var x = [].concat([{ a: 1 }], [{ a: 2 }]) >x : Symbol(x, Decl(arrayConcatMap.ts, 0, 3)) >[].concat([{ a: 1 }], [{ a: 2 }]) .map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) ->[].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>[].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(arrayConcatMap.ts, 0, 20)) >a : Symbol(a, Decl(arrayConcatMap.ts, 0, 32)) diff --git a/tests/baselines/reference/arrayConcatMap.types b/tests/baselines/reference/arrayConcatMap.types index 43d353ac5e35c..4e3bd2ef29d12 100644 --- a/tests/baselines/reference/arrayConcatMap.types +++ b/tests/baselines/reference/arrayConcatMap.types @@ -4,9 +4,9 @@ var x = [].concat([{ a: 1 }], [{ a: 2 }]) >[].concat([{ a: 1 }], [{ a: 2 }]) .map(b => b.a) : any[] >[].concat([{ a: 1 }], [{ a: 2 }]) .map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] >[].concat([{ a: 1 }], [{ a: 2 }]) : any[] ->[].concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>[].concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >[] : undefined[] ->concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >[{ a: 1 }] : { a: number; }[] >{ a: 1 } : { a: number; } >a : number diff --git a/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt b/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt index 3014a4a0bf14b..c4a3c2b1c2096 100644 --- a/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt +++ b/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt @@ -1,16 +1,18 @@ tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(13,1): error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. Types of property 'concat' are incompatible. - Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. + Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. Types of parameters 'items' and 'items' are incompatible. - Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. - Type 'B' is not assignable to type 'ConcatArray'. - Property 'length' is missing in type 'B'. + Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray'. + Property 'length' is missing in type 'B'. tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. Types of property 'concat' are incompatible. - Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. + Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. Types of parameters 'items' and 'items' are incompatible. - Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. - Type 'B' is not assignable to type 'ConcatArray'. + Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray'. ==== tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts (2 errors) ==== @@ -30,11 +32,12 @@ tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error T ~~~ !!! error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. !!! error TS2322: Types of property 'concat' are incompatible. -!!! error TS2322: Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. +!!! error TS2322: Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. !!! error TS2322: Types of parameters 'items' and 'items' are incompatible. -!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. -!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. -!!! error TS2322: Property 'length' is missing in type 'B'. +!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. +!!! error TS2322: Property 'length' is missing in type 'B'. rra = cra; rra = crb; // OK, C is assignable to ReadonlyArray @@ -43,8 +46,9 @@ tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error T ~~~ !!! error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. !!! error TS2322: Types of property 'concat' are incompatible. -!!! error TS2322: Type '{ (...items: ConcatArray[]): A[]; (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: ConcatArray[]): B[]; (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. +!!! error TS2322: Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. !!! error TS2322: Types of parameters 'items' and 'items' are incompatible. -!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray'. -!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. +!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. \ No newline at end of file diff --git a/tests/baselines/reference/concatError.symbols b/tests/baselines/reference/concatError.symbols index 02257fd610010..f0e455c161daa 100644 --- a/tests/baselines/reference/concatError.symbols +++ b/tests/baselines/reference/concatError.symbols @@ -13,15 +13,15 @@ var fa: number[]; fa = fa.concat([0]); >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) fa = fa.concat(0); >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>fa.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >fa : Symbol(fa, Decl(concatError.ts, 7, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/concatError.types b/tests/baselines/reference/concatError.types index ddc9b87fdde88..b1eef807e7cbb 100644 --- a/tests/baselines/reference/concatError.types +++ b/tests/baselines/reference/concatError.types @@ -15,9 +15,9 @@ fa = fa.concat([0]); >fa = fa.concat([0]) : number[] >fa : number[] >fa.concat([0]) : number[] ->fa.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>fa.concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >fa : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >[0] : number[] >0 : 0 @@ -25,9 +25,9 @@ fa = fa.concat(0); >fa = fa.concat(0) : number[] >fa : number[] >fa.concat(0) : number[] ->fa.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>fa.concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >fa : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >0 : 0 diff --git a/tests/baselines/reference/concatTuples.symbols b/tests/baselines/reference/concatTuples.symbols index 6f08289d2e840..3ebe9664e4d13 100644 --- a/tests/baselines/reference/concatTuples.symbols +++ b/tests/baselines/reference/concatTuples.symbols @@ -4,7 +4,7 @@ let ijs: [number, number][] = [[1, 2]]; ijs = ijs.concat([[3, 4], [5, 6]]); >ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3)) ->ijs.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>ijs.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/concatTuples.types b/tests/baselines/reference/concatTuples.types index 917f5b378b6b1..1aee667eb5e46 100644 --- a/tests/baselines/reference/concatTuples.types +++ b/tests/baselines/reference/concatTuples.types @@ -10,9 +10,9 @@ ijs = ijs.concat([[3, 4], [5, 6]]); >ijs = ijs.concat([[3, 4], [5, 6]]) : [number, number][] >ijs : [number, number][] >ijs.concat([[3, 4], [5, 6]]) : [number, number][] ->ijs.concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: (ConcatArray<[number, number]> | ConcatArray)[]): ([number, number] | U)[]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } +>ijs.concat : { (...items: (ConcatArray<[number, number]> | ConcatArray)[]): ([number, number] | U)[]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } >ijs : [number, number][] ->concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: (ConcatArray<[number, number]> | ConcatArray)[]): ([number, number] | U)[]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } +>concat : { (...items: (ConcatArray<[number, number]> | ConcatArray)[]): ([number, number] | U)[]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } >[[3, 4], [5, 6]] : [number, number][] >[3, 4] : [number, number] >3 : 3 diff --git a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols index 225c2d0dca4cc..fc44c97996c92 100644 --- a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols +++ b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.symbols @@ -47,9 +47,9 @@ export default class Operation { // Commenting out this line will fix the problem. result = (result || []).concat(innerResult); >result : Symbol(result, Decl(contextualExpressionTypecheckingDoesntBlowStack.ts, 7, 11)) ->(result || []).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>(result || []).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >result : Symbol(result, Decl(contextualExpressionTypecheckingDoesntBlowStack.ts, 7, 11)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >innerResult : Symbol(innerResult, Decl(contextualExpressionTypecheckingDoesntBlowStack.ts, 12, 17)) } } diff --git a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types index 078e87e7f91de..20e69e5bfd59a 100644 --- a/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types +++ b/tests/baselines/reference/contextualExpressionTypecheckingDoesntBlowStack.types @@ -76,12 +76,12 @@ export default class Operation { >result = (result || []).concat(innerResult) : IValidationError[] >result : IValidationError[] | null >(result || []).concat(innerResult) : IValidationError[] ->(result || []).concat : { (...items: ConcatArray[]): IValidationError[]; (...items: (ConcatArray | ConcatArray)[]): (IValidationError | U)[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } +>(result || []).concat : { (...items: (ConcatArray | ConcatArray)[]): (IValidationError | U)[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } >(result || []) : IValidationError[] >result || [] : IValidationError[] >result : IValidationError[] | null >[] : never[] ->concat : { (...items: ConcatArray[]): IValidationError[]; (...items: (ConcatArray | ConcatArray)[]): (IValidationError | U)[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (IValidationError | U)[]; (...items: (IValidationError | ConcatArray)[]): IValidationError[]; } >innerResult : any } } diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt index a2c99b449af76..d5a0d34e1a1b4 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt @@ -48,7 +48,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( a1(...array2); // Error parameter type is (number|string)[] ~~~~~~ !!! error TS2552: Cannot find name 'array2'. Did you mean 'Array'? -!!! related TS2728 /.ts/lib.es5.d.ts:1308:15: 'Array' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1298:15: 'Array' is declared here. a5([1, 2, "string", false, true]); // Error, parameter type is [any, any, [[any]]] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '[number, number, string, boolean, boolean]' is not assignable to parameter of type '[any, any, [[any]]]'. diff --git a/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols b/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols index 656fb71b81874..7c2e8f05b3d09 100644 --- a/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols +++ b/tests/baselines/reference/emitSkipsThisWithRestParameter.symbols @@ -15,9 +15,9 @@ function rebase(fn: (base: any, ...args: any[]) => any): (...args: any[]) => any >fn : Symbol(fn, Decl(emitSkipsThisWithRestParameter.ts, 0, 16)) >apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) >this : Symbol(this, Decl(emitSkipsThisWithRestParameter.ts, 1, 20)) ->[ this ].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>[ this ].concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >this : Symbol(this, Decl(emitSkipsThisWithRestParameter.ts, 1, 20)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >args : Symbol(args, Decl(emitSkipsThisWithRestParameter.ts, 1, 30)) }; diff --git a/tests/baselines/reference/emitSkipsThisWithRestParameter.types b/tests/baselines/reference/emitSkipsThisWithRestParameter.types index d301626045642..3a9c08ae56513 100644 --- a/tests/baselines/reference/emitSkipsThisWithRestParameter.types +++ b/tests/baselines/reference/emitSkipsThisWithRestParameter.types @@ -18,10 +18,10 @@ function rebase(fn: (base: any, ...args: any[]) => any): (...args: any[]) => any >apply : (this: Function, thisArg: any, argArray?: any) => any >this : any >[ this ].concat(args) : any[] ->[ this ].concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>[ this ].concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >[ this ] : any[] >this : any ->concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >args : any[] }; diff --git a/tests/baselines/reference/intersectionTypeInference3.symbols b/tests/baselines/reference/intersectionTypeInference3.symbols index 4524dce9446a2..7c851010e0153 100644 --- a/tests/baselines/reference/intersectionTypeInference3.symbols +++ b/tests/baselines/reference/intersectionTypeInference3.symbols @@ -32,12 +32,12 @@ declare const b: Set; const c1 = Array.from(a).concat(Array.from(b)); >c1 : Symbol(c1, Decl(intersectionTypeInference3.ts, 11, 5)) ->Array.from(a).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Array.from(a).concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Array.from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) >a : Symbol(a, Decl(intersectionTypeInference3.ts, 8, 13)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Array.from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >from : Symbol(ArrayConstructor.from, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) diff --git a/tests/baselines/reference/intersectionTypeInference3.types b/tests/baselines/reference/intersectionTypeInference3.types index 141fb2155e93b..9a88b75937d96 100644 --- a/tests/baselines/reference/intersectionTypeInference3.types +++ b/tests/baselines/reference/intersectionTypeInference3.types @@ -33,13 +33,13 @@ declare const b: Set; const c1 = Array.from(a).concat(Array.from(b)); >c1 : Nominal<"A", string>[] >Array.from(a).concat(Array.from(b)) : Nominal<"A", string>[] ->Array.from(a).concat : { (...items: ConcatArray>[]): Nominal<"A", string>[]; (...items: (ConcatArray> | ConcatArray)[]): (Nominal<"A", string> | U)[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } +>Array.from(a).concat : { (...items: (ConcatArray> | ConcatArray)[]): (Nominal<"A", string> | U)[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } >Array.from(a) : Nominal<"A", string>[] >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } >Array : ArrayConstructor >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } >a : Set> ->concat : { (...items: ConcatArray>[]): Nominal<"A", string>[]; (...items: (ConcatArray> | ConcatArray)[]): (Nominal<"A", string> | U)[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } +>concat : { (...items: (ConcatArray> | ConcatArray)[]): (Nominal<"A", string> | U)[]; (...items: (Nominal<"A", string> | ConcatArray>)[]): Nominal<"A", string>[]; } >Array.from(b) : Nominal<"A", string>[] >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } >Array : ArrayConstructor diff --git a/tests/baselines/reference/iteratorSpreadInArray6.symbols b/tests/baselines/reference/iteratorSpreadInArray6.symbols index 6bb486b9ea906..0903693a8bc73 100644 --- a/tests/baselines/reference/iteratorSpreadInArray6.symbols +++ b/tests/baselines/reference/iteratorSpreadInArray6.symbols @@ -31,8 +31,8 @@ var array: number[] = [0, 1]; >array : Symbol(array, Decl(iteratorSpreadInArray6.ts, 13, 3)) array.concat([...new SymbolIterator]); ->array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >array : Symbol(array, Decl(iteratorSpreadInArray6.ts, 13, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray6.ts, 0, 0)) diff --git a/tests/baselines/reference/iteratorSpreadInArray6.types b/tests/baselines/reference/iteratorSpreadInArray6.types index 553f60896ccc1..3fbfe8f7c040e 100644 --- a/tests/baselines/reference/iteratorSpreadInArray6.types +++ b/tests/baselines/reference/iteratorSpreadInArray6.types @@ -39,9 +39,9 @@ var array: number[] = [0, 1]; array.concat([...new SymbolIterator]); >array.concat([...new SymbolIterator]) : (number | symbol)[] ->array.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>array.concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >array : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >[...new SymbolIterator] : symbol[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/iteratorSpreadInArray7.symbols b/tests/baselines/reference/iteratorSpreadInArray7.symbols index e9c8c5ffc88cf..15bd761ea32b9 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.symbols +++ b/tests/baselines/reference/iteratorSpreadInArray7.symbols @@ -31,8 +31,8 @@ var array: symbol[]; >array : Symbol(array, Decl(iteratorSpreadInArray7.ts, 13, 3)) array.concat([...new SymbolIterator]); ->array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>array.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >array : Symbol(array, Decl(iteratorSpreadInArray7.ts, 13, 3)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 0, 0)) diff --git a/tests/baselines/reference/iteratorSpreadInArray7.types b/tests/baselines/reference/iteratorSpreadInArray7.types index 4db2729de9da1..3d23d32c2205e 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.types +++ b/tests/baselines/reference/iteratorSpreadInArray7.types @@ -36,9 +36,9 @@ var array: symbol[]; array.concat([...new SymbolIterator]); >array.concat([...new SymbolIterator]) : symbol[] ->array.concat : { (...items: ConcatArray[]): symbol[]; (...items: (ConcatArray | ConcatArray)[]): (symbol | U)[]; (...items: (symbol | ConcatArray)[]): symbol[]; } +>array.concat : { (...items: (ConcatArray | ConcatArray)[]): (symbol | U)[]; (...items: (symbol | ConcatArray)[]): symbol[]; } >array : symbol[] ->concat : { (...items: ConcatArray[]): symbol[]; (...items: (ConcatArray | ConcatArray)[]): (symbol | U)[]; (...items: (symbol | ConcatArray)[]): symbol[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (symbol | U)[]; (...items: (symbol | ConcatArray)[]): symbol[]; } >[...new SymbolIterator] : symbol[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/parserRealSource4.symbols b/tests/baselines/reference/parserRealSource4.symbols index f6401760239c9..f43c35dcaa53a 100644 --- a/tests/baselines/reference/parserRealSource4.symbols +++ b/tests/baselines/reference/parserRealSource4.symbols @@ -373,13 +373,13 @@ module TypeScript { >getAllKeys : Symbol(DualStringHashTable.getAllKeys, Decl(parserRealSource4.ts, 120, 78)) return this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()); ->this.primaryTable.getAllKeys().concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>this.primaryTable.getAllKeys().concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >this.primaryTable.getAllKeys : Symbol(IHashTable.getAllKeys, Decl(parserRealSource4.ts, 22, 33)) >this.primaryTable : Symbol(DualStringHashTable.primaryTable, Decl(parserRealSource4.ts, 119, 21)) >this : Symbol(DualStringHashTable, Decl(parserRealSource4.ts, 110, 5)) >primaryTable : Symbol(DualStringHashTable.primaryTable, Decl(parserRealSource4.ts, 119, 21)) >getAllKeys : Symbol(IHashTable.getAllKeys, Decl(parserRealSource4.ts, 22, 33)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >this.secondaryTable.getAllKeys : Symbol(IHashTable.getAllKeys, Decl(parserRealSource4.ts, 22, 33)) >this.secondaryTable : Symbol(DualStringHashTable.secondaryTable, Decl(parserRealSource4.ts, 119, 53)) >this : Symbol(DualStringHashTable, Decl(parserRealSource4.ts, 110, 5)) diff --git a/tests/baselines/reference/parserRealSource4.types b/tests/baselines/reference/parserRealSource4.types index 385463af41634..803e627d03cde 100644 --- a/tests/baselines/reference/parserRealSource4.types +++ b/tests/baselines/reference/parserRealSource4.types @@ -424,14 +424,14 @@ module TypeScript { return this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()); >this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()) : string[] ->this.primaryTable.getAllKeys().concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>this.primaryTable.getAllKeys().concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >this.primaryTable.getAllKeys() : string[] >this.primaryTable.getAllKeys : () => string[] >this.primaryTable : IHashTable >this : this >primaryTable : IHashTable >getAllKeys : () => string[] ->concat : { (...items: ConcatArray[]): string[]; (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (string | U)[]; (...items: (string | ConcatArray)[]): string[]; } >this.secondaryTable.getAllKeys() : string[] >this.secondaryTable.getAllKeys : () => string[] >this.secondaryTable : IHashTable diff --git a/tests/baselines/reference/parserharness.symbols b/tests/baselines/reference/parserharness.symbols index 283ef454196d6..85fcd37d626ee 100644 --- a/tests/baselines/reference/parserharness.symbols +++ b/tests/baselines/reference/parserharness.symbols @@ -3415,9 +3415,9 @@ module Harness { >forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) >v : Symbol(v, Decl(parserharness.ts, 1177, 36)) >lines : Symbol(lines, Decl(parserharness.ts, 1176, 19)) ->lines.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>lines.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >lines : Symbol(lines, Decl(parserharness.ts, 1176, 19)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >v.file.lines : Symbol(WriterAggregator.lines, Decl(parserharness.ts, 690, 62)) >v.file : Symbol(file, Decl(parserharness.ts, 1175, 63)) >v : Symbol(v, Decl(parserharness.ts, 1177, 36)) diff --git a/tests/baselines/reference/parserharness.types b/tests/baselines/reference/parserharness.types index fe2bc5d12ccfe..d415607b1ea5f 100644 --- a/tests/baselines/reference/parserharness.types +++ b/tests/baselines/reference/parserharness.types @@ -4868,9 +4868,9 @@ module Harness { >lines = lines.concat(v.file.lines) : any[] >lines : any[] >lines.concat(v.file.lines) : any[] ->lines.concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>lines.concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >lines : any[] ->concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >v.file.lines : string[] >v.file : WriterAggregator >v : { filename: string; file: WriterAggregator; } diff --git a/tests/baselines/reference/restInvalidArgumentType.types b/tests/baselines/reference/restInvalidArgumentType.types index 624e73b29ee43..6824f0077be4a 100644 --- a/tests/baselines/reference/restInvalidArgumentType.types +++ b/tests/baselines/reference/restInvalidArgumentType.types @@ -87,7 +87,7 @@ function f(p1: T, p2: T[]) { >p1 : T var {...r2} = p2; // OK ->r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } >p2 : T[] var {...r3} = t; // Error, generic type paramter diff --git a/tests/baselines/reference/spreadInvalidArgumentType.types b/tests/baselines/reference/spreadInvalidArgumentType.types index b6675c717ebaf..234820a31ee31 100644 --- a/tests/baselines/reference/spreadInvalidArgumentType.types +++ b/tests/baselines/reference/spreadInvalidArgumentType.types @@ -89,8 +89,8 @@ function f(p1: T, p2: T[]) { >p1 : T var o2 = { ...p2 }; // OK ->o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } ->{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: (ConcatArray | ConcatArray)[]): (T | U)[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } >p2 : T[] var o3 = { ...t }; // Error, generic type paramter diff --git a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols index 59f2fd1e2d0a3..5bcfebca97ce8 100644 --- a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols +++ b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols @@ -300,9 +300,9 @@ class ListWrapper { >ListWrapper : Symbol(ListWrapper, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 38, 1)) >a : Symbol(a, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 40)) >b : Symbol(b, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 50)) ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 40)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 68, 50)) static insert(dit: typeof ListWrapper, list: T[], index: number, value: T) { list.splice(index, 0, value); } diff --git a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types index 5427f55510ea3..4b3623b3a2096 100644 --- a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types +++ b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types @@ -348,9 +348,9 @@ class ListWrapper { >a : any[] >b : any[] >a.concat(b) : any[] ->a.concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>a.concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >a : any[] ->concat : { (...items: ConcatArray[]): any[]; (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): any[]; (...items: any[]): any[]; } >b : any[] static insert(dit: typeof ListWrapper, list: T[], index: number, value: T) { list.splice(index, 0, value); } diff --git a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt index 69d949c45c564..255d0eb32bc7d 100644 --- a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt +++ b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.errors.txt @@ -15,5 +15,5 @@ tests/cases/compiler/file.tsx(11,14): error TS2322: Type 'number' is not assigna prop={1}>; // should error ~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 /.ts/lib.es5.d.ts:1392:39: The expected type comes from property 'prop' which is declared here on type 'Record' +!!! related TS6500 /.ts/lib.es5.d.ts:1382:39: The expected type comes from property 'prop' which is declared here on type 'Record' \ No newline at end of file diff --git a/tests/baselines/reference/underscoreTest1.symbols b/tests/baselines/reference/underscoreTest1.symbols index 9bd3cdaa5c002..cfae9f8bb6c6f 100644 --- a/tests/baselines/reference/underscoreTest1.symbols +++ b/tests/baselines/reference/underscoreTest1.symbols @@ -71,9 +71,9 @@ var flat = _.reduceRight(list, (a, b) => a.concat(b), []); >list : Symbol(list, Decl(underscoreTest1_underscoreTests.ts, 13, 3)) >a : Symbol(a, Decl(underscoreTest1_underscoreTests.ts, 14, 32)) >b : Symbol(b, Decl(underscoreTest1_underscoreTests.ts, 14, 34)) ->a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(underscoreTest1_underscoreTests.ts, 14, 32)) ->concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >b : Symbol(b, Decl(underscoreTest1_underscoreTests.ts, 14, 34)) var even = _.find([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0); diff --git a/tests/baselines/reference/underscoreTest1.types b/tests/baselines/reference/underscoreTest1.types index a9eb30a8de91b..cc00bca907fdb 100644 --- a/tests/baselines/reference/underscoreTest1.types +++ b/tests/baselines/reference/underscoreTest1.types @@ -124,9 +124,9 @@ var flat = _.reduceRight(list, (a, b) => a.concat(b), []); >a : number[] >b : number[] >a.concat(b) : number[] ->a.concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>a.concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >a : number[] ->concat : { (...items: ConcatArray[]): number[]; (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } +>concat : { (...items: (ConcatArray | ConcatArray)[]): (number | U)[]; (...items: (number | ConcatArray)[]): number[]; } >b : number[] >[] : undefined[] From 410b5cd182a96d90e8651d28f0b2fcd1c1d3181a Mon Sep 17 00:00:00 2001 From: Ghabriel Date: Sat, 6 Oct 2018 12:07:02 -0300 Subject: [PATCH 4/4] Updated the generated files --- ...typeIsAssignableToReadonlyArray.errors.txt | 90 +++++++++---------- tests/baselines/reference/for-of39.errors.txt | 20 ++--- .../iterableArrayPattern28.errors.txt | 20 ++--- .../reference/mappedTypesArraysTuples.types | 4 +- 4 files changed, 67 insertions(+), 67 deletions(-) diff --git a/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt b/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt index 5ad70351db654..c90fc3a15a15f 100644 --- a/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt +++ b/tests/baselines/reference/arrayOfSubtypeIsAssignableToReadonlyArray.errors.txt @@ -1,46 +1,46 @@ -tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(13,1): error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. - Type 'A' is not assignable to type 'B'. - Property 'b' is missing in type 'A'. -tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. - Types of property 'concat' are incompatible. - Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. - Types of parameters 'items' and 'items' are incompatible. - Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. - Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. - Type 'B' is not assignable to type 'ConcatArray'. - Property 'length' is missing in type 'B'. - - -==== tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts (2 errors) ==== - class A { a } - class B extends A { b } - class C extends Array { c } - declare var ara: A[]; - declare var arb: B[]; - declare var cra: C; - declare var crb: C; - declare var rra: ReadonlyArray; - declare var rrb: ReadonlyArray; - rra = ara; - rrb = arb; // OK, Array is assignable to ReadonlyArray - rra = arb; - rrb = ara; // error: 'A' is not assignable to 'B' - ~~~ -!!! error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. -!!! error TS2322: Type 'A' is not assignable to type 'B'. -!!! error TS2322: Property 'b' is missing in type 'A'. - - rra = cra; - rra = crb; // OK, C is assignable to ReadonlyArray - rrb = crb; - rrb = cra; // error: 'A' is not assignable to 'B' - ~~~ -!!! error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. -!!! error TS2322: Types of property 'concat' are incompatible. -!!! error TS2322: Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. -!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. -!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. -!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. -!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. -!!! error TS2322: Property 'length' is missing in type 'B'. +tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(13,1): error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. + Type 'A' is not assignable to type 'B'. + Property 'b' is missing in type 'A'. +tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. + Types of property 'concat' are incompatible. + Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. + Types of parameters 'items' and 'items' are incompatible. + Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. + Type 'B' is not assignable to type 'ConcatArray'. + Property 'length' is missing in type 'B'. + + +==== tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts (2 errors) ==== + class A { a } + class B extends A { b } + class C extends Array { c } + declare var ara: A[]; + declare var arb: B[]; + declare var cra: C; + declare var crb: C; + declare var rra: ReadonlyArray; + declare var rrb: ReadonlyArray; + rra = ara; + rrb = arb; // OK, Array is assignable to ReadonlyArray + rra = arb; + rrb = ara; // error: 'A' is not assignable to 'B' + ~~~ +!!! error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray'. +!!! error TS2322: Type 'A' is not assignable to type 'B'. +!!! error TS2322: Property 'b' is missing in type 'A'. + + rra = cra; + rra = crb; // OK, C is assignable to ReadonlyArray + rrb = crb; + rrb = cra; // error: 'A' is not assignable to 'B' + ~~~ +!!! error TS2322: Type 'C' is not assignable to type 'ReadonlyArray'. +!!! error TS2322: Types of property 'concat' are incompatible. +!!! error TS2322: Type '{ (...items: (ConcatArray | ConcatArray)[]): (A | U)[]; (...items: (A | ConcatArray)[]): A[]; }' is not assignable to type '{ (...items: (ConcatArray | ConcatArray)[]): (B | U)[]; (...items: (B | ConcatArray)[]): B[]; }'. +!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. +!!! error TS2322: Type 'B | ConcatArray' is not assignable to type 'ConcatArray | ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray | ConcatArray'. +!!! error TS2322: Type 'B' is not assignable to type 'ConcatArray'. +!!! error TS2322: Property 'length' is missing in type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/for-of39.errors.txt b/tests/baselines/reference/for-of39.errors.txt index 57200b8a1027a..fedf9f3e3435e 100644 --- a/tests/baselines/reference/for-of39.errors.txt +++ b/tests/baselines/reference/for-of39.errors.txt @@ -1,11 +1,11 @@ -tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,37): error TS2322: Type 'number' is not assignable to type 'boolean'. - - -==== tests/cases/conformance/es6/for-ofStatements/for-of39.ts (1 errors) ==== - var map = new Map([["", true], ["", 0]]); - ~ -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. - for (var [k, v] of map) { - k; - v; +tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,37): error TS2322: Type 'number' is not assignable to type 'boolean'. + + +==== tests/cases/conformance/es6/for-ofStatements/for-of39.ts (1 errors) ==== + var map = new Map([["", true], ["", 0]]); + ~ +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. + for (var [k, v] of map) { + k; + v; } \ No newline at end of file diff --git a/tests/baselines/reference/iterableArrayPattern28.errors.txt b/tests/baselines/reference/iterableArrayPattern28.errors.txt index 31a47af29cd64..26ce99e048aa7 100644 --- a/tests/baselines/reference/iterableArrayPattern28.errors.txt +++ b/tests/baselines/reference/iterableArrayPattern28.errors.txt @@ -1,11 +1,11 @@ -tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(1,33): error TS2501: A rest element cannot contain a binding pattern. -tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,52): error TS2322: Type 'true' is not assignable to type 'number'. - - -==== tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts (2 errors) ==== - function takeFirstTwoEntries(...[[k1, v1], [k2, v2]]: [string, number][]) { } - ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2501: A rest element cannot contain a binding pattern. - takeFirstTwoEntries(...new Map([["", 0], ["hello", true]])); - ~~~~ +tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(1,33): error TS2501: A rest element cannot contain a binding pattern. +tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,52): error TS2322: Type 'true' is not assignable to type 'number'. + + +==== tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts (2 errors) ==== + function takeFirstTwoEntries(...[[k1, v1], [k2, v2]]: [string, number][]) { } + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2501: A rest element cannot contain a binding pattern. + takeFirstTwoEntries(...new Map([["", 0], ["hello", true]])); + ~~~~ !!! error TS2322: Type 'true' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypesArraysTuples.types b/tests/baselines/reference/mappedTypesArraysTuples.types index df99246e9bd27..ab855515a272f 100644 --- a/tests/baselines/reference/mappedTypesArraysTuples.types +++ b/tests/baselines/reference/mappedTypesArraysTuples.types @@ -196,9 +196,9 @@ function f2(a: Boxified) { let y: Box[] = a.concat(a); >y : Box[] >a.concat(a) : Box[] ->a.concat : { (...items: ConcatArray>[]): Box[]; (...items: (Box | ConcatArray>)[]): Box[]; } +>a.concat : { (...items: (ConcatArray> | ConcatArray)[]): (Box | U)[]; (...items: (Box | ConcatArray>)[]): Box[]; } >a : Boxified ->concat : { (...items: ConcatArray>[]): Box[]; (...items: (Box | ConcatArray>)[]): Box[]; } +>concat : { (...items: (ConcatArray> | ConcatArray)[]): (Box | U)[]; (...items: (Box | ConcatArray>)[]): Box[]; } >a : Boxified }