library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/fallthrough.dart:10:5: Error: Switch case may fall through to the next case.
//     case 3:
//     ^
//
// pkg/front_end/testcases/general/fallthrough.dart:14:5: Error: Switch case may fall through to the next case.
//     case 6:
//     ^
//
import self as self;
import "dart:core" as core;

static method main(core::List<core::String*>* args) → void {
  core::int* x = args.{core::List::length}{core::int*};
  #L1:
  switch(x) {
    #L2:
    case #C1:
      {
        x = 4;
        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 10);
      }
    #L3:
    case #C2:
      {
        break #L1;
      }
    #L4:
    case #C3:
    case #C4:
      {
        if(args.{core::List::[]}(0){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "") {
          break #L1;
        }
        else {
          return;
        }
        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 14);
      }
    #L5:
    case #C5:
      {}
  }
}

constants  {
  #C1 = 3
  #C2 = 5
  #C3 = 6
  #C4 = 7
  #C5 = 4
}
