64d7bc5acf
Review URL: https://chromiumcodereview.appspot.com//10248007 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7101 260f80e4-7a28-3924-810f-c04153c831b5
40 lines
1.0 KiB
Dart
40 lines
1.0 KiB
Dart
// 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.
|
|
// Check that FallThroughError is thrown if switch clause does not terminate.
|
|
|
|
class SwitchFallthruTest {
|
|
static String test(int n) {
|
|
String result = "foo";
|
|
switch (n) {
|
|
case 0:
|
|
result = "zero";
|
|
break;
|
|
case 1:
|
|
result = "one";
|
|
// fall-through, throw implicit FallThroughError here.
|
|
case 9:
|
|
result = "nine";
|
|
// No implicit FallThroughError at end of switch statement.
|
|
}
|
|
return result;
|
|
}
|
|
|
|
static testMain() {
|
|
Expect.equals("zero", test(0));
|
|
bool fallthroughCaught = false;
|
|
try {
|
|
test(1);
|
|
} catch (FallThroughError e) {
|
|
fallthroughCaught = true;
|
|
}
|
|
Expect.equals(true, fallthroughCaught);
|
|
Expect.equals("nine", test(9));
|
|
Expect.equals("foo", test(99));
|
|
}
|
|
}
|
|
|
|
main() {
|
|
SwitchFallthruTest.testMain();
|
|
}
|