OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 // Check that FallThroughError is thrown if switch clause does not terminate. | |
5 | |
6 class SwitchFallthruTest { | |
7 static String test(int n) { | |
8 String result = "foo"; | |
9 switch (n) { | |
10 case 0: | |
11 result = "zero"; | |
12 break; | |
13 case 1: | |
14 result = "one"; | |
15 // fall-through, throw implicit FallThroughError here. | |
16 case 9: | |
17 result = "nine"; | |
18 // No implicit FallThroughError at end of switch statement. | |
19 } | |
20 return result; | |
21 } | |
22 | |
23 static testMain() { | |
24 Expect.equals("zero", test(0)); | |
25 bool fallthroughCaught = false; | |
26 try { | |
27 test(1); | |
28 } catch (FallThroughError e) { | |
29 fallthroughCaught = true; | |
30 } | |
31 Expect.equals(true, fallthroughCaught); | |
32 Expect.equals("nine", test(9)); | |
33 Expect.equals("foo", test(99)); | |
34 } | |
35 } | |
36 | |
37 main() { | |
38 SwitchFallthruTest.testMain(); | |
39 } | |
OLD | NEW |