// 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 the value of expression e is not an instance of
/// the same type as the constants of case clauses, then it is a compile error
/// @author msyabro


main() {
   switch (1) {
     case '1': break;
//        ^
// [analyzer] unspecified
// [cfe] unspecified
     case '2': break;
//        ^
// [analyzer] unspecified
// [cfe] unspecified
     default:
   }

  switch ('abc') {
    case 1: break;
//       ^
// [analyzer] unspecified
// [cfe] unspecified
  }
}
