Test case for array binding pattern destructuring assignment with default values

This commit is contained in:
Sheetal Nandi
2015-12-11 11:00:55 -08:00
parent 321062a4d4
commit e362cb2c72
6 changed files with 1772 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts]
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [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[], nameMB: string, primarySkillB: string, secondarySkillB: string;
let multiRobotAInfo: (string | string[])[];
[, nameA = "helloNoName"] = robotA;
[, nameB = "helloNoName"] = getRobotB();
[, nameB = "helloNoName"] = [2, "trimmer", "trimming"];
[, multiSkillB = []] = multiRobotB;
[, multiSkillB = []] = getMultiRobotB();
[, multiSkillB = []] = ["roomba", ["vaccum", "mopping"]];
[numberB = -1] = robotB;
[numberB = -1] = getRobotB();
[numberB = -1] = [2, "trimmer", "trimming"];
[nameMB = "helloNoName"] = multiRobotB;
[nameMB = "helloNoName"] = getMultiRobotB();
[nameMB = "helloNoName"] = ["trimmer", ["trimming", "edging"]];
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
["trimmer", ["trimming", "edging"]];
[numberB = -1, ...robotAInfo] = robotB;
[numberB = -1, ...robotAInfo] = getRobotB();
[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
if (nameA == nameB) {
console.log(skillB);
}
function getRobotB() {
return robotB;
}
function getMultiRobotB() {
return multiRobotB;
}
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.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;
_a = robotA[1], nameA = _a === void 0 ? "helloNoName" : _a;
_b = getRobotB(), _c = _b[1], nameB = _c === void 0 ? "helloNoName" : _c;
_d = [2, "trimmer", "trimming"], _e = _d[1], nameB = _e === void 0 ? "helloNoName" : _e;
_f = multiRobotB[1], multiSkillB = _f === void 0 ? [] : _f;
_g = getMultiRobotB(), _h = _g[1], multiSkillB = _h === void 0 ? [] : _h;
_j = ["roomba", ["vaccum", "mopping"]], _k = _j[1], multiSkillB = _k === void 0 ? [] : _k;
_l = robotB[0], numberB = _l === void 0 ? -1 : _l;
_m = getRobotB()[0], numberB = _m === void 0 ? -1 : _m;
_o = [2, "trimmer", "trimming"][0], numberB = _o === void 0 ? -1 : _o;
_p = multiRobotB[0], nameMB = _p === void 0 ? "helloNoName" : _p;
_q = getMultiRobotB()[0], nameMB = _q === void 0 ? "helloNoName" : _q;
_r = ["trimmer", ["trimming", "edging"]][0], nameMB = _r === void 0 ? "helloNoName" : _r;
_s = robotB[0], numberB = _s === void 0 ? -1 : _s, _t = robotB[1], nameB = _t === void 0 ? "helloNoName" : _t, _u = robotB[2], skillB = _u === void 0 ? "noSkill" : _u;
_v = getRobotB(), _w = _v[0], numberB = _w === void 0 ? -1 : _w, _x = _v[1], nameB = _x === void 0 ? "helloNoName" : _x, _y = _v[2], skillB = _y === void 0 ? "noSkill" : _y;
_z = [2, "trimmer", "trimming"], _0 = _z[0], numberB = _0 === void 0 ? -1 : _0, _1 = _z[1], nameB = _1 === void 0 ? "helloNoName" : _1, _2 = _z[2], skillB = _2 === void 0 ? "noSkill" : _2;
_3 = multiRobotB[0], nameMB = _3 === void 0 ? "helloNoName" : _3, _4 = multiRobotB[1], _5 = _4 === void 0 ? [] : _4, _6 = _5[0], primarySkillB = _6 === void 0 ? "noSkill" : _6, _7 = _5[1], secondarySkillB = _7 === void 0 ? "noSkill" : _7;
_8 = getMultiRobotB(), _9 = _8[0], nameMB = _9 === void 0 ? "helloNoName" : _9, _10 = _8[1], _11 = _10 === void 0 ? [] : _10, _12 = _11[0], primarySkillB = _12 === void 0 ? "noSkill" : _12, _13 = _11[1], secondarySkillB = _13 === void 0 ? "noSkill" : _13;
_14 = ["trimmer", ["trimming", "edging"]], _15 = _14[0], nameMB = _15 === void 0 ? "helloNoName" : _15, _16 = _14[1], _17 = _16 === void 0 ? [] : _16, _18 = _17[0], primarySkillB = _18 === void 0 ? "noSkill" : _18, _19 = _17[1], secondarySkillB = _19 === void 0 ? "noSkill" : _19;
_20 = robotB[0], numberB = _20 === void 0 ? -1 : _20, robotAInfo = robotB.slice(1);
_21 = getRobotB(), _22 = _21[0], numberB = _22 === void 0 ? -1 : _22, robotAInfo = _21.slice(1);
_23 = [2, "trimmer", "trimming"], _24 = _23[0], numberB = _24 === void 0 ? -1 : _24, robotAInfo = _23.slice(1);
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, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24;
//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.js.map

View File

@@ -0,0 +1,2 @@
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.js.map]
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.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,WAAqB,EAAE,MAAc,EAAE,aAAqB,EAAE,eAAuB,CAAC;AAC1F,IAAI,eAAsC,CAAC;AAExC,cAAqB,EAArB,0CAAqB,CAAW;AACnC,gBAAuC,EAApC,UAAqB,EAArB,0CAAqB,CAAgB;AACxC,+BAAsD,EAAnD,UAAqB,EAArB,0CAAqB,CAA+B;AACpD,mBAAgB,EAAhB,qCAAgB,CAAgB;AACnC,qBAAuC,EAApC,UAAgB,EAAhB,qCAAgB,CAAqB;AACxC,sCAAwD,EAArD,UAAgB,EAAhB,qCAAgB,CAAsC;AAExD,cAAY,EAAZ,iCAAY,CAAW;AACvB,mBAAY,EAAZ,iCAAY,CAAgB;AAC5B,kCAAY,EAAZ,iCAAY,CAA+B;AAC3C,mBAAsB,EAAtB,2CAAsB,CAAgB;AACtC,wBAAsB,EAAtB,2CAAsB,CAAqB;AAC3C,2CAAsB,EAAtB,2CAAsB,CAAwC;AAE9D,cAAY,EAAZ,iCAAY,EAAE,cAAqB,EAArB,0CAAqB,EAAE,cAAkB,EAAlB,uCAAkB,CAAW;AACnE,gBAAuE,EAAtE,UAAY,EAAZ,iCAAY,EAAE,UAAqB,EAArB,0CAAqB,EAAE,UAAkB,EAAlB,uCAAkB,CAAgB;AACxE,+BAAsF,EAArF,UAAY,EAAZ,iCAAY,EAAE,UAAqB,EAArB,0CAAqB,EAAE,UAAkB,EAAlB,uCAAkB,CAA+B;AACtF,mBAAsB,EAAtB,2CAAsB,EAAE,mBAA6D,EAA7D,4BAA6D,EAA5D,UAAyB,EAAzB,8CAAyB,EAAE,UAA2B,EAA3B,gDAA2B,CAAsB;AACtG,qBAA0G,EAAzG,UAAsB,EAAtB,2CAAsB,EAAE,WAA6D,EAA7D,+BAA6D,EAA5D,YAAyB,EAAzB,gDAAyB,EAAE,YAA2B,EAA3B,kDAA2B,CAA2B;AAC3G,yCACuC,EADtC,YAAsB,EAAtB,6CAAsB,EAAE,YAA6D,EAA7D,+BAA6D,EAA5D,YAAyB,EAAzB,gDAAyB,EAAE,YAA2B,EAA3B,kDAA2B,CACxC;AAEvC,eAAY,EAAZ,mCAAY,EAAE,4BAAa,CAAW;AACvC,iBAA2C,EAA1C,YAAY,EAAZ,mCAAY,EAAE,yBAAa,CAAgB;AAC5C,gCAAiE,EAAhE,YAAY,EAAZ,mCAAY,EAAE,yBAAa,CAAsC;AAElE,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,167 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts ===
declare var console: {
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 0, 11))
log(msg: any): void;
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 0, 22))
>msg : Symbol(msg, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 1, 8))
}
type Robot = [number, string, string];
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 2, 1))
type MultiSkilledRobot = [string, string[]];
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 3, 38))
var robotA: Robot = [1, "mower", "mowing"];
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 6, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 2, 1))
var robotB: Robot = [2, "trimmer", "trimming"];
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 7, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 2, 1))
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 8, 3))
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 3, 38))
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 9, 3))
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 3, 38))
let nameA: string, numberB: number, nameB: string, skillB: string;
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 3))
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 50))
let robotAInfo: (number | string)[];
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 12, 3))
let multiSkillB: string[], nameMB: string, primarySkillB: string, secondarySkillB: string;
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 3))
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 42))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 65))
let multiRobotAInfo: (string | string[])[];
>multiRobotAInfo : Symbol(multiRobotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 15, 3))
[, nameA = "helloNoName"] = robotA;
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 3))
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 6, 3))
[, nameB = "helloNoName"] = getRobotB();
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 45, 1))
[, nameB = "helloNoName"] = [2, "trimmer", "trimming"];
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
[, multiSkillB = []] = multiRobotB;
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 3))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 9, 3))
[, multiSkillB = []] = getMultiRobotB();
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 3))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 49, 1))
[, multiSkillB = []] = ["roomba", ["vaccum", "mopping"]];
>multiSkillB : Symbol(multiSkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 3))
[numberB = -1] = robotB;
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 7, 3))
[numberB = -1] = getRobotB();
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 45, 1))
[numberB = -1] = [2, "trimmer", "trimming"];
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
[nameMB = "helloNoName"] = multiRobotB;
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 9, 3))
[nameMB = "helloNoName"] = getMultiRobotB();
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 49, 1))
[nameMB = "helloNoName"] = ["trimmer", ["trimming", "edging"]];
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 50))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 7, 3))
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 50))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 45, 1))
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 50))
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 42))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 65))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 9, 3))
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 42))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 65))
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 49, 1))
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 26))
>primarySkillB : Symbol(primarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 42))
>secondarySkillB : Symbol(secondarySkillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 14, 65))
["trimmer", ["trimming", "edging"]];
[numberB = -1, ...robotAInfo] = robotB;
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 12, 3))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 7, 3))
[numberB = -1, ...robotAInfo] = getRobotB();
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 12, 3))
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 45, 1))
[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
>numberB : Symbol(numberB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 18))
>robotAInfo : Symbol(robotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 12, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 2, 1))
if (nameA == nameB) {
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 3))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 35))
console.log(skillB);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 0, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 0, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 0, 22))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 11, 50))
}
function getRobotB() {
>getRobotB : Symbol(getRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 45, 1))
return robotB;
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 7, 3))
}
function getMultiRobotB() {
>getMultiRobotB : Symbol(getMultiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 49, 1))
return multiRobotB;
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.ts, 9, 3))
}

