library;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/non_pattern_case_among_pattern_cases_in_switch.dart:10:14: Error: The variable 'a' is available in some, but not all cases that share this body.
//       return a; // Error.
//              ^
//
import self as self;
import "dart:core" as core;

static method test(dynamic x) → dynamic {
  #L1:
  {
    final synthesized dynamic #0#0 = x;
    dynamic #t1;
    {
      lowered final hoisted dynamic a#case#0;
      lowered final hoisted dynamic a#case#1;
      if((let final dynamic #t2 = a#case#0 = #0#0 in true) && a#case#0{dynamic}.>(0) as{TypeError} core::bool && (let final dynamic #t3 = #t1 = a#case#0 in true) || #C1 =={core::num::==}{(core::Object) → core::bool} #0#0 || (let final dynamic #t4 = a#case#1 = #0#0 in true) && (let final dynamic #t5 = #t1 = a#case#1 in true)) {
        final dynamic a = #t1{dynamic};
        {
          return a;
        }
      }
    }
    {
      {
        {
          return null;
        }
      }
    }
  }
}

constants  {
  #C1 = 0
}
