diff --git a/tests/baselines/reference/restParameterWithBindingPattern3.errors.txt b/tests/baselines/reference/restParameterWithBindingPattern3.errors.txt index 8b278ed3783..ea6bda983d8 100644 --- a/tests/baselines/reference/restParameterWithBindingPattern3.errors.txt +++ b/tests/baselines/reference/restParameterWithBindingPattern3.errors.txt @@ -1,10 +1,22 @@ tests/cases/compiler/restParameterWithBindingPattern3.ts(1,16): error TS2322: Type '1' is not assignable to type 'string'. tests/cases/compiler/restParameterWithBindingPattern3.ts(1,23): error TS2322: Type 'true' is not assignable to type 'string'. +tests/cases/compiler/restParameterWithBindingPattern3.ts(3,23): error TS1186: A rest element cannot have an initializer. +tests/cases/compiler/restParameterWithBindingPattern3.ts(7,23): error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'. -==== tests/cases/compiler/restParameterWithBindingPattern3.ts (2 errors) ==== +==== tests/cases/compiler/restParameterWithBindingPattern3.ts (4 errors) ==== function a(...[a = 1, b = true]: string[]) { } ~ !!! error TS2322: Type '1' is not assignable to type 'string'. ~ -!!! error TS2322: Type 'true' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2322: Type 'true' is not assignable to type 'string'. + + function b(...[...foo = []]: string[]) { } + ~ +!!! error TS1186: A rest element cannot have an initializer. + + function c(...{0: a, length, 3: d}: [boolean, string, number]) { } + + function d(...[a, , , d]: [boolean, string, number]) { } + ~ +!!! error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'. \ No newline at end of file diff --git a/tests/baselines/reference/restParameterWithBindingPattern3.js b/tests/baselines/reference/restParameterWithBindingPattern3.js index 86bda118119..da3531633b6 100644 --- a/tests/baselines/reference/restParameterWithBindingPattern3.js +++ b/tests/baselines/reference/restParameterWithBindingPattern3.js @@ -1,5 +1,11 @@ //// [restParameterWithBindingPattern3.ts] -function a(...[a = 1, b = true]: string[]) { } +function a(...[a = 1, b = true]: string[]) { } + +function b(...[...foo = []]: string[]) { } + +function c(...{0: a, length, 3: d}: [boolean, string, number]) { } + +function d(...[a, , , d]: [boolean, string, number]) { } //// [restParameterWithBindingPattern3.js] function a() { @@ -9,3 +15,24 @@ function a() { } var _b = _a[0], a = _b === void 0 ? 1 : _b, _c = _a[1], b = _c === void 0 ? true : _c; } +function b() { + var _a = []; + for (var _i = 0; _i < arguments.length; _i++) { + _a[_i] = arguments[_i]; + } + var _b = _a.slice(0), foo = _b === void 0 ? [] : _b; +} +function c() { + var _a = []; + for (var _i = 0; _i < arguments.length; _i++) { + _a[_i] = arguments[_i]; + } + var a = _a[0], length = _a.length, d = _a[3]; +} +function d() { + var _a = []; + for (var _i = 0; _i < arguments.length; _i++) { + _a[_i] = arguments[_i]; + } + var a = _a[0], d = _a[3]; +} diff --git a/tests/baselines/reference/restParameterWithBindingPattern3.symbols b/tests/baselines/reference/restParameterWithBindingPattern3.symbols index 09ffc4d8adc..2694c7327da 100644 --- a/tests/baselines/reference/restParameterWithBindingPattern3.symbols +++ b/tests/baselines/reference/restParameterWithBindingPattern3.symbols @@ -4,3 +4,18 @@ function a(...[a = 1, b = true]: string[]) { } >a : Symbol(a, Decl(restParameterWithBindingPattern3.ts, 0, 15)) >b : Symbol(b, Decl(restParameterWithBindingPattern3.ts, 0, 21)) +function b(...[...foo = []]: string[]) { } +>b : Symbol(b, Decl(restParameterWithBindingPattern3.ts, 0, 46)) +>foo : Symbol(foo, Decl(restParameterWithBindingPattern3.ts, 2, 15)) + +function c(...{0: a, length, 3: d}: [boolean, string, number]) { } +>c : Symbol(c, Decl(restParameterWithBindingPattern3.ts, 2, 42)) +>a : Symbol(a, Decl(restParameterWithBindingPattern3.ts, 4, 15)) +>length : Symbol(length, Decl(restParameterWithBindingPattern3.ts, 4, 20)) +>d : Symbol(d, Decl(restParameterWithBindingPattern3.ts, 4, 28)) + +function d(...[a, , , d]: [boolean, string, number]) { } +>d : Symbol(d, Decl(restParameterWithBindingPattern3.ts, 4, 66)) +>a : Symbol(a, Decl(restParameterWithBindingPattern3.ts, 6, 15)) +>d : Symbol(d, Decl(restParameterWithBindingPattern3.ts, 6, 21)) + diff --git a/tests/baselines/reference/restParameterWithBindingPattern3.types b/tests/baselines/reference/restParameterWithBindingPattern3.types index 09b2f9143fe..7ab8bdf621a 100644 --- a/tests/baselines/reference/restParameterWithBindingPattern3.types +++ b/tests/baselines/reference/restParameterWithBindingPattern3.types @@ -6,3 +6,21 @@ function a(...[a = 1, b = true]: string[]) { } >b : string >true : true +function b(...[...foo = []]: string[]) { } +>b : (...[...foo]: string[]) => void +>foo : string[] +>[] : undefined[] + +function c(...{0: a, length, 3: d}: [boolean, string, number]) { } +>c : (__0_0: boolean, __0_1: string, __0_2: number) => void +>a : boolean +>length : 3 +>d : string | number | boolean + +function d(...[a, , , d]: [boolean, string, number]) { } +>d : (__0_0: boolean, __0_1: string, __0_2: number) => void +>a : boolean +> : undefined +> : undefined +>d : any + diff --git a/tests/baselines/reference/restParameterWithBindingPattern4.errors.txt b/tests/baselines/reference/restParameterWithBindingPattern4.errors.txt deleted file mode 100644 index 355ab26c6c5..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern4.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/compiler/restParameterWithBindingPattern4.ts(1,23): error TS1186: A rest element cannot have an initializer. - - -==== tests/cases/compiler/restParameterWithBindingPattern4.ts (1 errors) ==== - function a(...[...foo = []]: string[]) { } - ~ -!!! error TS1186: A rest element cannot have an initializer. \ No newline at end of file diff --git a/tests/baselines/reference/restParameterWithBindingPattern4.js b/tests/baselines/reference/restParameterWithBindingPattern4.js deleted file mode 100644 index 348fa5a02bb..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern4.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [restParameterWithBindingPattern4.ts] -function a(...[...foo = []]: string[]) { } - -//// [restParameterWithBindingPattern4.js] -function a() { - var _a = []; - for (var _i = 0; _i < arguments.length; _i++) { - _a[_i] = arguments[_i]; - } - var _b = _a.slice(0), foo = _b === void 0 ? [] : _b; -} diff --git a/tests/baselines/reference/restParameterWithBindingPattern4.symbols b/tests/baselines/reference/restParameterWithBindingPattern4.symbols deleted file mode 100644 index f281620423e..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern4.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/restParameterWithBindingPattern4.ts === -function a(...[...foo = []]: string[]) { } ->a : Symbol(a, Decl(restParameterWithBindingPattern4.ts, 0, 0)) ->foo : Symbol(foo, Decl(restParameterWithBindingPattern4.ts, 0, 15)) - diff --git a/tests/baselines/reference/restParameterWithBindingPattern4.types b/tests/baselines/reference/restParameterWithBindingPattern4.types deleted file mode 100644 index f4af66e9be7..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern4.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/restParameterWithBindingPattern4.ts === -function a(...[...foo = []]: string[]) { } ->a : (...[...foo]: string[]) => void ->foo : string[] ->[] : undefined[] - diff --git a/tests/baselines/reference/restParameterWithBindingPattern5.js b/tests/baselines/reference/restParameterWithBindingPattern5.js deleted file mode 100644 index 4bff99068e0..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern5.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [restParameterWithBindingPattern5.ts] -function a(...{0: a, length, 3: d}: [boolean, string, number]) { } - -//// [restParameterWithBindingPattern5.js] -function a() { - var _a = []; - for (var _i = 0; _i < arguments.length; _i++) { - _a[_i] = arguments[_i]; - } - var a = _a[0], length = _a.length, d = _a[3]; -} diff --git a/tests/baselines/reference/restParameterWithBindingPattern5.symbols b/tests/baselines/reference/restParameterWithBindingPattern5.symbols deleted file mode 100644 index a59b24f64f4..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern5.symbols +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/compiler/restParameterWithBindingPattern5.ts === -function a(...{0: a, length, 3: d}: [boolean, string, number]) { } ->a : Symbol(a, Decl(restParameterWithBindingPattern5.ts, 0, 0)) ->a : Symbol(a, Decl(restParameterWithBindingPattern5.ts, 0, 15)) ->length : Symbol(length, Decl(restParameterWithBindingPattern5.ts, 0, 20)) ->d : Symbol(d, Decl(restParameterWithBindingPattern5.ts, 0, 28)) - diff --git a/tests/baselines/reference/restParameterWithBindingPattern5.types b/tests/baselines/reference/restParameterWithBindingPattern5.types deleted file mode 100644 index 6986660adcd..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern5.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/compiler/restParameterWithBindingPattern5.ts === -function a(...{0: a, length, 3: d}: [boolean, string, number]) { } ->a : (__0_0: boolean, __0_1: string, __0_2: number) => void ->a : boolean ->length : 3 ->d : string | number | boolean - diff --git a/tests/baselines/reference/restParameterWithBindingPattern6.errors.txt b/tests/baselines/reference/restParameterWithBindingPattern6.errors.txt deleted file mode 100644 index 6f590b2bb67..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern6.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/compiler/restParameterWithBindingPattern6.ts(1,23): error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'. - - -==== tests/cases/compiler/restParameterWithBindingPattern6.ts (1 errors) ==== - function a(...[a, , , d]: [boolean, string, number]) { } - ~ -!!! error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'. \ No newline at end of file diff --git a/tests/baselines/reference/restParameterWithBindingPattern6.js b/tests/baselines/reference/restParameterWithBindingPattern6.js deleted file mode 100644 index 02101d0fcdb..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern6.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [restParameterWithBindingPattern6.ts] -function a(...[a, , , d]: [boolean, string, number]) { } - -//// [restParameterWithBindingPattern6.js] -function a() { - var _a = []; - for (var _i = 0; _i < arguments.length; _i++) { - _a[_i] = arguments[_i]; - } - var a = _a[0], d = _a[3]; -} diff --git a/tests/baselines/reference/restParameterWithBindingPattern6.symbols b/tests/baselines/reference/restParameterWithBindingPattern6.symbols deleted file mode 100644 index 2c16d11e33f..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern6.symbols +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/restParameterWithBindingPattern6.ts === -function a(...[a, , , d]: [boolean, string, number]) { } ->a : Symbol(a, Decl(restParameterWithBindingPattern6.ts, 0, 0)) ->a : Symbol(a, Decl(restParameterWithBindingPattern6.ts, 0, 15)) ->d : Symbol(d, Decl(restParameterWithBindingPattern6.ts, 0, 21)) - diff --git a/tests/baselines/reference/restParameterWithBindingPattern6.types b/tests/baselines/reference/restParameterWithBindingPattern6.types deleted file mode 100644 index f0062077458..00000000000 --- a/tests/baselines/reference/restParameterWithBindingPattern6.types +++ /dev/null @@ -1,8 +0,0 @@ -=== tests/cases/compiler/restParameterWithBindingPattern6.ts === -function a(...[a, , , d]: [boolean, string, number]) { } ->a : (__0_0: boolean, __0_1: string, __0_2: number) => void ->a : boolean -> : undefined -> : undefined ->d : any - diff --git a/tests/cases/compiler/restParameterWithBindingPattern3.ts b/tests/cases/compiler/restParameterWithBindingPattern3.ts index 920e00ac2e8..93d0daae538 100644 --- a/tests/cases/compiler/restParameterWithBindingPattern3.ts +++ b/tests/cases/compiler/restParameterWithBindingPattern3.ts @@ -1 +1,7 @@ -function a(...[a = 1, b = true]: string[]) { } \ No newline at end of file +function a(...[a = 1, b = true]: string[]) { } + +function b(...[...foo = []]: string[]) { } + +function c(...{0: a, length, 3: d}: [boolean, string, number]) { } + +function d(...[a, , , d]: [boolean, string, number]) { } \ No newline at end of file diff --git a/tests/cases/compiler/restParameterWithBindingPattern4.ts b/tests/cases/compiler/restParameterWithBindingPattern4.ts deleted file mode 100644 index fee0067bd50..00000000000 --- a/tests/cases/compiler/restParameterWithBindingPattern4.ts +++ /dev/null @@ -1 +0,0 @@ -function a(...[...foo = []]: string[]) { } \ No newline at end of file diff --git a/tests/cases/compiler/restParameterWithBindingPattern5.ts b/tests/cases/compiler/restParameterWithBindingPattern5.ts deleted file mode 100644 index 7707a99b11e..00000000000 --- a/tests/cases/compiler/restParameterWithBindingPattern5.ts +++ /dev/null @@ -1 +0,0 @@ -function a(...{0: a, length, 3: d}: [boolean, string, number]) { } \ No newline at end of file diff --git a/tests/cases/compiler/restParameterWithBindingPattern6.ts b/tests/cases/compiler/restParameterWithBindingPattern6.ts deleted file mode 100644 index ae95ad8c4d9..00000000000 --- a/tests/cases/compiler/restParameterWithBindingPattern6.ts +++ /dev/null @@ -1 +0,0 @@ -function a(...[a, , , d]: [boolean, string, number]) { } \ No newline at end of file