View File

@@ -0,0 +1,361 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.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[]];
>MultiSkilledRobot : [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[]]
>MultiSkilledRobot : [string, string[]]
>["mower", ["mowing", ""]] : [string, string[]]
>"mower" : string
>["mowing", ""] : string[]
>"mowing" : string
>"" : string
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
>multiRobotB : [string, string[]]
>MultiSkilledRobot : [string, string[]]
>["trimmer", ["trimming", "edging"]] : [string, string[]]
>"trimmer" : string
>["trimming", "edging"] : 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[], nameMB: string, primarySkillB: string, secondarySkillB: string;
>multiSkillB : string[]
>nameMB : string
>primarySkillB : string
>secondarySkillB : string
let multiRobotAInfo: (string | string[])[];
>multiRobotAInfo : (string | string[])[]
[, nameA = "helloNoName"] = robotA;
>[, nameA = "helloNoName"] = robotA : [number, string, string]
>[, nameA = "helloNoName"] : [undefined, string]
> : undefined
>nameA = "helloNoName" : string
>nameA : string
>"helloNoName" : string
>robotA : [number, string, string]
[, nameB = "helloNoName"] = getRobotB();
>[, nameB = "helloNoName"] = getRobotB() : [number, string, string]
>[, nameB = "helloNoName"] : [undefined, string]
> : undefined
>nameB = "helloNoName" : string
>nameB : string
>"helloNoName" : string
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[, nameB = "helloNoName"] = [2, "trimmer", "trimming"];
>[, nameB = "helloNoName"] = [2, "trimmer", "trimming"] : [number, string, string]
>[, nameB = "helloNoName"] : [undefined, string]
> : undefined
>nameB = "helloNoName" : string
>nameB : string
>"helloNoName" : string
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[, multiSkillB = []] = multiRobotB;
>[, multiSkillB = []] = multiRobotB : [string, string[]]
>[, multiSkillB = []] : [undefined, undefined[]]
> : undefined
>multiSkillB = [] : undefined[]
>multiSkillB : string[]
>[] : undefined[]
>multiRobotB : [string, string[]]
[, multiSkillB = []] = getMultiRobotB();
>[, multiSkillB = []] = getMultiRobotB() : [string, string[]]
>[, multiSkillB = []] : [undefined, undefined[]]
> : undefined
>multiSkillB = [] : undefined[]
>multiSkillB : string[]
>[] : undefined[]
>getMultiRobotB() : [string, string[]]
>getMultiRobotB : () => [string, string[]]
[, multiSkillB = []] = ["roomba", ["vaccum", "mopping"]];
>[, multiSkillB = []] = ["roomba", ["vaccum", "mopping"]] : [string, string[]]
>[, multiSkillB = []] : [undefined, undefined[]]
> : undefined
>multiSkillB = [] : undefined[]
>multiSkillB : string[]
>[] : undefined[]
>["roomba", ["vaccum", "mopping"]] : [string, string[]]
>"roomba" : string
>["vaccum", "mopping"] : string[]
>"vaccum" : string
>"mopping" : string
[numberB = -1] = robotB;
>[numberB = -1] = robotB : [number, string, string]
>[numberB = -1] : [number]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>robotB : [number, string, string]
[numberB = -1] = getRobotB();
>[numberB = -1] = getRobotB() : [number, string, string]
>[numberB = -1] : [number]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[numberB = -1] = [2, "trimmer", "trimming"];
>[numberB = -1] = [2, "trimmer", "trimming"] : [number, string, string]
>[numberB = -1] : [number]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[nameMB = "helloNoName"] = multiRobotB;
>[nameMB = "helloNoName"] = multiRobotB : [string, string[]]
>[nameMB = "helloNoName"] : [string]
>nameMB = "helloNoName" : string
>nameMB : string
>"helloNoName" : string
>multiRobotB : [string, string[]]
[nameMB = "helloNoName"] = getMultiRobotB();
>[nameMB = "helloNoName"] = getMultiRobotB() : [string, string[]]
>[nameMB = "helloNoName"] : [string]
>nameMB = "helloNoName" : string
>nameMB : string
>"helloNoName" : string
>getMultiRobotB() : [string, string[]]
>getMultiRobotB : () => [string, string[]]
[nameMB = "helloNoName"] = ["trimmer", ["trimming", "edging"]];
>[nameMB = "helloNoName"] = ["trimmer", ["trimming", "edging"]] : [string, string[]]
>[nameMB = "helloNoName"] : [string]
>nameMB = "helloNoName" : string
>nameMB : string
>"helloNoName" : string
>["trimmer", ["trimming", "edging"]] : [string, string[]]
>"trimmer" : string
>["trimming", "edging"] : string[]
>"trimming" : string
>"edging" : string
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
>[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB : [number, string, string]
>[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] : [number, string, string]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>nameB = "helloNoName" : string
>nameB : string
>"helloNoName" : string
>skillB = "noSkill" : string
>skillB : string
>"noSkill" : string
>robotB : [number, string, string]
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
>[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB() : [number, string, string]
>[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] : [number, string, string]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>nameB = "helloNoName" : string
>nameB : string
>"helloNoName" : string
>skillB = "noSkill" : string
>skillB : string
>"noSkill" : string
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
>[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"] : [number, string, string]
>[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] : [number, string, string]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>nameB = "helloNoName" : string
>nameB : string
>"helloNoName" : string
>skillB = "noSkill" : string
>skillB : string
>"noSkill" : string
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string
>"trimming" : string
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
>[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB : [string, string[]]
>[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] : [string, [string, string]]
>nameMB = "helloNoName" : string
>nameMB : string
>"helloNoName" : string
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = [] : [string, string]
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] : [string, string]
>primarySkillB = "noSkill" : string
>primarySkillB : string
>"noSkill" : string
>secondarySkillB = "noSkill" : string
>secondarySkillB : string
>"noSkill" : string
>[] : [string, string]
>multiRobotB : [string, string[]]
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
>[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB() : [string, string[]]
>[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] : [string, [string, string]]
>nameMB = "helloNoName" : string
>nameMB : string
>"helloNoName" : string
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = [] : [string, string]
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] : [string, string]
>primarySkillB = "noSkill" : string
>primarySkillB : string
>"noSkill" : string
>secondarySkillB = "noSkill" : string
>secondarySkillB : string
>"noSkill" : string
>[] : [string, string]
>getMultiRobotB() : [string, string[]]
>getMultiRobotB : () => [string, string[]]
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
>[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = ["trimmer", ["trimming", "edging"]] : [string, [string, string]]
>[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] : [string, [string, string]]
>nameMB = "helloNoName" : string
>nameMB : string
>"helloNoName" : string
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = [] : [string, string]
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] : [string, string]
>primarySkillB = "noSkill" : string
>primarySkillB : string
>"noSkill" : string
>secondarySkillB = "noSkill" : string
>secondarySkillB : string
>"noSkill" : string
>[] : [string, string]
["trimmer", ["trimming", "edging"]];
>["trimmer", ["trimming", "edging"]] : [string, [string, string]]
>"trimmer" : string
>["trimming", "edging"] : [string, string]
>"trimming" : string
>"edging" : string
[numberB = -1, ...robotAInfo] = robotB;
>[numberB = -1, ...robotAInfo] = robotB : [number, string, string]
>[numberB = -1, ...robotAInfo] : (number | string)[]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>...robotAInfo : number | string
>robotAInfo : (number | string)[]
>robotB : [number, string, string]
[numberB = -1, ...robotAInfo] = getRobotB();
>[numberB = -1, ...robotAInfo] = getRobotB() : [number, string, string]
>[numberB = -1, ...robotAInfo] : (number | string)[]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : number
>...robotAInfo : number | string
>robotAInfo : (number | string)[]
>getRobotB() : [number, string, string]
>getRobotB : () => [number, string, string]
[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
>[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"] : [number, string, string]
>[numberB = -1, ...robotAInfo] : (number | string)[]
>numberB = -1 : number
>numberB : number
>-1 : number
>1 : 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
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[]]
return multiRobotB;
>multiRobotB : [string, string[]]
}

View File

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