| Index: tests/language/src/LabelTest.dart
|
| diff --git a/tests/language/src/LabelTest.dart b/tests/language/src/LabelTest.dart
|
| deleted file mode 100644
|
| index e9affb2cbc3b379a22eca96207867c7dcc6bb7bf..0000000000000000000000000000000000000000
|
| --- a/tests/language/src/LabelTest.dart
|
| +++ /dev/null
|
| @@ -1,316 +0,0 @@
|
| -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -// Dart test program to test check that we can parse labels.
|
| -
|
| -
|
| -class Helper {
|
| -
|
| - static int ticks;
|
| -
|
| - // Helper function to prevent endless loops in case labels or
|
| - // break/continue is broken.
|
| - static doAgain() {
|
| - ++ticks;
|
| - if (ticks > 300) {
|
| - // obfuscating man's assert(false)
|
| - Expect.equals(true, false);
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - static test1() {
|
| - var i = 1;
|
| - while (doAgain()) {
|
| - if (i > 0) break;
|
| - return 0;
|
| - }
|
| - return 111;
|
| - }
|
| -
|
| - static test2() {
|
| - // Make sure we break out to default label.
|
| - var i = 1;
|
| - L: while (doAgain()) { // unused label
|
| - if (i > 0) break;
|
| - return 0;
|
| - }
|
| - return 111;
|
| - }
|
| -
|
| - static test3() {
|
| - // Make sure we break out of outer loop.
|
| - var i = 1;
|
| - L: while (doAgain()) {
|
| - while (doAgain()) {
|
| - if (i > 0) break L;
|
| - return 0;
|
| - }
|
| - return 1;
|
| - }
|
| - return 111;
|
| - }
|
| -
|
| - static test4() {
|
| - // Make sure we break out of inner loop.
|
| - var i = 100;
|
| - L: while (doAgain()) { // unused label
|
| - while (doAgain()) {
|
| - if (i > 0) break;
|
| - return 0;
|
| - }
|
| - return 111;
|
| - }
|
| - return 1;
|
| - }
|
| -
|
| - static test5() {
|
| - // Make sure we jump to loop condition.
|
| - var i = 10;
|
| - while (i > 0) {
|
| - i--;
|
| - if (true) continue; // without the if the following return is dead code.
|
| - return 0;
|
| - }
|
| - return 111;
|
| - }
|
| -
|
| - static test6() {
|
| - // Make sure we jump to loop condition.
|
| - L: for (int i = 10; i > 0; i--) { // unreferenced label, should warn
|
| - if (true) continue; // without the if the following return is dead code.
|
| - return 0;
|
| - }
|
| - // Make sure this L does not conflict with previous L.
|
| - var k = 20;
|
| - L: while (doAgain()) {
|
| - L0: while (doAgain()) break L; // unreferenced label L0, should warn
|
| - return 1;
|
| - }
|
| - return 111;
|
| - }
|
| -
|
| - static test7() {
|
| - // Just weird stuff.
|
| - var i = 10;
|
| - L: do {
|
| - L: while (doAgain()) {
|
| - if (true) break L; // without the if the following line is dead code.
|
| - continue L;
|
| - }
|
| - i = 0;
|
| - continue L;
|
| - } while (i == 10 && doAgain());
|
| - return 111;
|
| - }
|
| -
|
| - static test8() {
|
| - L: while (false) {
|
| - var L = 33; // OK, shouldn't collide with label.
|
| - if (true) break L;
|
| - }
|
| - return 111;
|
| - }
|
| -
|
| - static test9() {
|
| - var i = 111;
|
| - L1: if (i == 0) { // unreferenced label, should warn
|
| - return 0;
|
| - }
|
| -
|
| - L2: while (i == 0) { // unreferenced label, should warn
|
| - return 0;
|
| - }
|
| -
|
| - L3: // useless label, should warn
|
| - return i;
|
| - }
|
| -
|
| - // Labels should be allowed on block/if/for/switch/while/do stmts.
|
| - static test10() {
|
| - int i = 111;
|
| - // block
|
| - while (doAgain()) {
|
| - L: {
|
| - while (doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - }
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - while(doAgain()) {
|
| - L: if (doAgain()) {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - }
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - while(doAgain()) {
|
| - L: for (;doAgain();) {
|
| - while (doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - }
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - L: for (i in [111]) {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - L: for (var j in [111]) {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - while(doAgain()) {
|
| - L: switch (i) {
|
| - case 111:
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - default:
|
| - i--;
|
| - }
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - while(doAgain()) {
|
| - L: do {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - } while (doAgain());
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - while(doAgain()) {
|
| - L: try {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - } finally {
|
| - }
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - return i;
|
| - }
|
| -
|
| - static test11() {
|
| - // Kind of odd, but is valid and shouldn't be flagged as useless either.
|
| - L: break L;
|
| - return 111;
|
| - }
|
| -
|
| - static test12() {
|
| - int i = 111;
|
| -
|
| - // label the inner block on compound stmts
|
| - if (true) L: {
|
| - while (doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - // loop will execute each time, but won't execute code below the break
|
| - var forCount = 0;
|
| - for (forCount = 0 ; forCount < 2 ; forCount++) L: {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| - Expect.equals(forCount, 2);
|
| -
|
| - for (i in [111]) L: {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - for (var j in [111]) L: {
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - if (false) {
|
| - } else L: {
|
| - while (doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - }
|
| - Expect.equals(111, i);
|
| -
|
| - int whileCount = 0;
|
| - while (whileCount < 2) L: {
|
| - whileCount++;
|
| - while(doAgain()) {
|
| - break L;
|
| - }
|
| - i--;
|
| - break;
|
| - }
|
| - Expect.equals(111, i);
|
| - Expect.equals(2, whileCount);
|
| -
|
| - return i;
|
| - }
|
| -}
|
| -
|
| -class LabelTest {
|
| - static testMain() {
|
| - Helper.ticks = 0;
|
| - Expect.equals(111, Helper.test1());
|
| - Expect.equals(111, Helper.test2());
|
| - Expect.equals(111, Helper.test3());
|
| - Expect.equals(111, Helper.test4());
|
| - Expect.equals(111, Helper.test5());
|
| - Expect.equals(111, Helper.test6());
|
| - Expect.equals(111, Helper.test7());
|
| - Expect.equals(111, Helper.test8());
|
| - Expect.equals(111, Helper.test9());
|
| - Expect.equals(111, Helper.test10());
|
| - Expect.equals(111, Helper.test11());
|
| - Expect.equals(111, Helper.test12());
|
| - }
|
| -}
|
| -
|
| -main() {
|
| - LabelTest.testMain();
|
| -}
|
|
|