Skip to content

Commit 73498e8

Browse files
committed
Test cases for parameter destructuring pattern
1 parent adcc685 commit 73498e8

16 files changed

Lines changed: 1865 additions & 0 deletions
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
2+
1 >declare var console: {
3+
4+
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
5+
--------------------------------
6+
2 > log(msg: any): void;
7+
8+
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
9+
--------------------------------
10+
3 >}
11+
12+
~~ => Pos: (48 to 49) SpanInfo: undefined
13+
--------------------------------
14+
4 >type Robot = [number, string, string];
15+
16+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
17+
--------------------------------
18+
5 >var robotA: Robot = [1, "mower", "mowing"];
19+
20+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (89 to 132) SpanInfo: {"start":89,"length":42}
21+
>var robotA: Robot = [1, "mower", "mowing"]
22+
>:=> (line 5, col 0) to (line 5, col 42)
23+
--------------------------------
24+
6 >function foo1([, nameA]: Robot) {
25+
26+
~~~~~~~~~~~~~~ => Pos: (133 to 146) SpanInfo: {"start":171,"length":18}
27+
>console.log(nameA)
28+
>:=> (line 7, col 4) to (line 7, col 22)
29+
6 >function foo1([, nameA]: Robot) {
30+
31+
~~~~~~~~~ => Pos: (147 to 155) SpanInfo: {"start":150,"length":5}
32+
>nameA
33+
>:=> (line 6, col 17) to (line 6, col 22)
34+
6 >function foo1([, nameA]: Robot) {
35+
36+
~~~~~~~~~~~ => Pos: (156 to 166) SpanInfo: {"start":171,"length":18}
37+
>console.log(nameA)
38+
>:=> (line 7, col 4) to (line 7, col 22)
39+
--------------------------------
40+
7 > console.log(nameA);
41+
42+
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (167 to 190) SpanInfo: {"start":171,"length":18}
43+
>console.log(nameA)
44+
>:=> (line 7, col 4) to (line 7, col 22)
45+
--------------------------------
46+
8 >}
47+
48+
~~ => Pos: (191 to 192) SpanInfo: {"start":191,"length":1}
49+
>}
50+
>:=> (line 8, col 0) to (line 8, col 1)
51+
--------------------------------
52+
9 >function foo2([numberB]: Robot) {
53+
54+
~~~~~~~~~~~~~~ => Pos: (193 to 206) SpanInfo: {"start":231,"length":20}
55+
>console.log(numberB)
56+
>:=> (line 10, col 4) to (line 10, col 24)
57+
9 >function foo2([numberB]: Robot) {
58+
59+
~~~~~~~~~ => Pos: (207 to 215) SpanInfo: {"start":208,"length":7}
60+
>numberB
61+
>:=> (line 9, col 15) to (line 9, col 22)
62+
9 >function foo2([numberB]: Robot) {
63+
64+
~~~~~~~~~~~ => Pos: (216 to 226) SpanInfo: {"start":231,"length":20}
65+
>console.log(numberB)
66+
>:=> (line 10, col 4) to (line 10, col 24)
67+
--------------------------------
68+
10 > console.log(numberB);
69+
70+
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (227 to 252) SpanInfo: {"start":231,"length":20}
71+
>console.log(numberB)
72+
>:=> (line 10, col 4) to (line 10, col 24)
73+
--------------------------------
74+
11 >}
75+
76+
~~ => Pos: (253 to 254) SpanInfo: {"start":253,"length":1}
77+
>}
78+
>:=> (line 11, col 0) to (line 11, col 1)
79+
--------------------------------
80+
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
81+
82+
~~~~~~~~~~~~~~ => Pos: (255 to 268) SpanInfo: {"start":311,"length":19}
83+
>console.log(nameA2)
84+
>:=> (line 13, col 4) to (line 13, col 23)
85+
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
86+
87+
~~~~~~~~~~ => Pos: (269 to 278) SpanInfo: {"start":270,"length":8}
88+
>numberA2
89+
>:=> (line 12, col 15) to (line 12, col 23)
90+
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
91+
92+
~~~~~~~~ => Pos: (279 to 286) SpanInfo: {"start":280,"length":6}
93+
>nameA2
94+
>:=> (line 12, col 25) to (line 12, col 31)
95+
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
96+
97+
~~~~~~~~~ => Pos: (287 to 295) SpanInfo: {"start":288,"length":7}
98+
>skillA2
99+
>:=> (line 12, col 33) to (line 12, col 40)
100+
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
101+
102+
~~~~~~~~~~~=> Pos: (296 to 306) SpanInfo: {"start":311,"length":19}
103+
>console.log(nameA2)
104+
>:=> (line 13, col 4) to (line 13, col 23)
105+
--------------------------------
106+
13 > console.log(nameA2);
107+
108+
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (307 to 331) SpanInfo: {"start":311,"length":19}
109+
>console.log(nameA2)
110+
>:=> (line 13, col 4) to (line 13, col 23)
111+
--------------------------------
112+
14 >}
113+
114+
~~ => Pos: (332 to 333) SpanInfo: {"start":332,"length":1}
115+
>}
116+
>:=> (line 14, col 0) to (line 14, col 1)
117+
--------------------------------
118+
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
119+
120+
~~~~~~~~~~~~~~ => Pos: (334 to 347) SpanInfo: {"start":388,"length":23}
121+
>console.log(robotAInfo)
122+
>:=> (line 16, col 4) to (line 16, col 27)
123+
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
124+
125+
~~~~~~~~~~ => Pos: (348 to 357) SpanInfo: {"start":349,"length":8}
126+
>numberA3
127+
>:=> (line 15, col 15) to (line 15, col 23)
128+
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
129+
130+
~~~~~~~~~~~~~~~ => Pos: (358 to 372) SpanInfo: {"start":359,"length":13}
131+
>...robotAInfo
132+
>:=> (line 15, col 25) to (line 15, col 38)
133+
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
134+
135+
~~~~~~~~~~~=> Pos: (373 to 383) SpanInfo: {"start":388,"length":23}
136+
>console.log(robotAInfo)
137+
>:=> (line 16, col 4) to (line 16, col 27)
138+
--------------------------------
139+
16 > console.log(robotAInfo);
140+
141+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (384 to 412) SpanInfo: {"start":388,"length":23}
142+
>console.log(robotAInfo)
143+
>:=> (line 16, col 4) to (line 16, col 27)
144+
--------------------------------
145+
17 >}
146+
147+
~~ => Pos: (413 to 414) SpanInfo: {"start":413,"length":1}
148+
>}
149+
>:=> (line 17, col 0) to (line 17, col 1)
150+
--------------------------------
151+
18 >foo1(robotA);
152+
153+
~~~~~~~~~~~~~~ => Pos: (415 to 428) SpanInfo: {"start":415,"length":12}
154+
>foo1(robotA)
155+
>:=> (line 18, col 0) to (line 18, col 12)
156+
--------------------------------
157+
19 >foo1([2, "trimmer", "trimming"]);
158+
159+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (429 to 462) SpanInfo: {"start":429,"length":32}
160+
>foo1([2, "trimmer", "trimming"])
161+
>:=> (line 19, col 0) to (line 19, col 32)
162+
--------------------------------
163+
20 >foo2(robotA);
164+
165+
~~~~~~~~~~~~~~ => Pos: (463 to 476) SpanInfo: {"start":463,"length":12}
166+
>foo2(robotA)
167+
>:=> (line 20, col 0) to (line 20, col 12)
168+
--------------------------------
169+
21 >foo2([2, "trimmer", "trimming"]);
170+
171+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (477 to 510) SpanInfo: {"start":477,"length":32}
172+
>foo2([2, "trimmer", "trimming"])
173+
>:=> (line 21, col 0) to (line 21, col 32)
174+
--------------------------------
175+
22 >foo3(robotA);
176+
177+
~~~~~~~~~~~~~~ => Pos: (511 to 524) SpanInfo: {"start":511,"length":12}
178+
>foo3(robotA)
179+
>:=> (line 22, col 0) to (line 22, col 12)
180+
--------------------------------
181+
23 >foo3([2, "trimmer", "trimming"]);
182+
183+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (525 to 558) SpanInfo: {"start":525,"length":32}
184+
>foo3([2, "trimmer", "trimming"])
185+
>:=> (line 23, col 0) to (line 23, col 32)
186+
--------------------------------
187+
24 >foo4(robotA);
188+
189+
~~~~~~~~~~~~~~ => Pos: (559 to 572) SpanInfo: {"start":559,"length":12}
190+
>foo4(robotA)
191+
>:=> (line 24, col 0) to (line 24, col 12)
192+
--------------------------------
193+
25 >foo4([2, "trimmer", "trimming"]);
194+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (573 to 605) SpanInfo: {"start":573,"length":32}
195+
>foo4([2, "trimmer", "trimming"])
196+
>:=> (line 25, col 0) to (line 25, col 32)
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
2+
1 >declare var console: {
3+
4+
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
5+
--------------------------------
6+
2 > log(msg: any): void;
7+
8+
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
9+
--------------------------------
10+
3 >}
11+
12+
~~ => Pos: (48 to 49) SpanInfo: undefined
13+
--------------------------------
14+
4 >type Robot = [string, [string, string]];
15+
16+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 90) SpanInfo: undefined
17+
--------------------------------
18+
5 >var robotA: Robot = ["trimmer", ["trimming", "edging"]];
19+
20+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (91 to 147) SpanInfo: {"start":91,"length":55}
21+
>var robotA: Robot = ["trimmer", ["trimming", "edging"]]
22+
>:=> (line 5, col 0) to (line 5, col 55)
23+
--------------------------------
24+
6 >function foo1([, skillA]: Robot) {
25+
26+
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: {"start":187,"length":19}
27+
>console.log(skillA)
28+
>:=> (line 7, col 4) to (line 7, col 23)
29+
6 >function foo1([, skillA]: Robot) {
30+
31+
~~~~~~~~~~ => Pos: (162 to 171) SpanInfo: {"start":165,"length":6}
32+
>skillA
33+
>:=> (line 6, col 17) to (line 6, col 23)
34+
6 >function foo1([, skillA]: Robot) {
35+
36+
~~~~~~~~~~~ => Pos: (172 to 182) SpanInfo: {"start":187,"length":19}
37+
>console.log(skillA)
38+
>:=> (line 7, col 4) to (line 7, col 23)
39+
--------------------------------
40+
7 > console.log(skillA);
41+
42+
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (183 to 207) SpanInfo: {"start":187,"length":19}
43+
>console.log(skillA)
44+
>:=> (line 7, col 4) to (line 7, col 23)
45+
--------------------------------
46+
8 >}
47+
48+
~~ => Pos: (208 to 209) SpanInfo: {"start":208,"length":1}
49+
>}
50+
>:=> (line 8, col 0) to (line 8, col 1)
51+
--------------------------------
52+
9 >function foo2([nameMB]: Robot) {
53+
54+
~~~~~~~~~~~~~~ => Pos: (210 to 223) SpanInfo: {"start":247,"length":19}
55+
>console.log(nameMB)
56+
>:=> (line 10, col 4) to (line 10, col 23)
57+
9 >function foo2([nameMB]: Robot) {
58+
59+
~~~~~~~~ => Pos: (224 to 231) SpanInfo: {"start":225,"length":6}
60+
>nameMB
61+
>:=> (line 9, col 15) to (line 9, col 21)
62+
9 >function foo2([nameMB]: Robot) {
63+
64+
~~~~~~~~~~~ => Pos: (232 to 242) SpanInfo: {"start":247,"length":19}
65+
>console.log(nameMB)
66+
>:=> (line 10, col 4) to (line 10, col 23)
67+
--------------------------------
68+
10 > console.log(nameMB);
69+
70+
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (243 to 267) SpanInfo: {"start":247,"length":19}
71+
>console.log(nameMB)
72+
>:=> (line 10, col 4) to (line 10, col 23)
73+
--------------------------------
74+
11 >}
75+
76+
~~ => Pos: (268 to 269) SpanInfo: {"start":268,"length":1}
77+
>}
78+
>:=> (line 11, col 0) to (line 11, col 1)
79+
--------------------------------
80+
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
81+
82+
~~~~~~~~~~~~~~ => Pos: (270 to 283) SpanInfo: {"start":341,"length":19}
83+
>console.log(nameMA)
84+
>:=> (line 13, col 4) to (line 13, col 23)
85+
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
86+
87+
~~~~~~~~ => Pos: (284 to 291) SpanInfo: {"start":285,"length":6}
88+
>nameMA
89+
>:=> (line 12, col 15) to (line 12, col 21)
90+
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
91+
92+
~~~~~~~~~~~~~~~~ => Pos: (292 to 307) SpanInfo: {"start":294,"length":13}
93+
>primarySkillA
94+
>:=> (line 12, col 24) to (line 12, col 37)
95+
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
96+
97+
~~~~~~~~~~~~~~~~~=> Pos: (308 to 324) SpanInfo: {"start":309,"length":15}
98+
>secondarySkillA
99+
>:=> (line 12, col 39) to (line 12, col 54)
100+
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
101+
102+
~=> Pos: (325 to 325) SpanInfo: {"start":293,"length":32}
103+
>[primarySkillA, secondarySkillA]
104+
>:=> (line 12, col 23) to (line 12, col 55)
105+
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
106+
107+
~~~~~~~~~~~=> Pos: (326 to 336) SpanInfo: {"start":341,"length":19}
108+
>console.log(nameMA)
109+
>:=> (line 13, col 4) to (line 13, col 23)
110+
--------------------------------
111+
13 > console.log(nameMA);
112+
113+
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (337 to 361) SpanInfo: {"start":341,"length":19}
114+
>console.log(nameMA)
115+
>:=> (line 13, col 4) to (line 13, col 23)
116+
--------------------------------
117+
14 >}
118+
119+
~~ => Pos: (362 to 363) SpanInfo: {"start":362,"length":1}
120+
>}
121+
>:=> (line 14, col 0) to (line 14, col 1)
122+
--------------------------------
123+
15 >function foo4([...multiRobotAInfo]: Robot) {
124+
125+
~~~~~~~~~~~~~~ => Pos: (364 to 377) SpanInfo: {"start":413,"length":28}
126+
>console.log(multiRobotAInfo)
127+
>:=> (line 16, col 4) to (line 16, col 32)
128+
15 >function foo4([...multiRobotAInfo]: Robot) {
129+
130+
~~~~~~~~~~~~~~~~~~~~ => Pos: (378 to 397) SpanInfo: {"start":379,"length":18}
131+
>...multiRobotAInfo
132+
>:=> (line 15, col 15) to (line 15, col 33)
133+
15 >function foo4([...multiRobotAInfo]: Robot) {
134+
135+
~~~~~~~~~~~ => Pos: (398 to 408) SpanInfo: {"start":413,"length":28}
136+
>console.log(multiRobotAInfo)
137+
>:=> (line 16, col 4) to (line 16, col 32)
138+
--------------------------------
139+
16 > console.log(multiRobotAInfo);
140+
141+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (409 to 442) SpanInfo: {"start":413,"length":28}
142+
>console.log(multiRobotAInfo)
143+
>:=> (line 16, col 4) to (line 16, col 32)
144+
--------------------------------
145+
17 >}
146+
147+
~~ => Pos: (443 to 444) SpanInfo: {"start":443,"length":1}
148+
>}
149+
>:=> (line 17, col 0) to (line 17, col 1)
150+
--------------------------------
151+
18 >foo1(robotA);
152+
153+
~~~~~~~~~~~~~~ => Pos: (445 to 458) SpanInfo: {"start":445,"length":12}
154+
>foo1(robotA)
155+
>:=> (line 18, col 0) to (line 18, col 12)
156+
--------------------------------
157+
19 >foo1(["roomba", ["vaccum", "mopping"]]);
158+
159+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (459 to 499) SpanInfo: {"start":459,"length":39}
160+
>foo1(["roomba", ["vaccum", "mopping"]])
161+
>:=> (line 19, col 0) to (line 19, col 39)
162+
--------------------------------
163+
20 >foo2(robotA);
164+
165+
~~~~~~~~~~~~~~ => Pos: (500 to 513) SpanInfo: {"start":500,"length":12}
166+
>foo2(robotA)
167+
>:=> (line 20, col 0) to (line 20, col 12)
168+
--------------------------------
169+
21 >foo2(["roomba", ["vaccum", "mopping"]]);
170+
171+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (514 to 554) SpanInfo: {"start":514,"length":39}
172+
>foo2(["roomba", ["vaccum", "mopping"]])
173+
>:=> (line 21, col 0) to (line 21, col 39)
174+
--------------------------------
175+
22 >foo3(robotA);
176+
177+
~~~~~~~~~~~~~~ => Pos: (555 to 568) SpanInfo: {"start":555,"length":12}
178+
>foo3(robotA)
179+
>:=> (line 22, col 0) to (line 22, col 12)
180+
--------------------------------
181+
23 >foo3(["roomba", ["vaccum", "mopping"]]);
182+
183+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (569 to 609) SpanInfo: {"start":569,"length":39}
184+
>foo3(["roomba", ["vaccum", "mopping"]])
185+
>:=> (line 23, col 0) to (line 23, col 39)
186+
--------------------------------
187+
24 >foo4(robotA);
188+
189+
~~~~~~~~~~~~~~ => Pos: (610 to 623) SpanInfo: {"start":610,"length":12}
190+
>foo4(robotA)
191+
>:=> (line 24, col 0) to (line 24, col 12)
192+
--------------------------------
193+
25 >foo4(["roomba", ["vaccum", "mopping"]]);
194+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (624 to 663) SpanInfo: {"start":624,"length":39}
195+
>foo4(["roomba", ["vaccum", "mopping"]])
196+
>:=> (line 25, col 0) to (line 25, col 39)

0 commit comments

Comments
 (0)