Test case for assignment expression with Array destructuring pattern

This commit is contained in:
Sheetal Nandi
2015-12-08 15:18:24 -08:00
parent 1da5b15c1a
commit 6baa36b546
6 changed files with 1412 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts]
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
var robotA: Robot = [1, "mower", "mowing"];
var robotB: Robot = [2, "trimmer", "trimming"];
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let nameA: string, numberB: number, nameB: string, skillB: string;
let robotAInfo: (number | string)[];
let multiSkillB: [string, string], nameMB: string, primarySkillB: string, secondarySkillB: string;
let multiRobotAInfo: (string | [string, string])[];
[, nameA] = robotA;
[, nameB] = getRobotB();
[, nameB] = [2, "trimmer", "trimming"];
[, multiSkillB] = multiRobotB;
[, multiSkillB] = getMultiRobotB();
[, multiSkillB] = ["roomba", ["vaccum", "mopping"]];
[numberB] = robotB;
[numberB] = getRobotB();
[numberB] = [2, "trimmer", "trimming"];
[nameMB] = multiRobotB;
[nameMB] = getMultiRobotB();
[nameMB] = ["trimmer", ["trimming", "edging"]];
[numberB, nameB, skillB] = robotB;
[numberB, nameB, skillB] = getRobotB();
[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
[numberB, ...robotAInfo] = robotB;
[numberB, ...robotAInfo] = getRobotB();
[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
[...multiRobotAInfo] = multiRobotA;
[...multiRobotAInfo] = getMultiRobotB();
[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]];
if (nameA == nameB) {
console.log(skillB);
}
function getRobotB() {
return robotB;
}
function getMultiRobotB() {
return multiRobotB;
}
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js]
var robotA = [1, "mower", "mowing"];
var robotB = [2, "trimmer", "trimming"];
var multiRobotA = ["mower", ["mowing", ""]];
var multiRobotB = ["trimmer", ["trimming", "edging"]];
var nameA, numberB, nameB, skillB;
var robotAInfo;
var multiSkillB, nameMB, primarySkillB, secondarySkillB;
var multiRobotAInfo;
nameA = robotA[1];
_a = getRobotB(), nameB = _a[1];
_b = [2, "trimmer", "trimming"], nameB = _b[1];
multiSkillB = multiRobotB[1];
_c = getMultiRobotB(), multiSkillB = _c[1];
_d = ["roomba", ["vaccum", "mopping"]], multiSkillB = _d[1];
numberB = robotB[0];
numberB = getRobotB()[0];
numberB = [2, "trimmer", "trimming"][0];
nameMB = multiRobotB[0];
nameMB = getMultiRobotB()[0];
nameMB = ["trimmer", ["trimming", "edging"]][0];
numberB = robotB[0], nameB = robotB[1], skillB = robotB[2];
_e = getRobotB(), numberB = _e[0], nameB = _e[1], skillB = _e[2];
_f = [2, "trimmer", "trimming"], numberB = _f[0], nameB = _f[1], skillB = _f[2];
nameMB = multiRobotB[0], _g = multiRobotB[1], primarySkillB = _g[0], secondarySkillB = _g[1];
_h = getMultiRobotB(), nameMB = _h[0], _j = _h[1], primarySkillB = _j[0], secondarySkillB = _j[1];
_k = ["trimmer", ["trimming", "edging"]], nameMB = _k[0], _l = _k[1], primarySkillB = _l[0], secondarySkillB = _l[1];
numberB = robotB[0], robotAInfo = robotB.slice(1);
_m = getRobotB(), numberB = _m[0], robotAInfo = _m.slice(1);
_o = [2, "trimmer", "trimming"], numberB = _o[0], robotAInfo = _o.slice(1);
multiRobotAInfo = multiRobotA.slice(0);
multiRobotAInfo = getMultiRobotB().slice(0);
multiRobotAInfo = ["trimmer", ["trimming", "edging"]].slice(0);
if (nameA == nameB) {
console.log(skillB);
}
function getRobotB() {
return robotB;
}
function getMultiRobotB() {
return multiRobotB;
}
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js.map

View File

@@ -0,0 +1,2 @@
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js.map]
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts"],"names":[],"mappings":"AAMA,IAAI,MAAM,GAAU,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,IAAI,MAAM,GAAU,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC/C,IAAI,WAAW,GAAsB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,WAAW,GAAsB,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEzE,IAAI,KAAa,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,CAAC;AAClE,IAAI,UAA+B,CAAC;AAEpC,IAAI,WAA6B,EAAE,MAAc,EAAE,aAAqB,EAAE,eAAuB,CAAC;AAClG,IAAI,eAA8C,CAAC;AAEnD,iBAAkB,CAAC;AACP,gBAAW,eAAA,CAAC;AACZ,+BAA0B,eAAA,CAAC;AACvC,4BAA6B,CAAC;AACZ,qBAAgB,qBAAA,CAAC;AACjB,sCAAiC,qBAAA,CAAC;AAEpD,mBAAkB,CAAC;AACnB,wBAAuB,CAAC;AACxB,uCAAsC,CAAC;AACvC,uBAAsB,CAAC;AACvB,4BAA2B,CAAC;AAC5B,+CAA8C,CAAC;AAE/C,0DAAiC,CAAC;AACP,gBAAW,gDAAA,CAAC;AACZ,+BAA0B,gDAAA,CAAC;AACtD,4FAAwD,CAAC;AACZ,qBAAgB,4EAAA,CAAC;AACjB,wCAAmC,4EAAA,CAAC;AAEjF,iDAAiC,CAAC;AACP,gBAAW,2CAAA,CAAC;AACZ,+BAAiC,2CAAA,CAAC;AAC7D,sCAAkC,CAAC;AACnC,2CAAuC,CAAC;AACxC,8DAA0D,CAAC;AAE3D,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;IACI,MAAM,CAAC,MAAM,CAAC;AAClB,CAAC;AAED;IACI,MAAM,CAAC,WAAW,CAAC;AACvB,CAAC"}

