library;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/issue51636.dart:5:23: Error: Undefined name 'unknownName'.
// int f<A>() => switch (unknownName) {
//                       ^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;

static method f<A extends core::Object? = dynamic>() → core::int
  return block {
    core::int #t1;
    final synthesized invalid-type #0#0 = invalid-expression "pkg/front_end/testcases/patterns/issue51636.dart:5:23: Error: Undefined name 'unknownName'.
int f<A>() => switch (unknownName) {
                      ^^^^^^^^^^^";
    synthesized core::int #0#2;
    synthesized core::bool #0#2#isSet = false;
    #L1:
    {
      {
        if(#0#0 is core::List<self::f::A%> && (#0#2#isSet ?{core::int} #0#2{core::int} : let final core::bool #t2 = #0#2#isSet = true in #0#2 = #0#0.{core::List::length}{core::int}).{core::num::<=}(#C1){(core::num) → core::bool}) {
          #t1 = 1;
          break #L1;
        }
      }
      {
        hoisted self::f::A% x;
        hoisted core::List<self::f::A%> xs;
        if((#0#2#isSet ?{core::int} #0#2{core::int} : let final core::bool #t3 = #0#2#isSet = true in #0#2 = #0#0.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) {
          x = #0#0.{core::List::[]}(0){(core::int) → self::f::A%};
          xs = #0#0.{core::List::sublist}(1){(core::int, [core::int?]) → core::List<self::f::A%>};
          #t1 = 2;
          break #L1;
        }
      }
    }
  } =>#t1;
static method main() → void {}

constants  {
  #C1 = 0
  #C2 = 1
}
