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