View File

@@ -0,0 +1,771 @@
===================================================================
JsFile: sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js
mapUrl: sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js.map
sourceRoot:
sources: sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts
===================================================================
-------------------------------------------------------------------
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js
sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts
-------------------------------------------------------------------
>>>var robotA = [1, "mower", "mowing"];
1 >
2 >^^^^
3 > ^^^^^^
4 > ^^^
5 > ^
6 > ^
7 > ^^
8 > ^^^^^^^
9 > ^^
10> ^^^^^^^^
11> ^
12> ^
13> ^^^^^->
1 >declare var console: {
> log(msg: any): void;
>}
>type Robot = [number, string, string];
>type MultiSkilledRobot = [string, [string, string]];
>
>
2 >var
3 > robotA
4 > : Robot =
5 > [
6 > 1
7 > ,
8 > "mower"
9 > ,
10> "mowing"
11> ]
12> ;
1 >Emitted(1, 1) Source(7, 1) + SourceIndex(0)
2 >Emitted(1, 5) Source(7, 5) + SourceIndex(0)
3 >Emitted(1, 11) Source(7, 11) + SourceIndex(0)
4 >Emitted(1, 14) Source(7, 21) + SourceIndex(0)
5 >Emitted(1, 15) Source(7, 22) + SourceIndex(0)
6 >Emitted(1, 16) Source(7, 23) + SourceIndex(0)
7 >Emitted(1, 18) Source(7, 25) + SourceIndex(0)
8 >Emitted(1, 25) Source(7, 32) + SourceIndex(0)
9 >Emitted(1, 27) Source(7, 34) + SourceIndex(0)
10>Emitted(1, 35) Source(7, 42) + SourceIndex(0)
11>Emitted(1, 36) Source(7, 43) + SourceIndex(0)
12>Emitted(1, 37) Source(7, 44) + SourceIndex(0)
---
>>>var robotB = [2, "trimmer", "trimming"];
1->
2 >^^^^
3 > ^^^^^^
4 > ^^^
5 > ^
6 > ^
7 > ^^
8 > ^^^^^^^^^
9 > ^^
10> ^^^^^^^^^^
11> ^
12> ^
13> ^^^^^->
1->
>
2 >var
3 > robotB
4 > : Robot =
5 > [
6 > 2
7 > ,
8 > "trimmer"
9 > ,
10> "trimming"
11> ]
12> ;
1->Emitted(2, 1) Source(8, 1) + SourceIndex(0)
2 >Emitted(2, 5) Source(8, 5) + SourceIndex(0)
3 >Emitted(2, 11) Source(8, 11) + SourceIndex(0)
4 >Emitted(2, 14) Source(8, 21) + SourceIndex(0)
5 >Emitted(2, 15) Source(8, 22) + SourceIndex(0)
6 >Emitted(2, 16) Source(8, 23) + SourceIndex(0)
7 >Emitted(2, 18) Source(8, 25) + SourceIndex(0)
8 >Emitted(2, 27) Source(8, 34) + SourceIndex(0)
9 >Emitted(2, 29) Source(8, 36) + SourceIndex(0)
10>Emitted(2, 39) Source(8, 46) + SourceIndex(0)
11>Emitted(2, 40) Source(8, 47) + SourceIndex(0)
12>Emitted(2, 41) Source(8, 48) + SourceIndex(0)
---
>>>var multiRobotA = ["mower", ["mowing", ""]];
1->
2 >^^^^
3 > ^^^^^^^^^^^
4 > ^^^
5 > ^
6 > ^^^^^^^
7 > ^^
8 > ^
9 > ^^^^^^^^
10> ^^
11> ^^
12> ^
13> ^
14> ^
15> ^^^^^^^^^^^->
1->
>
2 >var
3 > multiRobotA
4 > : MultiSkilledRobot =
5 > [
6 > "mower"
7 > ,
8 > [
9 > "mowing"
10> ,
11> ""
12> ]
13> ]
14> ;
1->Emitted(3, 1) Source(9, 1) + SourceIndex(0)
2 >Emitted(3, 5) Source(9, 5) + SourceIndex(0)
3 >Emitted(3, 16) Source(9, 16) + SourceIndex(0)
4 >Emitted(3, 19) Source(9, 38) + SourceIndex(0)
5 >Emitted(3, 20) Source(9, 39) + SourceIndex(0)
6 >Emitted(3, 27) Source(9, 46) + SourceIndex(0)
7 >Emitted(3, 29) Source(9, 48) + SourceIndex(0)
8 >Emitted(3, 30) Source(9, 49) + SourceIndex(0)
9 >Emitted(3, 38) Source(9, 57) + SourceIndex(0)
10>Emitted(3, 40) Source(9, 59) + SourceIndex(0)
11>Emitted(3, 42) Source(9, 61) + SourceIndex(0)
12>Emitted(3, 43) Source(9, 62) + SourceIndex(0)
13>Emitted(3, 44) Source(9, 63) + SourceIndex(0)
14>Emitted(3, 45) Source(9, 64) + SourceIndex(0)
---
>>>var multiRobotB = ["trimmer", ["trimming", "edging"]];
1->
2 >^^^^
3 > ^^^^^^^^^^^
4 > ^^^
5 > ^
6 > ^^^^^^^^^
7 > ^^
8 > ^
9 > ^^^^^^^^^^
10> ^^
11> ^^^^^^^^
12> ^
13> ^
14> ^
1->
>
2 >var
3 > multiRobotB
4 > : MultiSkilledRobot =
5 > [
6 > "trimmer"
7 > ,
8 > [
9 > "trimming"
10> ,
11> "edging"
12> ]
13> ]
14> ;
1->Emitted(4, 1) Source(10, 1) + SourceIndex(0)
2 >Emitted(4, 5) Source(10, 5) + SourceIndex(0)
3 >Emitted(4, 16) Source(10, 16) + SourceIndex(0)
4 >Emitted(4, 19) Source(10, 38) + SourceIndex(0)
5 >Emitted(4, 20) Source(10, 39) + SourceIndex(0)
6 >Emitted(4, 29) Source(10, 48) + SourceIndex(0)
7 >Emitted(4, 31) Source(10, 50) + SourceIndex(0)
8 >Emitted(4, 32) Source(10, 51) + SourceIndex(0)
9 >Emitted(4, 42) Source(10, 61) + SourceIndex(0)
10>Emitted(4, 44) Source(10, 63) + SourceIndex(0)
11>Emitted(4, 52) Source(10, 71) + SourceIndex(0)
12>Emitted(4, 53) Source(10, 72) + SourceIndex(0)
13>Emitted(4, 54) Source(10, 73) + SourceIndex(0)
14>Emitted(4, 55) Source(10, 74) + SourceIndex(0)
---
>>>var nameA, numberB, nameB, skillB;
1 >
2 >^^^^
3 > ^^^^^
4 > ^^
5 > ^^^^^^^
6 > ^^
7 > ^^^^^
8 > ^^
9 > ^^^^^^
10> ^
1 >
>
>
2 >let
3 > nameA: string
4 > ,
5 > numberB: number
6 > ,
7 > nameB: string
8 > ,
9 > skillB: string
10> ;
1 >Emitted(5, 1) Source(12, 1) + SourceIndex(0)
2 >Emitted(5, 5) Source(12, 5) + SourceIndex(0)
3 >Emitted(5, 10) Source(12, 18) + SourceIndex(0)
4 >Emitted(5, 12) Source(12, 20) + SourceIndex(0)
5 >Emitted(5, 19) Source(12, 35) + SourceIndex(0)
6 >Emitted(5, 21) Source(12, 37) + SourceIndex(0)
7 >Emitted(5, 26) Source(12, 50) + SourceIndex(0)
8 >Emitted(5, 28) Source(12, 52) + SourceIndex(0)
9 >Emitted(5, 34) Source(12, 66) + SourceIndex(0)
10>Emitted(5, 35) Source(12, 67) + SourceIndex(0)
---
>>>var robotAInfo;
1 >
2 >^^^^
3 > ^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >let
3 > robotAInfo: (number | string)[]
4 > ;
1 >Emitted(6, 1) Source(13, 1) + SourceIndex(0)
2 >Emitted(6, 5) Source(13, 5) + SourceIndex(0)
3 >Emitted(6, 15) Source(13, 36) + SourceIndex(0)
4 >Emitted(6, 16) Source(13, 37) + SourceIndex(0)
---
>>>var multiSkillB, nameMB, primarySkillB, secondarySkillB;
1->
2 >^^^^
3 > ^^^^^^^^^^^
4 > ^^
5 > ^^^^^^
6 > ^^
7 > ^^^^^^^^^^^^^
8 > ^^
9 > ^^^^^^^^^^^^^^^
10> ^
1->
>
>
2 >let
3 > multiSkillB: [string, string]
4 > ,
5 > nameMB: string
6 > ,
7 > primarySkillB: string
8 > ,
9 > secondarySkillB: string
10> ;
1->Emitted(7, 1) Source(15, 1) + SourceIndex(0)
2 >Emitted(7, 5) Source(15, 5) + SourceIndex(0)
3 >Emitted(7, 16) Source(15, 34) + SourceIndex(0)
4 >Emitted(7, 18) Source(15, 36) + SourceIndex(0)
5 >Emitted(7, 24) Source(15, 50) + SourceIndex(0)
6 >Emitted(7, 26) Source(15, 52) + SourceIndex(0)
7 >Emitted(7, 39) Source(15, 73) + SourceIndex(0)
8 >Emitted(7, 41) Source(15, 75) + SourceIndex(0)
9 >Emitted(7, 56) Source(15, 98) + SourceIndex(0)
10>Emitted(7, 57) Source(15, 99) + SourceIndex(0)
---
>>>var multiRobotAInfo;
1 >
2 >^^^^
3 > ^^^^^^^^^^^^^^^
4 > ^
1 >
>
2 >let
3 > multiRobotAInfo: (string | [string, string])[]
4 > ;
1 >Emitted(8, 1) Source(16, 1) + SourceIndex(0)
2 >Emitted(8, 5) Source(16, 5) + SourceIndex(0)
3 >Emitted(8, 20) Source(16, 51) + SourceIndex(0)
4 >Emitted(8, 21) Source(16, 52) + SourceIndex(0)
---
>>>nameA = robotA[1];
1 >
2 >^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^^^^^->
1 >
>
>
2 >[, nameA] = robotA
3 > ;
1 >Emitted(9, 1) Source(18, 1) + SourceIndex(0)
2 >Emitted(9, 18) Source(18, 19) + SourceIndex(0)
3 >Emitted(9, 19) Source(18, 20) + SourceIndex(0)
---
>>>_a = getRobotB(), nameB = _a[1];
1->
2 >^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^->
1->
>[, nameB] =
2 >getRobotB()
3 >
4 > ;
1->Emitted(10, 1) Source(19, 13) + SourceIndex(0)
2 >Emitted(10, 17) Source(19, 24) + SourceIndex(0)
3 >Emitted(10, 32) Source(19, 24) + SourceIndex(0)
4 >Emitted(10, 33) Source(19, 25) + SourceIndex(0)
---
>>>_b = [2, "trimmer", "trimming"], nameB = _b[1];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^
4 > ^
1->
>[, nameB] =
2 >[2, "trimmer", "trimming"]
3 >
4 > ;
1->Emitted(11, 1) Source(20, 13) + SourceIndex(0)
2 >Emitted(11, 32) Source(20, 39) + SourceIndex(0)
3 >Emitted(11, 47) Source(20, 39) + SourceIndex(0)
4 >Emitted(11, 48) Source(20, 40) + SourceIndex(0)
---
>>>multiSkillB = multiRobotB[1];
1 >
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^^^^^->
1 >
>
2 >[, multiSkillB] = multiRobotB
3 > ;
1 >Emitted(12, 1) Source(21, 1) + SourceIndex(0)
2 >Emitted(12, 29) Source(21, 30) + SourceIndex(0)
3 >Emitted(12, 30) Source(21, 31) + SourceIndex(0)
---
>>>_c = getMultiRobotB(), multiSkillB = _c[1];
1->
2 >^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^->
1->
>[, multiSkillB] =
2 >getMultiRobotB()
3 >
4 > ;
1->Emitted(13, 1) Source(22, 19) + SourceIndex(0)
2 >Emitted(13, 22) Source(22, 35) + SourceIndex(0)
3 >Emitted(13, 43) Source(22, 35) + SourceIndex(0)
4 >Emitted(13, 44) Source(22, 36) + SourceIndex(0)
---
>>>_d = ["roomba", ["vaccum", "mopping"]], multiSkillB = _d[1];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^
4 > ^
1->
>[, multiSkillB] =
2 >["roomba", ["vaccum", "mopping"]]
3 >
4 > ;
1->Emitted(14, 1) Source(23, 19) + SourceIndex(0)
2 >Emitted(14, 39) Source(23, 52) + SourceIndex(0)
3 >Emitted(14, 60) Source(23, 52) + SourceIndex(0)
4 >Emitted(14, 61) Source(23, 53) + SourceIndex(0)
---
>>>numberB = robotB[0];
1 >
2 >^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^->
1 >
>
>
2 >[numberB] = robotB
3 > ;
1 >Emitted(15, 1) Source(25, 1) + SourceIndex(0)
2 >Emitted(15, 20) Source(25, 19) + SourceIndex(0)
3 >Emitted(15, 21) Source(25, 20) + SourceIndex(0)
---
>>>numberB = getRobotB()[0];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^^^^^^->
1->
>
2 >[numberB] = getRobotB()
3 > ;
1->Emitted(16, 1) Source(26, 1) + SourceIndex(0)
2 >Emitted(16, 25) Source(26, 24) + SourceIndex(0)
3 >Emitted(16, 26) Source(26, 25) + SourceIndex(0)
---
>>>numberB = [2, "trimmer", "trimming"][0];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
1->
>
2 >[numberB] = [2, "trimmer", "trimming"]
3 > ;
1->Emitted(17, 1) Source(27, 1) + SourceIndex(0)
2 >Emitted(17, 40) Source(27, 39) + SourceIndex(0)
3 >Emitted(17, 41) Source(27, 40) + SourceIndex(0)
---
>>>nameMB = multiRobotB[0];
1 >
2 >^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^->
1 >
>
2 >[nameMB] = multiRobotB
3 > ;
1 >Emitted(18, 1) Source(28, 1) + SourceIndex(0)
2 >Emitted(18, 24) Source(28, 23) + SourceIndex(0)
3 >Emitted(18, 25) Source(28, 24) + SourceIndex(0)
---
>>>nameMB = getMultiRobotB()[0];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^^^^^^^^^^->
1->
>
2 >[nameMB] = getMultiRobotB()
3 > ;
1->Emitted(19, 1) Source(29, 1) + SourceIndex(0)
2 >Emitted(19, 29) Source(29, 28) + SourceIndex(0)
3 >Emitted(19, 30) Source(29, 29) + SourceIndex(0)
---
>>>nameMB = ["trimmer", ["trimming", "edging"]][0];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^^->
1->
>
2 >[nameMB] = ["trimmer", ["trimming", "edging"]]
3 > ;
1->Emitted(20, 1) Source(30, 1) + SourceIndex(0)
2 >Emitted(20, 48) Source(30, 47) + SourceIndex(0)
3 >Emitted(20, 49) Source(30, 48) + SourceIndex(0)
---
>>>numberB = robotB[0], nameB = robotB[1], skillB = robotB[2];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^->
1->
>
>
2 >[numberB, nameB, skillB] = robotB
3 > ;
1->Emitted(21, 1) Source(32, 1) + SourceIndex(0)
2 >Emitted(21, 59) Source(32, 34) + SourceIndex(0)
3 >Emitted(21, 60) Source(32, 35) + SourceIndex(0)
---
>>>_e = getRobotB(), numberB = _e[0], nameB = _e[1], skillB = _e[2];
1->
2 >^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^->
1->
>[numberB, nameB, skillB] =
2 >getRobotB()
3 >
4 > ;
1->Emitted(22, 1) Source(33, 28) + SourceIndex(0)
2 >Emitted(22, 17) Source(33, 39) + SourceIndex(0)
3 >Emitted(22, 65) Source(33, 39) + SourceIndex(0)
4 >Emitted(22, 66) Source(33, 40) + SourceIndex(0)
---
>>>_f = [2, "trimmer", "trimming"], numberB = _f[0], nameB = _f[1], skillB = _f[2];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^->
1->
>[numberB, nameB, skillB] =
2 >[2, "trimmer", "trimming"]
3 >
4 > ;
1->Emitted(23, 1) Source(34, 28) + SourceIndex(0)
2 >Emitted(23, 32) Source(34, 54) + SourceIndex(0)
3 >Emitted(23, 80) Source(34, 54) + SourceIndex(0)
4 >Emitted(23, 81) Source(34, 55) + SourceIndex(0)
---
>>>nameMB = multiRobotB[0], _g = multiRobotB[1], primarySkillB = _g[0], secondarySkillB = _g[1];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^->
1->
>
2 >[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB
3 > ;
1->Emitted(24, 1) Source(35, 1) + SourceIndex(0)
2 >Emitted(24, 93) Source(35, 57) + SourceIndex(0)
3 >Emitted(24, 94) Source(35, 58) + SourceIndex(0)
---
>>>_h = getMultiRobotB(), nameMB = _h[0], _j = _h[1], primarySkillB = _j[0], secondarySkillB = _j[1];
1->
2 >^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^^^->
1->
>[nameMB, [primarySkillB, secondarySkillB]] =
2 >getMultiRobotB()
3 >
4 > ;
1->Emitted(25, 1) Source(36, 46) + SourceIndex(0)
2 >Emitted(25, 22) Source(36, 62) + SourceIndex(0)
3 >Emitted(25, 98) Source(36, 62) + SourceIndex(0)
4 >Emitted(25, 99) Source(36, 63) + SourceIndex(0)
---
>>>_k = ["trimmer", ["trimming", "edging"]], nameMB = _k[0], _l = _k[1], primarySkillB = _l[0], secondarySkillB = _l[1];
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
1->
>[nameMB, [primarySkillB, secondarySkillB]] =
2 >["trimmer", ["trimming", "edging"]]
3 >
4 > ;
1->Emitted(26, 1) Source(37, 46) + SourceIndex(0)
2 >Emitted(26, 41) Source(37, 81) + SourceIndex(0)
3 >Emitted(26, 117) Source(37, 81) + SourceIndex(0)
4 >Emitted(26, 118) Source(37, 82) + SourceIndex(0)
---
>>>numberB = robotB[0], robotAInfo = robotB.slice(1);
1 >
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^->
1 >
>
>
2 >[numberB, ...robotAInfo] = robotB
3 > ;
1 >Emitted(27, 1) Source(39, 1) + SourceIndex(0)
2 >Emitted(27, 50) Source(39, 34) + SourceIndex(0)
3 >Emitted(27, 51) Source(39, 35) + SourceIndex(0)
---
>>>_m = getRobotB(), numberB = _m[0], robotAInfo = _m.slice(1);
1->
2 >^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^->
1->
>[numberB, ...robotAInfo] =
2 >getRobotB()
3 >
4 > ;
1->Emitted(28, 1) Source(40, 28) + SourceIndex(0)
2 >Emitted(28, 17) Source(40, 39) + SourceIndex(0)
3 >Emitted(28, 60) Source(40, 39) + SourceIndex(0)
4 >Emitted(28, 61) Source(40, 40) + SourceIndex(0)
---
>>>_o = [2, "trimmer", "trimming"], numberB = _o[0], robotAInfo = _o.slice(1);
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
1->
>[numberB, ...robotAInfo] =
2 ><Robot>[2, "trimmer", "trimming"]
3 >
4 > ;
1->Emitted(29, 1) Source(41, 28) + SourceIndex(0)
2 >Emitted(29, 32) Source(41, 61) + SourceIndex(0)
3 >Emitted(29, 75) Source(41, 61) + SourceIndex(0)
4 >Emitted(29, 76) Source(41, 62) + SourceIndex(0)
---
>>>multiRobotAInfo = multiRobotA.slice(0);
1 >
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^->
1 >
>
2 >[...multiRobotAInfo] = multiRobotA
3 > ;
1 >Emitted(30, 1) Source(42, 1) + SourceIndex(0)
2 >Emitted(30, 39) Source(42, 35) + SourceIndex(0)
3 >Emitted(30, 40) Source(42, 36) + SourceIndex(0)
---
>>>multiRobotAInfo = getMultiRobotB().slice(0);
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^^^^^^^^^^^^^^^->
1->
>
2 >[...multiRobotAInfo] = getMultiRobotB()
3 > ;
1->Emitted(31, 1) Source(43, 1) + SourceIndex(0)
2 >Emitted(31, 44) Source(43, 40) + SourceIndex(0)
3 >Emitted(31, 45) Source(43, 41) + SourceIndex(0)
---
>>>multiRobotAInfo = ["trimmer", ["trimming", "edging"]].slice(0);
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 > ^
1->
>
2 >[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]]
3 > ;
1->Emitted(32, 1) Source(44, 1) + SourceIndex(0)
2 >Emitted(32, 63) Source(44, 59) + SourceIndex(0)
3 >Emitted(32, 64) Source(44, 60) + SourceIndex(0)
---
>>>if (nameA == nameB) {
1 >
2 >^^
3 > ^
4 > ^
5 > ^^^^^
6 > ^^^^
7 > ^^^^^
8 > ^
9 > ^
10> ^
11> ^^^^->
1 >
>
>
2 >if
3 >
4 > (
5 > nameA
6 > ==
7 > nameB
8 > )
9 >
10> {
1 >Emitted(33, 1) Source(46, 1) + SourceIndex(0)
2 >Emitted(33, 3) Source(46, 3) + SourceIndex(0)
3 >Emitted(33, 4) Source(46, 4) + SourceIndex(0)
4 >Emitted(33, 5) Source(46, 5) + SourceIndex(0)
5 >Emitted(33, 10) Source(46, 10) + SourceIndex(0)
6 >Emitted(33, 14) Source(46, 14) + SourceIndex(0)
7 >Emitted(33, 19) Source(46, 19) + SourceIndex(0)
8 >Emitted(33, 20) Source(46, 20) + SourceIndex(0)
9 >Emitted(33, 21) Source(46, 21) + SourceIndex(0)
10>Emitted(33, 22) Source(46, 22) + SourceIndex(0)
---
>>> console.log(skillB);
1->^^^^
2 > ^^^^^^^
3 > ^
4 > ^^^
5 > ^
6 > ^^^^^^
7 > ^
8 > ^
1->
>
2 > console
3 > .
4 > log
5 > (
6 > skillB
7 > )
8 > ;
1->Emitted(34, 5) Source(47, 5) + SourceIndex(0)
2 >Emitted(34, 12) Source(47, 12) + SourceIndex(0)
3 >Emitted(34, 13) Source(47, 13) + SourceIndex(0)
4 >Emitted(34, 16) Source(47, 16) + SourceIndex(0)
5 >Emitted(34, 17) Source(47, 17) + SourceIndex(0)
6 >Emitted(34, 23) Source(47, 23) + SourceIndex(0)
7 >Emitted(34, 24) Source(47, 24) + SourceIndex(0)
8 >Emitted(34, 25) Source(47, 25) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >}
1 >Emitted(35, 1) Source(48, 1) + SourceIndex(0)
2 >Emitted(35, 2) Source(48, 2) + SourceIndex(0)
---
>>>function getRobotB() {
1->
2 >^^^^^^^^^^^^^^^^^^^->
1->
>
>
1->Emitted(36, 1) Source(50, 1) + SourceIndex(0)
---
>>> return robotB;
1->^^^^
2 > ^^^^^^
3 > ^
4 > ^^^^^^
5 > ^
1->function getRobotB() {
>
2 > return
3 >
4 > robotB
5 > ;
1->Emitted(37, 5) Source(51, 5) + SourceIndex(0)
2 >Emitted(37, 11) Source(51, 11) + SourceIndex(0)
3 >Emitted(37, 12) Source(51, 12) + SourceIndex(0)
4 >Emitted(37, 18) Source(51, 18) + SourceIndex(0)
5 >Emitted(37, 19) Source(51, 19) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >}
1 >Emitted(38, 1) Source(52, 1) + SourceIndex(0)
2 >Emitted(38, 2) Source(52, 2) + SourceIndex(0)
---
>>>function getMultiRobotB() {
1->
2 >^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
>
1->Emitted(39, 1) Source(54, 1) + SourceIndex(0)
---
>>> return multiRobotB;
1->^^^^
2 > ^^^^^^
3 > ^
4 > ^^^^^^^^^^^
5 > ^
1->function getMultiRobotB() {
>
2 > return
3 >
4 > multiRobotB
5 > ;
1->Emitted(40, 5) Source(55, 5) + SourceIndex(0)
2 >Emitted(40, 11) Source(55, 11) + SourceIndex(0)
3 >Emitted(40, 12) Source(55, 12) + SourceIndex(0)
4 >Emitted(40, 23) Source(55, 23) + SourceIndex(0)
5 >Emitted(40, 24) Source(55, 24) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >}
1 >Emitted(41, 1) Source(56, 1) + SourceIndex(0)
2 >Emitted(41, 2) Source(56, 2) + SourceIndex(0)
---
>>>var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.js.map

View File

@@ -0,0 +1,176 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts ===
declare var console: {
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 0, 11))
log(msg: any): void;
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 0, 22))
>msg : Symbol(msg, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 1, 8))
}
type Robot = [number, string, string];
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 2, 1))
type MultiSkilledRobot = [string, [string, string]];
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 3, 38))
var robotA: Robot = [1, "mower", "mowing"];
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 6, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 2, 1))
var robotB: Robot = [2, "trimmer", "trimming"];
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 7, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 2, 1))
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 8, 3))
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 3, 38))
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 9, 3))
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 3, 38))
let nameA: string, numberB: number, nameB: string, skillB: string;
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 3))
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 50))
let robotAInfo: (number | string)[];
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 12, 3))
let multiSkillB: [string, string], nameMB: string, primarySkillB: string, secondarySkillB: string;
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 3))
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 50))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 73))
let multiRobotAInfo: (string | [string, string])[];
>multiRobotAInfo : Symbol(multiRobotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 15, 3))
[, nameA] = robotA;
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 3))
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 6, 3))
[, nameB] = getRobotB();
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 47, 1))
[, nameB] = [2, "trimmer", "trimming"];
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
[, multiSkillB] = multiRobotB;
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 3))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 9, 3))
[, multiSkillB] = getMultiRobotB();
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 3))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 51, 1))
[, multiSkillB] = ["roomba", ["vaccum", "mopping"]];
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 3))
[numberB] = robotB;
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 7, 3))
[numberB] = getRobotB();
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 47, 1))
[numberB] = [2, "trimmer", "trimming"];
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
[nameMB] = multiRobotB;
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 9, 3))
[nameMB] = getMultiRobotB();
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 51, 1))
[nameMB] = ["trimmer", ["trimming", "edging"]];
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
[numberB, nameB, skillB] = robotB;
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 50))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 7, 3))
[numberB, nameB, skillB] = getRobotB();
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 50))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 47, 1))
[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 50))
[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 50))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 73))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 9, 3))
[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 50))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 73))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 51, 1))
[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 34))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 50))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 14, 73))
[numberB, ...robotAInfo] = robotB;
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 12, 3))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 7, 3))
[numberB, ...robotAInfo] = getRobotB();
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 12, 3))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 47, 1))
[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 18))
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 12, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 2, 1))
[...multiRobotAInfo] = multiRobotA;
>multiRobotAInfo : Symbol(multiRobotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 15, 3))
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 8, 3))
[...multiRobotAInfo] = getMultiRobotB();
>multiRobotAInfo : Symbol(multiRobotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 15, 3))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 51, 1))
[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]];
>multiRobotAInfo : Symbol(multiRobotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 15, 3))
if (nameA == nameB) {
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 3))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 35))
console.log(skillB);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 0, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 0, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 0, 22))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 11, 50))
}
function getRobotB() {
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 47, 1))
return robotB;
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 7, 3))
}
function getMultiRobotB() {
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 51, 1))
return multiRobotB;
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts, 9, 3))
}

