Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Side by Side Diff: tests/language_strong/label_test.dart

Issue 2771453003: Format all tests. (Closed)
Patch Set: Format files Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // Dart test program to test check that we can parse labels. 4 // Dart test program to test check that we can parse labels.
5 5
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 7
8
9 class Helper { 8 class Helper {
10
11 static int ticks; 9 static int ticks;
12 10
13 // Helper function to prevent endless loops in case labels or 11 // Helper function to prevent endless loops in case labels or
14 // break/continue is broken. 12 // break/continue is broken.
15 static doAgain() { 13 static doAgain() {
16 ++ticks; 14 ++ticks;
17 if (ticks > 300) { 15 if (ticks > 300) {
18 // obfuscating man's assert(false) 16 // obfuscating man's assert(false)
19 Expect.equals(true, false); 17 Expect.equals(true, false);
20 } 18 }
21 return true; 19 return true;
22 } 20 }
23 21
24 static test1() { 22 static test1() {
25 var i = 1; 23 var i = 1;
26 while (doAgain()) { 24 while (doAgain()) {
27 if (i > 0) break; 25 if (i > 0) break;
28 return 0; 26 return 0;
29 } 27 }
30 return 111; 28 return 111;
31 } 29 }
32 30
33 static test2() { 31 static test2() {
34 // Make sure we break out to default label. 32 // Make sure we break out to default label.
35 var i = 1; 33 var i = 1;
36 L: while (doAgain()) { // unused label 34 L:
35 while (doAgain()) {
36 // unused label
37 if (i > 0) break; 37 if (i > 0) break;
38 return 0; 38 return 0;
39 } 39 }
40 return 111; 40 return 111;
41 } 41 }
42 42
43 static test3() { 43 static test3() {
44 // Make sure we break out of outer loop. 44 // Make sure we break out of outer loop.
45 var i = 1; 45 var i = 1;
46 L: while (doAgain()) { 46 L:
47 while (doAgain()) {
47 while (doAgain()) { 48 while (doAgain()) {
48 if (i > 0) break L; 49 if (i > 0) break L;
49 return 0; 50 return 0;
50 } 51 }
51 return 1; 52 return 1;
52 } 53 }
53 return 111; 54 return 111;
54 } 55 }
55 56
56 static test4() { 57 static test4() {
57 // Make sure we break out of inner loop. 58 // Make sure we break out of inner loop.
58 var i = 100; 59 var i = 100;
59 L: while (doAgain()) { // unused label 60 L:
61 while (doAgain()) {
62 // unused label
60 while (doAgain()) { 63 while (doAgain()) {
61 if (i > 0) break; 64 if (i > 0) break;
62 return 0; 65 return 0;
63 } 66 }
64 return 111; 67 return 111;
65 } 68 }
66 return 1; 69 return 1;
67 } 70 }
68 71
69 static test5() { 72 static test5() {
70 // Make sure we jump to loop condition. 73 // Make sure we jump to loop condition.
71 var i = 10; 74 var i = 10;
72 while (i > 0) { 75 while (i > 0) {
73 i--; 76 i--;
74 if (true) continue; // without the if the following return is dead code. 77 if (true) continue; // without the if the following return is dead code.
75 return 0; 78 return 0;
76 } 79 }
77 return 111; 80 return 111;
78 } 81 }
79 82
80 static test6() { 83 static test6() {
81 // Make sure we jump to loop condition. 84 // Make sure we jump to loop condition.
82 L: for (int i = 10; i > 0; i--) { // unreferenced label, should warn 85 L:
86 for (int i = 10; i > 0; i--) {
87 // unreferenced label, should warn
83 if (true) continue; // without the if the following return is dead code. 88 if (true) continue; // without the if the following return is dead code.
84 return 0; 89 return 0;
85 } 90 }
86 // Make sure this L does not conflict with previous L. 91 // Make sure this L does not conflict with previous L.
87 var k = 20; 92 var k = 20;
88 L: while (doAgain()) { 93 L:
89 L0: while (doAgain()) break L; // unreferenced label L0, should warn 94 while (doAgain()) {
95 L0:
96 while (doAgain()) break L; // unreferenced label L0, should warn
90 return 1; 97 return 1;
91 } 98 }
92 return 111; 99 return 111;
93 } 100 }
94 101
95 static test7() { 102 static test7() {
96 // Just weird stuff. 103 // Just weird stuff.
97 var i = 10; 104 var i = 10;
98 L: do { 105 L:
99 L: while (doAgain()) { 106 do {
107 L:
108 while (doAgain()) {
100 if (true) break L; // without the if the following line is dead code. 109 if (true) break L; // without the if the following line is dead code.
101 continue L; 110 continue L;
102 } 111 }
103 i = 0; 112 i = 0;
104 continue L; 113 continue L;
105 } while (i == 10 && doAgain()); 114 } while (i == 10 && doAgain());
106 return 111; 115 return 111;
107 } 116 }
108 117
109 static test8() { 118 static test8() {
110 L: while (false) { 119 L:
120 while (false) {
111 var L = 33; // OK, shouldn't collide with label. 121 var L = 33; // OK, shouldn't collide with label.
112 if (true) break L; 122 if (true) break L;
113 } 123 }
114 return 111; 124 return 111;
115 } 125 }
116 126
117 static test9() { 127 static test9() {
118 var i = 111; 128 var i = 111;
119 L1: if (i == 0) { // unreferenced label, should warn 129 L1:
130 if (i == 0) {
131 // unreferenced label, should warn
120 return 0; 132 return 0;
121 } 133 }
122 134
123 L2: while (i == 0) { // unreferenced label, should warn 135 L2:
136 while (i == 0) {
137 // unreferenced label, should warn
124 return 0; 138 return 0;
125 } 139 }
126 140
127 L3: // useless label, should warn 141 L3: // useless label, should warn
128 return i; 142 return i;
129 } 143 }
130 144
131 // Labels should be allowed on block/if/for/switch/while/do stmts. 145 // Labels should be allowed on block/if/for/switch/while/do stmts.
132 static test10() { 146 static test10() {
133 int i = 111; 147 int i = 111;
134 // block 148 // block
135 while (doAgain()) { 149 while (doAgain()) {
136 L: { 150 L:
151 {
137 while (doAgain()) { 152 while (doAgain()) {
138 break L; 153 break L;
139 } 154 }
140 i--; 155 i--;
141 } 156 }
142 break; 157 break;
143 } 158 }
144 Expect.equals(111, i); 159 Expect.equals(111, i);
145 160
146 while(doAgain()) { 161 while (doAgain()) {
147 L: if (doAgain()) { 162 L:
148 while(doAgain()) { 163 if (doAgain()) {
164 while (doAgain()) {
149 break L; 165 break L;
150 } 166 }
151 i--; 167 i--;
152 } 168 }
153 break; 169 break;
154 } 170 }
155 Expect.equals(111, i); 171 Expect.equals(111, i);
156 172
157 while(doAgain()) { 173 while (doAgain()) {
158 L: for (;doAgain();) { 174 L:
175 for (; doAgain();) {
159 while (doAgain()) { 176 while (doAgain()) {
160 break L; 177 break L;
161 } 178 }
162 i--; 179 i--;
163 } 180 }
164 break; 181 break;
165 } 182 }
166 Expect.equals(111, i); 183 Expect.equals(111, i);
167 184
168 L: for (i in [111]) { 185 L:
169 while(doAgain()) { 186 for (i in [111]) {
170 break L; 187 while (doAgain()) {
171 } 188 break L;
172 i--; 189 }
173 break; 190 i--;
174 }
175 Expect.equals(111, i);
176
177 L: for (var j in [111]) {
178 while(doAgain()) {
179 break L;
180 }
181 i--;
182 break; 191 break;
183 } 192 }
184 Expect.equals(111, i); 193 Expect.equals(111, i);
185 194
186 while(doAgain()) { 195 L:
187 L: switch (i) { 196 for (var j in [111]) {
197 while (doAgain()) {
198 break L;
199 }
200 i--;
201 break;
202 }
203 Expect.equals(111, i);
204
205 while (doAgain()) {
206 L:
207 switch (i) {
188 case 111: 208 case 111:
189 while(doAgain()) { 209 while (doAgain()) {
190 break L; 210 break L;
191 } 211 }
192 default: 212 default:
193 i--; 213 i--;
194 } 214 }
195 break; 215 break;
196 } 216 }
197 Expect.equals(111, i); 217 Expect.equals(111, i);
198 218
199 while(doAgain()) { 219 while (doAgain()) {
200 L: do { 220 L:
201 while(doAgain()) { 221 do {
222 while (doAgain()) {
202 break L; 223 break L;
203 } 224 }
204 i--; 225 i--;
205 } while (doAgain()); 226 } while (doAgain());
206 break; 227 break;
207 } 228 }
208 Expect.equals(111, i); 229 Expect.equals(111, i);
209 230
210 while(doAgain()) { 231 while (doAgain()) {
211 L: try { 232 L:
212 while(doAgain()) { 233 try {
234 while (doAgain()) {
213 break L; 235 break L;
214 } 236 }
215 i--; 237 i--;
216 } finally { 238 } finally {}
217 }
218 break; 239 break;
219 } 240 }
220 Expect.equals(111, i); 241 Expect.equals(111, i);
221 242
222 return i; 243 return i;
223 } 244 }
224 245
225 static test11() { 246 static test11() {
226 // Kind of odd, but is valid and shouldn't be flagged as useless either. 247 // Kind of odd, but is valid and shouldn't be flagged as useless either.
227 L: break L; 248 L:
228 return 111; 249 break L;
229 } 250 return 111;
251 }
230 252
231 static test12() { 253 static test12() {
232 int i = 111; 254 int i = 111;
233 255
234 // label the inner block on compound stmts 256 // label the inner block on compound stmts
235 if (true) L: { 257 if (true)
236 while (doAgain()) { 258 L:
237 break L; 259 {
238 } 260 while (doAgain()) {
239 i--; 261 break L;
240 } 262 }
241 Expect.equals(111, i); 263 i--;
264 }
265 Expect.equals(111, i);
242 266
243 // loop will execute each time, but won't execute code below the break 267 // loop will execute each time, but won't execute code below the break
244 var forCount = 0; 268 var forCount = 0;
245 for (forCount = 0 ; forCount < 2 ; forCount++) L: { 269 for (forCount = 0; forCount < 2; forCount++)
246 while(doAgain()) { 270 L:
247 break L; 271 {
248 } 272 while (doAgain()) {
249 i--; 273 break L;
250 break;
251 }
252 Expect.equals(111, i);
253 Expect.equals(forCount, 2);
254
255 for (i in [111]) L: {
256 while(doAgain()) {
257 break L;
258 }
259 i--;
260 break;
261 }
262 Expect.equals(111, i);
263
264 for (var j in [111]) L: {
265 while(doAgain()) {
266 break L;
267 }
268 i--;
269 break;
270 }
271 Expect.equals(111, i);
272
273 if (false) {
274 } else L: {
275 while (doAgain()) {
276 break L;
277 }
278 i--;
279 }
280 Expect.equals(111, i);
281
282 int whileCount = 0;
283 while (whileCount < 2) L: {
284 whileCount++;
285 while(doAgain()) {
286 » break L;
287 } 274 }
288 i--; 275 i--;
289 break; 276 break;
290 } 277 }
291 Expect.equals(111, i); 278 Expect.equals(111, i);
292 Expect.equals(2, whileCount); 279 Expect.equals(forCount, 2);
293 280
294 return i; 281 for (i in [111])
295 } 282 L:
283 {
284 while (doAgain()) {
285 break L;
286 }
287 i--;
288 break;
289 }
290 Expect.equals(111, i);
291
292 for (var j in [111])
293 L:
294 {
295 while (doAgain()) {
296 break L;
297 }
298 i--;
299 break;
300 }
301 Expect.equals(111, i);
302
303 if (false) {} else
304 L:
305 {
306 while (doAgain()) {
307 break L;
308 }
309 i--;
310 }
311 Expect.equals(111, i);
312
313 int whileCount = 0;
314 while (whileCount < 2)
315 L:
316 {
317 whileCount++;
318 while (doAgain()) {
319 break L;
320 }
321 i--;
322 break;
323 }
324 Expect.equals(111, i);
325 Expect.equals(2, whileCount);
326
327 return i;
328 }
296 } 329 }
297 330
298 class LabelTest { 331 class LabelTest {
299 static testMain() { 332 static testMain() {
300 Helper.ticks = 0; 333 Helper.ticks = 0;
301 Expect.equals(111, Helper.test1()); 334 Expect.equals(111, Helper.test1());
302 Expect.equals(111, Helper.test2()); 335 Expect.equals(111, Helper.test2());
303 Expect.equals(111, Helper.test3()); 336 Expect.equals(111, Helper.test3());
304 Expect.equals(111, Helper.test4()); 337 Expect.equals(111, Helper.test4());
305 Expect.equals(111, Helper.test5()); 338 Expect.equals(111, Helper.test5());
306 Expect.equals(111, Helper.test6()); 339 Expect.equals(111, Helper.test6());
307 Expect.equals(111, Helper.test7()); 340 Expect.equals(111, Helper.test7());
308 Expect.equals(111, Helper.test8()); 341 Expect.equals(111, Helper.test8());
309 Expect.equals(111, Helper.test9()); 342 Expect.equals(111, Helper.test9());
310 Expect.equals(111, Helper.test10()); 343 Expect.equals(111, Helper.test10());
311 Expect.equals(111, Helper.test11()); 344 Expect.equals(111, Helper.test11());
312 Expect.equals(111, Helper.test12()); 345 Expect.equals(111, Helper.test12());
313 } 346 }
314 } 347 }
315 348
316 main() { 349 main() {
317 LabelTest.testMain(); 350 LabelTest.testMain();
318 } 351 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698