library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;

static method use(dynamic o) → dynamic {}
static method f(core::List<core::int> list) → () → void {
  return block {
    () → void #t1;
    final synthesized core::List<core::int> #0#0 = list;
    #L1:
    {
      {
        final hoisted core::int item;
        if(#0#0.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1) {
          item = #0#0.{core::List::[]}(0){(core::int) → core::int};
          #t1 = () → void {
            self::use(item);
          };
          break #L1;
        }
      }
      {
        if(true) {
          #t1 = () → void {};
          break #L1;
        }
      }
      throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
    }
  } =>#t1;
}

constants  {
  #C1 = 1
}