View File

@@ -0,0 +1,304 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.ts ===
declare var console: {
>console : { log(msg: any): void; }
log(msg: any): void;
>log : (msg: any) => void
>msg : any
}
type Robot = [number, string, string];
>Robot : [number, string, string]
type MultiSkilledRobot = [string, [string, string]];
>MultiSkilledRobot : [string, [string, string]]
var robotA: Robot = [1, "mower", "mowing"];
>robotA : [number, string, string]
>Robot : [number, string, string]
>[1, "mower", "mowing"] : [number, string, string]
>1 : number
>"mower" : string
>"mowing" : string
var robotB: Robot = [2, "trimmer", "trimming"];
>robotB : [number, string, string]
>Robot : [number, string, string]
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
>multiRobotA : [string, [string, string]]
>MultiSkilledRobot : [string, [string, string]]
>["mower", ["mowing", ""]] : [string, [string, string]]
>"mower" : string
>["mowing", ""] : [string, string]
>"mowing" : string
>"" : string
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
>multiRobotB : [string, [string, string]]
>MultiSkilledRobot : [string, [string, string]]
>["trimmer", ["trimming", "edging"]] : [string, [string, string]]
>"trimmer" : string
>["trimming", "edging"] : [string, string]
>"trimming" : string
>"edging" : string
let nameA: string, numberB: number, nameB: string, skillB: string;
>nameA : string
>numberB : number
>nameB : string
>skillB : string
let robotAInfo: (number | string)[];
>robotAInfo : (number | string)[]
let multiSkillB: [string, string], nameMB: string, primarySkillB: string, secondarySkillB: string;
>multiSkillB : [string, string]
>nameMB : string
>primarySkillB : string
>secondarySkillB : string
let multiRobotAInfo: (string | [string, string])[];
>multiRobotAInfo : (string | [string, string])[]
[, nameA] = robotA;
>[, nameA] = robotA : [number, string, string]
>[, nameA] : [undefined, string]
> : undefined
>nameA : string
>robotA : [number, string, string]
[, nameB] = getRobotB();
>[, nameB] = getRobotB() : [number, string, string]
>[, nameB] : [undefined, string]
> : undefined
>nameB : string
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[, nameB] = [2, "trimmer", "trimming"];
>[, nameB] = [2, "trimmer", "trimming"] : [number, string, string]
>[, nameB] : [undefined, string]
> : undefined
>nameB : string
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[, multiSkillB] = multiRobotB;
>[, multiSkillB] = multiRobotB : [string, [string, string]]
>[, multiSkillB] : [undefined, [string, string]]
> : undefined
>multiSkillB : [string, string]
>multiRobotB : [string, [string, string]]
[, multiSkillB] = getMultiRobotB();
>[, multiSkillB] = getMultiRobotB() : [string, [string, string]]
>[, multiSkillB] : [undefined, [string, string]]
> : undefined
>multiSkillB : [string, string]
>getMultiRobotB() : [string, [string, string]]
>getMultiRobotB : () => [string, [string, string]]
[, multiSkillB] = ["roomba", ["vaccum", "mopping"]];
>[, multiSkillB] = ["roomba", ["vaccum", "mopping"]] : [string, [string, string]]
>[, multiSkillB] : [undefined, [string, string]]
> : undefined
>multiSkillB : [string, string]
>["roomba", ["vaccum", "mopping"]] : [string, [string, string]]
>"roomba" : string
>["vaccum", "mopping"] : [string, string]
>"vaccum" : string
>"mopping" : string
[numberB] = robotB;
>[numberB] = robotB : [number, string, string]
>[numberB] : [number]
>numberB : number
>robotB : [number, string, string]
[numberB] = getRobotB();
>[numberB] = getRobotB() : [number, string, string]
>[numberB] : [number]
>numberB : number
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[numberB] = [2, "trimmer", "trimming"];
>[numberB] = [2, "trimmer", "trimming"] : [number, string, string]
>[numberB] : [number]
>numberB : number
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[nameMB] = multiRobotB;
>[nameMB] = multiRobotB : [string, [string, string]]
>[nameMB] : [string]
>nameMB : string
>multiRobotB : [string, [string, string]]
[nameMB] = getMultiRobotB();
>[nameMB] = getMultiRobotB() : [string, [string, string]]
>[nameMB] : [string]
>nameMB : string
>getMultiRobotB() : [string, [string, string]]
>getMultiRobotB : () => [string, [string, string]]
[nameMB] = ["trimmer", ["trimming", "edging"]];
>[nameMB] = ["trimmer", ["trimming", "edging"]] : [string, string[]]
>[nameMB] : [string]
>nameMB : string
>["trimmer", ["trimming", "edging"]] : [string, string[]]
>"trimmer" : string
>["trimming", "edging"] : string[]
>"trimming" : string
>"edging" : string
[numberB, nameB, skillB] = robotB;
>[numberB, nameB, skillB] = robotB : [number, string, string]
>[numberB, nameB, skillB] : [number, string, string]
>numberB : number
>nameB : string
>skillB : string
>robotB : [number, string, string]
[numberB, nameB, skillB] = getRobotB();
>[numberB, nameB, skillB] = getRobotB() : [number, string, string]
>[numberB, nameB, skillB] : [number, string, string]
>numberB : number
>nameB : string
>skillB : string
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
>[numberB, nameB, skillB] = [2, "trimmer", "trimming"] : [number, string, string]
>[numberB, nameB, skillB] : [number, string, string]
>numberB : number
>nameB : string
>skillB : string
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
>[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB : [string, [string, string]]
>[nameMB, [primarySkillB, secondarySkillB]] : [string, [string, string]]
>nameMB : string
>[primarySkillB, secondarySkillB] : [string, string]
>primarySkillB : string
>secondarySkillB : string
>multiRobotB : [string, [string, string]]
[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
>[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB() : [string, [string, string]]
>[nameMB, [primarySkillB, secondarySkillB]] : [string, [string, string]]
>nameMB : string
>[primarySkillB, secondarySkillB] : [string, string]
>primarySkillB : string
>secondarySkillB : string
>getMultiRobotB() : [string, [string, string]]
>getMultiRobotB : () => [string, [string, string]]
[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
>[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]] : [string, [string, string]]
>[nameMB, [primarySkillB, secondarySkillB]] : [string, [string, string]]
>nameMB : string
>[primarySkillB, secondarySkillB] : [string, string]
>primarySkillB : string
>secondarySkillB : string
>["trimmer", ["trimming", "edging"]] : [string, [string, string]]
>"trimmer" : string
>["trimming", "edging"] : [string, string]
>"trimming" : string
>"edging" : string
[numberB, ...robotAInfo] = robotB;
>[numberB, ...robotAInfo] = robotB : [number, string, string]
>[numberB, ...robotAInfo] : (number | string)[]
>numberB : number
>...robotAInfo : number | string
>robotAInfo : (number | string)[]
>robotB : [number, string, string]
[numberB, ...robotAInfo] = getRobotB();
>[numberB, ...robotAInfo] = getRobotB() : [number, string, string]
>[numberB, ...robotAInfo] : (number | string)[]
>numberB : number
>...robotAInfo : number | string
>robotAInfo : (number | string)[]
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
>[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"] : [number, string, string]
>[numberB, ...robotAInfo] : (number | string)[]
>numberB : number
>...robotAInfo : number | string
>robotAInfo : (number | string)[]
><Robot>[2, "trimmer", "trimming"] : [number, string, string]
>Robot : [number, string, string]
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[...multiRobotAInfo] = multiRobotA;
>[...multiRobotAInfo] = multiRobotA : [string, [string, string]]
>[...multiRobotAInfo] : (string | [string, string])[]
>...multiRobotAInfo : string | [string, string]
>multiRobotAInfo : (string | [string, string])[]
>multiRobotA : [string, [string, string]]
[...multiRobotAInfo] = getMultiRobotB();
>[...multiRobotAInfo] = getMultiRobotB() : [string, [string, string]]
>[...multiRobotAInfo] : (string | [string, string])[]
>...multiRobotAInfo : string | [string, string]
>multiRobotAInfo : (string | [string, string])[]
>getMultiRobotB() : [string, [string, string]]
>getMultiRobotB : () => [string, [string, string]]
[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]];
>[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]] : (string | [string, string])[]
>[...multiRobotAInfo] : (string | [string, string])[]
>...multiRobotAInfo : string | [string, string]
>multiRobotAInfo : (string | [string, string])[]
>["trimmer", ["trimming", "edging"]] : (string | [string, string])[]
>"trimmer" : string
>["trimming", "edging"] : [string, string]
>"trimming" : string
>"edging" : string
if (nameA == nameB) {
>nameA == nameB : boolean
>nameA : string
>nameB : string
console.log(skillB);
>console.log(skillB) : void
>console.log : (msg: any) => void
>console : { log(msg: any): void; }
>log : (msg: any) => void
>skillB : string
}
function getRobotB() {
>getRobotB : () => [number, string, string]
return robotB;
>robotB : [number, string, string]
}
function getMultiRobotB() {
>getMultiRobotB : () => [string, [string, string]]
return multiRobotB;
>multiRobotB : [string, [string, string]]
}

View File

@@ -0,0 +1,57 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
var robotA: Robot = [1, "mower", "mowing"];
var robotB: Robot = [2, "trimmer", "trimming"];
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let nameA: string, numberB: number, nameB: string, skillB: string;
let robotAInfo: (number | string)[];
let multiSkillB: [string, string], nameMB: string, primarySkillB: string, secondarySkillB: string;
let multiRobotAInfo: (string | [string, string])[];
[, nameA] = robotA;
[, nameB] = getRobotB();
[, nameB] = [2, "trimmer", "trimming"];
[, multiSkillB] = multiRobotB;
[, multiSkillB] = getMultiRobotB();
[, multiSkillB] = ["roomba", ["vaccum", "mopping"]];
[numberB] = robotB;
[numberB] = getRobotB();
[numberB] = [2, "trimmer", "trimming"];
[nameMB] = multiRobotB;
[nameMB] = getMultiRobotB();
[nameMB] = ["trimmer", ["trimming", "edging"]];
[numberB, nameB, skillB] = robotB;
[numberB, nameB, skillB] = getRobotB();
[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
[numberB, ...robotAInfo] = robotB;
[numberB, ...robotAInfo] = getRobotB();
[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
[...multiRobotAInfo] = multiRobotA;
[...multiRobotAInfo] = getMultiRobotB();
[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]];
if (nameA == nameB) {
console.log(skillB);
}
function getRobotB() {
return robotB;
}
function getMultiRobotB() {
return multiRobotB;
}