| // 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. |
| |
| /// @assertion Execution of a switch statement of the form |
| /// switch (e) { |
| /// label11 … label1j1 case e1: s1 |
| /// … |
| /// labeln1 ..labelnjn case en: sn |
| /// label(n+1)1 ..label(n+1)jn default: sn+1 |
| /// } |
| /// or the form |
| /// switch (e) { |
| /// label11 … label1j1 case e1: s1 |
| /// … |
| /// labeln1 ..labelnjn case en: sn |
| /// } |
| /// proceeds as follows: |
| /// The statement var id = e; is evaluated, where id is a variable whose name is |
| /// distinct from any other variable in the program. It is a compile time error |
| /// if the value of e is not an instance of the same type as the constants |
| /// e1 … en. |
| /// Next, the case clause case e1: s1 is executed if it exists. If case e1: s1 |
| /// does not exist, then if there is a default clause it is executed by |
| /// executing sn+1. |
| /// @description Checks that if a switch statement does not have any case |
| /// clauses, the default clause is executed. |
| /// @author msyabro |
| |
| import '../../../Utils/expect.dart'; |
| |
| foo(p) { |
| switch (p) { |
| default: return 1; |
| } |
| } |
| |
| main() { |
| Expect.equals(1, foo(1)); |
| Expect.equals(1, foo(null)); |
| Expect.equals(1, foo('')); |
| } |