update test

This commit is contained in:
Klaus Meinhardt
2018-08-01 09:59:50 +02:00
parent 3678cf409f
commit 8630396d8a
5 changed files with 296 additions and 324 deletions
@@ -23,15 +23,9 @@ tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(106,5):
Property 'x' is missing in type '{ y: false; }'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(138,6): error TS2322: Type 'string' is not assignable to type 'number'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(138,9): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(158,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'a' must be of type 'number[]', but here has type '[number, number]'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(159,19): error TS2403: Subsequent variable declarations must have the same type. Variable 'a' must be of type 'number[]', but here has type '[number]'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(160,22): error TS2403: Subsequent variable declarations must have the same type. Variable 'a3' must be of type 'any[]', but here has type '[]'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(176,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'a1' must be of type '(string | boolean)[]', but here has type '[string, boolean]'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(177,19): error TS2403: Subsequent variable declarations must have the same type. Variable 'a2' must be of type 'boolean[]', but here has type '[boolean]'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(178,22): error TS2403: Subsequent variable declarations must have the same type. Variable 'a3' must be of type 'any[]', but here has type '[]'.
==== tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts (28 errors) ====
==== tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts (22 errors) ====
function f0() {
var [] = [1, "hello"];
var [x] = [1, "hello"];
@@ -229,49 +223,39 @@ tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(178,22):
var x = ([a, b] = [1, 2]);
}
function f20() {
function f20(v: [number, number, number]) {
var x: number;
var y: number;
var z: number;
var a: number[];
var a3: any[];
var [...a] = [1, 2, 3];
var [x, ...a] = [1, 2, 3];
~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'a' must be of type 'number[]', but here has type '[number, number]'.
var [x, y, ...a] = [1, 2, 3];
~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'a' must be of type 'number[]', but here has type '[number]'.
var [x, y, z, ...a3] = [1, 2, 3];
~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'a3' must be of type 'any[]', but here has type '[]'.
[...a] = [1, 2, 3];
[x, ...a] = [1, 2, 3];
[x, y, ...a] = [1, 2, 3];
[x, y, z, ...a3] = [1, 2, 3];
var a0: [];
var a1: [number];
var a2: [number, number];
var a3: [number, number, number];
var [...a3] = v;
var [x, ...a2] = v;
var [x, y, ...a1] = v;
var [x, y, z, ...a0] = v;
[...a3] = v;
[x, ...a2] = v;
[x, y, ...a1] = v;
[x, y, z, ...a0] = v;
}
function f21() {
function f21(v: [number, string, boolean]) {
var x: number;
var y: string;
var z: boolean;
var a0: (number | string | boolean)[];
var a1: (string | boolean)[];
var a2: boolean[];
var a3: any[];
var [...a0] = [1, "hello", true];
var [x, ...a1] = [1, "hello", true];
~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'a1' must be of type '(string | boolean)[]', but here has type '[string, boolean]'.
var [x, y, ...a2] = [1, "hello", true];
~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'a2' must be of type 'boolean[]', but here has type '[boolean]'.
var [x, y, z, ...a3] = [1, "hello", true];
~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'a3' must be of type 'any[]', but here has type '[]'.
[...a0] = [1, "hello", true];
[x, ...a1] = [1, "hello", true];
[x, y, ...a2] = [1, "hello", true];
[x, y, z, ...a3] = [1, "hello", true];
var a0: [number, string, boolean];
var a1: [string, boolean];
var a2: [boolean];
var a3: [];
var [...a0] = v;
var [x, ...a1] = v;
var [x, y, ...a2] = v;
var [x, y, z, ...a3] = v;
[...a0] = v;
[x, ...a1] = v;
[x, y, ...a2] = v;
[x, y, z, ...a3] = v;
}
@@ -149,38 +149,40 @@ function f19() {
var x = ([a, b] = [1, 2]);
}
function f20() {
function f20(v: [number, number, number]) {
var x: number;
var y: number;
var z: number;
var a: number[];
var a3: any[];
var [...a] = [1, 2, 3];
var [x, ...a] = [1, 2, 3];
var [x, y, ...a] = [1, 2, 3];
var [x, y, z, ...a3] = [1, 2, 3];
[...a] = [1, 2, 3];
[x, ...a] = [1, 2, 3];
[x, y, ...a] = [1, 2, 3];
[x, y, z, ...a3] = [1, 2, 3];
var a0: [];
var a1: [number];
var a2: [number, number];
var a3: [number, number, number];
var [...a3] = v;
var [x, ...a2] = v;
var [x, y, ...a1] = v;
var [x, y, z, ...a0] = v;
[...a3] = v;
[x, ...a2] = v;
[x, y, ...a1] = v;
[x, y, z, ...a0] = v;
}
function f21() {
function f21(v: [number, string, boolean]) {
var x: number;
var y: string;
var z: boolean;
var a0: (number | string | boolean)[];
var a1: (string | boolean)[];
var a2: boolean[];
var a3: any[];
var [...a0] = [1, "hello", true];
var [x, ...a1] = [1, "hello", true];
var [x, y, ...a2] = [1, "hello", true];
var [x, y, z, ...a3] = [1, "hello", true];
[...a0] = [1, "hello", true];
[x, ...a1] = [1, "hello", true];
[x, y, ...a2] = [1, "hello", true];
[x, y, z, ...a3] = [1, "hello", true];
var a0: [number, string, boolean];
var a1: [string, boolean];
var a2: [boolean];
var a3: [];
var [...a0] = v;
var [x, ...a1] = v;
var [x, y, ...a2] = v;
var [x, y, z, ...a3] = v;
[...a0] = v;
[x, ...a1] = v;
[x, y, ...a2] = v;
[x, y, z, ...a3] = v;
}
@@ -320,24 +322,7 @@ function f19() {
_d = [[2, 3]][0], _e = _d === void 0 ? [1, 2] : _d, a = _e[0], b = _e[1];
var x = (_f = [1, 2], a = _f[0], b = _f[1], _f);
}
function f20() {
var _a, _b, _c;
var x;
var y;
var z;
var a;
var a3;
var a = [1, 2, 3].slice(0);
var _d = [1, 2, 3], x = _d[0], a = _d.slice(1);
var _e = [1, 2, 3], x = _e[0], y = _e[1], a = _e.slice(2);
var _f = [1, 2, 3], x = _f[0], y = _f[1], z = _f[2], a3 = _f.slice(3);
a = [1, 2, 3].slice(0);
_a = [1, 2, 3], x = _a[0], a = _a.slice(1);
_b = [1, 2, 3], x = _b[0], y = _b[1], a = _b.slice(2);
_c = [1, 2, 3], x = _c[0], y = _c[1], z = _c[2], a3 = _c.slice(3);
}
function f21() {
var _a, _b, _c;
function f20(v) {
var x;
var y;
var z;
@@ -345,12 +330,29 @@ function f21() {
var a1;
var a2;
var a3;
var a0 = [1, "hello", true].slice(0);
var _d = [1, "hello", true], x = _d[0], a1 = _d.slice(1);
var _e = [1, "hello", true], x = _e[0], y = _e[1], a2 = _e.slice(2);
var _f = [1, "hello", true], x = _f[0], y = _f[1], z = _f[2], a3 = _f.slice(3);
a0 = [1, "hello", true].slice(0);
_a = [1, "hello", true], x = _a[0], a1 = _a.slice(1);
_b = [1, "hello", true], x = _b[0], y = _b[1], a2 = _b.slice(2);
_c = [1, "hello", true], x = _c[0], y = _c[1], z = _c[2], a3 = _c.slice(3);
var a3 = v.slice(0);
var x = v[0], a2 = v.slice(1);
var x = v[0], y = v[1], a1 = v.slice(2);
var x = v[0], y = v[1], z = v[2], a0 = v.slice(3);
a3 = v.slice(0);
x = v[0], a2 = v.slice(1);
x = v[0], y = v[1], a1 = v.slice(2);
x = v[0], y = v[1], z = v[2], a0 = v.slice(3);
}
function f21(v) {
var x;
var y;
var z;
var a0;
var a1;
var a2;
var a3;
var a0 = v.slice(0);
var x = v[0], a1 = v.slice(1);
var x = v[0], y = v[1], a2 = v.slice(2);
var x = v[0], y = v[1], z = v[2], a3 = v.slice(3);
a0 = v.slice(0);
x = v[0], a1 = v.slice(1);
x = v[0], y = v[1], a2 = v.slice(2);
x = v[0], y = v[1], z = v[2], a3 = v.slice(3);
}
@@ -471,119 +471,143 @@ function f19() {
>b : Symbol(b, Decl(declarationsAndAssignments.ts, 142, 10))
}
function f20() {
function f20(v: [number, number, number]) {
>f20 : Symbol(f20, Decl(declarationsAndAssignments.ts, 148, 1))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
var x: number;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
var y: number;
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 158, 11), Decl(declarationsAndAssignments.ts, 159, 11))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 160, 11), Decl(declarationsAndAssignments.ts, 161, 11))
var z: number;
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 153, 7), Decl(declarationsAndAssignments.ts, 159, 14))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 153, 7), Decl(declarationsAndAssignments.ts, 161, 14))
var a: number[];
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
var a0: [];
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 161, 17))
var a3: any[];
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 155, 7), Decl(declarationsAndAssignments.ts, 159, 17))
var a1: [number];
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 155, 7), Decl(declarationsAndAssignments.ts, 160, 14))
var [...a] = [1, 2, 3];
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
var a2: [number, number];
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 156, 7), Decl(declarationsAndAssignments.ts, 159, 11))
var [x, ...a] = [1, 2, 3];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
var a3: [number, number, number];
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 157, 7), Decl(declarationsAndAssignments.ts, 158, 9))
var [x, y, ...a] = [1, 2, 3];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 158, 11), Decl(declarationsAndAssignments.ts, 159, 11))
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
var [...a3] = v;
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 157, 7), Decl(declarationsAndAssignments.ts, 158, 9))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
var [x, y, z, ...a3] = [1, 2, 3];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 158, 11), Decl(declarationsAndAssignments.ts, 159, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 153, 7), Decl(declarationsAndAssignments.ts, 159, 14))
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 155, 7), Decl(declarationsAndAssignments.ts, 159, 17))
var [x, ...a2] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 156, 7), Decl(declarationsAndAssignments.ts, 159, 11))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
[...a] = [1, 2, 3];
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
var [x, y, ...a1] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 160, 11), Decl(declarationsAndAssignments.ts, 161, 11))
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 155, 7), Decl(declarationsAndAssignments.ts, 160, 14))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
[x, ...a] = [1, 2, 3];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
var [x, y, z, ...a0] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 160, 11), Decl(declarationsAndAssignments.ts, 161, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 153, 7), Decl(declarationsAndAssignments.ts, 161, 14))
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 161, 17))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
[x, y, ...a] = [1, 2, 3];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 158, 11), Decl(declarationsAndAssignments.ts, 159, 11))
>a : Symbol(a, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 156, 9), Decl(declarationsAndAssignments.ts, 157, 11), Decl(declarationsAndAssignments.ts, 158, 14))
[...a3] = v;
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 157, 7), Decl(declarationsAndAssignments.ts, 158, 9))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
[x, y, z, ...a3] = [1, 2, 3];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 157, 9), Decl(declarationsAndAssignments.ts, 158, 9), Decl(declarationsAndAssignments.ts, 159, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 158, 11), Decl(declarationsAndAssignments.ts, 159, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 153, 7), Decl(declarationsAndAssignments.ts, 159, 14))
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 155, 7), Decl(declarationsAndAssignments.ts, 159, 17))
[x, ...a2] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 156, 7), Decl(declarationsAndAssignments.ts, 159, 11))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
[x, y, ...a1] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 160, 11), Decl(declarationsAndAssignments.ts, 161, 11))
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 155, 7), Decl(declarationsAndAssignments.ts, 160, 14))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
[x, y, z, ...a0] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 151, 7), Decl(declarationsAndAssignments.ts, 159, 9), Decl(declarationsAndAssignments.ts, 160, 9), Decl(declarationsAndAssignments.ts, 161, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 152, 7), Decl(declarationsAndAssignments.ts, 160, 11), Decl(declarationsAndAssignments.ts, 161, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 153, 7), Decl(declarationsAndAssignments.ts, 161, 14))
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 154, 7), Decl(declarationsAndAssignments.ts, 161, 17))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 150, 13))
}
function f21() {
>f21 : Symbol(f21, Decl(declarationsAndAssignments.ts, 164, 1))
function f21(v: [number, string, boolean]) {
>f21 : Symbol(f21, Decl(declarationsAndAssignments.ts, 166, 1))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
var x: number;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
var y: string;
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 168, 7), Decl(declarationsAndAssignments.ts, 176, 11), Decl(declarationsAndAssignments.ts, 177, 11))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 178, 11), Decl(declarationsAndAssignments.ts, 179, 11))
var z: boolean;
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 14))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 171, 7), Decl(declarationsAndAssignments.ts, 179, 14))
var a0: (number | string | boolean)[];
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 174, 9))
var a0: [number, string, boolean];
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 172, 7), Decl(declarationsAndAssignments.ts, 176, 9))
var a1: (string | boolean)[];
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 171, 7), Decl(declarationsAndAssignments.ts, 175, 11))
var a1: [string, boolean];
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 173, 7), Decl(declarationsAndAssignments.ts, 177, 11))
var a2: boolean[];
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 172, 7), Decl(declarationsAndAssignments.ts, 176, 14))
var a2: [boolean];
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 174, 7), Decl(declarationsAndAssignments.ts, 178, 14))
var a3: any[];
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 173, 7), Decl(declarationsAndAssignments.ts, 177, 17))
var a3: [];
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 175, 7), Decl(declarationsAndAssignments.ts, 179, 17))
var [...a0] = [1, "hello", true];
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 174, 9))
var [...a0] = v;
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 172, 7), Decl(declarationsAndAssignments.ts, 176, 9))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
var [x, ...a1] = [1, "hello", true];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 171, 7), Decl(declarationsAndAssignments.ts, 175, 11))
var [x, ...a1] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 173, 7), Decl(declarationsAndAssignments.ts, 177, 11))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
var [x, y, ...a2] = [1, "hello", true];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 168, 7), Decl(declarationsAndAssignments.ts, 176, 11), Decl(declarationsAndAssignments.ts, 177, 11))
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 172, 7), Decl(declarationsAndAssignments.ts, 176, 14))
var [x, y, ...a2] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 178, 11), Decl(declarationsAndAssignments.ts, 179, 11))
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 174, 7), Decl(declarationsAndAssignments.ts, 178, 14))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
var [x, y, z, ...a3] = [1, "hello", true];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 168, 7), Decl(declarationsAndAssignments.ts, 176, 11), Decl(declarationsAndAssignments.ts, 177, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 14))
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 173, 7), Decl(declarationsAndAssignments.ts, 177, 17))
var [x, y, z, ...a3] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 178, 11), Decl(declarationsAndAssignments.ts, 179, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 171, 7), Decl(declarationsAndAssignments.ts, 179, 14))
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 175, 7), Decl(declarationsAndAssignments.ts, 179, 17))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
[...a0] = [1, "hello", true];
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 174, 9))
[...a0] = v;
>a0 : Symbol(a0, Decl(declarationsAndAssignments.ts, 172, 7), Decl(declarationsAndAssignments.ts, 176, 9))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
[x, ...a1] = [1, "hello", true];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 171, 7), Decl(declarationsAndAssignments.ts, 175, 11))
[x, ...a1] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
>a1 : Symbol(a1, Decl(declarationsAndAssignments.ts, 173, 7), Decl(declarationsAndAssignments.ts, 177, 11))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
[x, y, ...a2] = [1, "hello", true];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 168, 7), Decl(declarationsAndAssignments.ts, 176, 11), Decl(declarationsAndAssignments.ts, 177, 11))
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 172, 7), Decl(declarationsAndAssignments.ts, 176, 14))
[x, y, ...a2] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 178, 11), Decl(declarationsAndAssignments.ts, 179, 11))
>a2 : Symbol(a2, Decl(declarationsAndAssignments.ts, 174, 7), Decl(declarationsAndAssignments.ts, 178, 14))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
[x, y, z, ...a3] = [1, "hello", true];
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 167, 7), Decl(declarationsAndAssignments.ts, 175, 9), Decl(declarationsAndAssignments.ts, 176, 9), Decl(declarationsAndAssignments.ts, 177, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 168, 7), Decl(declarationsAndAssignments.ts, 176, 11), Decl(declarationsAndAssignments.ts, 177, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 14))
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 173, 7), Decl(declarationsAndAssignments.ts, 177, 17))
[x, y, z, ...a3] = v;
>x : Symbol(x, Decl(declarationsAndAssignments.ts, 169, 7), Decl(declarationsAndAssignments.ts, 177, 9), Decl(declarationsAndAssignments.ts, 178, 9), Decl(declarationsAndAssignments.ts, 179, 9))
>y : Symbol(y, Decl(declarationsAndAssignments.ts, 170, 7), Decl(declarationsAndAssignments.ts, 178, 11), Decl(declarationsAndAssignments.ts, 179, 11))
>z : Symbol(z, Decl(declarationsAndAssignments.ts, 171, 7), Decl(declarationsAndAssignments.ts, 179, 14))
>a3 : Symbol(a3, Decl(declarationsAndAssignments.ts, 175, 7), Decl(declarationsAndAssignments.ts, 179, 17))
>v : Symbol(v, Decl(declarationsAndAssignments.ts, 168, 13))
}
@@ -678,8 +678,9 @@ function f19() {
>2 : 2
}
function f20() {
>f20 : () => void
function f20(v: [number, number, number]) {
>f20 : (v: [number, number, number]) => void
>v : [number, number, number]
var x: number;
>x : number
@@ -690,95 +691,78 @@ function f20() {
var z: number;
>z : number
var a: number[];
>a : number[]
var a0: [];
>a0 : []
var a3: any[];
>a3 : any[]
var a1: [number];
>a1 : [number]
var [...a] = [1, 2, 3];
>a : number[]
>[1, 2, 3] : number[]
>1 : 1
>2 : 2
>3 : 3
var a2: [number, number];
>a2 : [number, number]
var [x, ...a] = [1, 2, 3];
var a3: [number, number, number];
>a3 : [number, number, number]
var [...a3] = v;
>a3 : [number, number, number]
>v : [number, number, number]
var [x, ...a2] = v;
>x : number
>a : number[]
>[1, 2, 3] : [number, number, number]
>1 : 1
>2 : 2
>3 : 3
>a2 : [number, number]
>v : [number, number, number]
var [x, y, ...a] = [1, 2, 3];
var [x, y, ...a1] = v;
>x : number
>y : number
>a : number[]
>[1, 2, 3] : [number, number, number]
>1 : 1
>2 : 2
>3 : 3
>a1 : [number]
>v : [number, number, number]
var [x, y, z, ...a3] = [1, 2, 3];
var [x, y, z, ...a0] = v;
>x : number
>y : number
>z : number
>a3 : any[]
>[1, 2, 3] : [number, number, number]
>1 : 1
>2 : 2
>3 : 3
>a0 : []
>v : [number, number, number]
[...a] = [1, 2, 3];
>[...a] = [1, 2, 3] : number[]
>[...a] : number[]
>...a : number
>a : number[]
>[1, 2, 3] : number[]
>1 : 1
>2 : 2
>3 : 3
[...a3] = v;
>[...a3] = v : [number, number, number]
>[...a3] : number[]
>...a3 : number
>a3 : [number, number, number]
>v : [number, number, number]
[x, ...a] = [1, 2, 3];
>[x, ...a] = [1, 2, 3] : [number, number, number]
>[x, ...a] : [number, ...number[]]
[x, ...a2] = v;
>[x, ...a2] = v : [number, number, number]
>[x, ...a2] : [number, ...number[]]
>x : number
>...a : number
>a : number[]
>[1, 2, 3] : [number, number, number]
>1 : 1
>2 : 2
>3 : 3
>...a2 : number
>a2 : [number, number]
>v : [number, number, number]
[x, y, ...a] = [1, 2, 3];
>[x, y, ...a] = [1, 2, 3] : [number, number, number]
>[x, y, ...a] : [number, number, ...number[]]
[x, y, ...a1] = v;
>[x, y, ...a1] = v : [number, number, number]
>[x, y, ...a1] : [number, number, ...number[]]
>x : number
>y : number
>...a : number
>a : number[]
>[1, 2, 3] : [number, number, number]
>1 : 1
>2 : 2
>3 : 3
>...a1 : number
>a1 : [number]
>v : [number, number, number]
[x, y, z, ...a3] = [1, 2, 3];
>[x, y, z, ...a3] = [1, 2, 3] : [number, number, number]
>[x, y, z, ...a3] : [number, number, number, ...any[]]
[x, y, z, ...a0] = v;
>[x, y, z, ...a0] = v : [number, number, number]
>[x, y, z, ...a0] : [number, number, number, ...never[]]
>x : number
>y : number
>z : number
>...a3 : any
>a3 : any[]
>[1, 2, 3] : [number, number, number]
>1 : 1
>2 : 2
>3 : 3
>...a0 : never
>a0 : []
>v : [number, number, number]
}
function f21() {
>f21 : () => void
function f21(v: [number, string, boolean]) {
>f21 : (v: [number, string, boolean]) => void
>v : [number, string, boolean]
var x: number;
>x : number
@@ -789,96 +773,72 @@ function f21() {
var z: boolean;
>z : boolean
var a0: (number | string | boolean)[];
>a0 : (string | number | boolean)[]
var a0: [number, string, boolean];
>a0 : [number, string, boolean]
var a1: (string | boolean)[];
>a1 : (string | boolean)[]
var a1: [string, boolean];
>a1 : [string, boolean]
var a2: boolean[];
>a2 : boolean[]
var a2: [boolean];
>a2 : [boolean]
var a3: any[];
>a3 : any[]
var a3: [];
>a3 : []
var [...a0] = [1, "hello", true];
>a0 : (string | number | boolean)[]
>[1, "hello", true] : (string | number | boolean)[]
>1 : 1
>"hello" : "hello"
>true : true
var [...a0] = v;
>a0 : [number, string, boolean]
>v : [number, string, boolean]
var [x, ...a1] = [1, "hello", true];
var [x, ...a1] = v;
>x : number
>a1 : (string | boolean)[]
>[1, "hello", true] : [number, string, boolean]
>1 : 1
>"hello" : "hello"
>true : true
>a1 : [string, boolean]
>v : [number, string, boolean]
var [x, y, ...a2] = [1, "hello", true];
var [x, y, ...a2] = v;
>x : number
>y : string
>a2 : boolean[]
>[1, "hello", true] : [number, string, boolean]
>1 : 1
>"hello" : "hello"
>true : true
>a2 : [boolean]
>v : [number, string, boolean]
var [x, y, z, ...a3] = [1, "hello", true];
var [x, y, z, ...a3] = v;
>x : number
>y : string
>z : boolean
>a3 : any[]
>[1, "hello", true] : [number, string, boolean]
>1 : 1
>"hello" : "hello"
>true : true
>a3 : []
>v : [number, string, boolean]
[...a0] = [1, "hello", true];
>[...a0] = [1, "hello", true] : (string | number | true)[]
[...a0] = v;
>[...a0] = v : [number, string, boolean]
>[...a0] : (string | number | boolean)[]
>...a0 : string | number | boolean
>a0 : (string | number | boolean)[]
>[1, "hello", true] : (string | number | true)[]
>1 : 1
>"hello" : "hello"
>true : true
>a0 : [number, string, boolean]
>v : [number, string, boolean]
[x, ...a1] = [1, "hello", true];
>[x, ...a1] = [1, "hello", true] : [number, string, true]
[x, ...a1] = v;
>[x, ...a1] = v : [number, string, boolean]
>[x, ...a1] : [number, ...(string | boolean)[]]
>x : number
>...a1 : string | boolean
>a1 : (string | boolean)[]
>[1, "hello", true] : [number, string, true]
>1 : 1
>"hello" : "hello"
>true : true
>a1 : [string, boolean]
>v : [number, string, boolean]
[x, y, ...a2] = [1, "hello", true];
>[x, y, ...a2] = [1, "hello", true] : [number, string, true]
[x, y, ...a2] = v;
>[x, y, ...a2] = v : [number, string, boolean]
>[x, y, ...a2] : [number, string, ...boolean[]]
>x : number
>y : string
>...a2 : boolean
>a2 : boolean[]
>[1, "hello", true] : [number, string, true]
>1 : 1
>"hello" : "hello"
>true : true
>a2 : [boolean]
>v : [number, string, boolean]
[x, y, z, ...a3] = [1, "hello", true];
>[x, y, z, ...a3] = [1, "hello", true] : [number, string, true]
>[x, y, z, ...a3] : [number, string, boolean, ...any[]]
[x, y, z, ...a3] = v;
>[x, y, z, ...a3] = v : [number, string, boolean]
>[x, y, z, ...a3] : [number, string, boolean, ...never[]]
>x : number
>y : string
>z : boolean
>...a3 : any
>a3 : any[]
>[1, "hello", true] : [number, string, true]
>1 : 1
>"hello" : "hello"
>true : true
>...a3 : never
>a3 : []
>v : [number, string, boolean]
}
@@ -148,36 +148,38 @@ function f19() {
var x = ([a, b] = [1, 2]);
}
function f20() {
function f20(v: [number, number, number]) {
var x: number;
var y: number;
var z: number;
var a: number[];
var a3: any[];
var [...a] = [1, 2, 3];
var [x, ...a] = [1, 2, 3];
var [x, y, ...a] = [1, 2, 3];
var [x, y, z, ...a3] = [1, 2, 3];
[...a] = [1, 2, 3];
[x, ...a] = [1, 2, 3];
[x, y, ...a] = [1, 2, 3];
[x, y, z, ...a3] = [1, 2, 3];
var a0: [];
var a1: [number];
var a2: [number, number];
var a3: [number, number, number];
var [...a3] = v;
var [x, ...a2] = v;
var [x, y, ...a1] = v;
var [x, y, z, ...a0] = v;
[...a3] = v;
[x, ...a2] = v;
[x, y, ...a1] = v;
[x, y, z, ...a0] = v;
}
function f21() {
function f21(v: [number, string, boolean]) {
var x: number;
var y: string;
var z: boolean;
var a0: (number | string | boolean)[];
var a1: (string | boolean)[];
var a2: boolean[];
var a3: any[];
var [...a0] = [1, "hello", true];
var [x, ...a1] = [1, "hello", true];
var [x, y, ...a2] = [1, "hello", true];
var [x, y, z, ...a3] = [1, "hello", true];
[...a0] = [1, "hello", true];
[x, ...a1] = [1, "hello", true];
[x, y, ...a2] = [1, "hello", true];
[x, y, z, ...a3] = [1, "hello", true];
var a0: [number, string, boolean];
var a1: [string, boolean];
var a2: [boolean];
var a3: [];
var [...a0] = v;
var [x, ...a1] = v;
var [x, y, ...a2] = v;
var [x, y, z, ...a3] = v;
[...a0] = v;
[x, ...a1] = v;
[x, y, ...a2] = v;
[x, y, z, ...a3] = v;
}