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

static method test(dynamic x1, dynamic x2) → dynamic {
  {
    final synthesized dynamic #0#0 = x1;
    {
      hoisted dynamic y;
      if(true) {
        y = #0#0;
        {}
      }
    }
  }
  {
    final synthesized dynamic #1#0 = x1;
    {
      hoisted dynamic y;
      if(true) {
        y = #1#0;
        {
          {
            final synthesized dynamic #2#0 = x2;
            {
              hoisted dynamic y;
              if(true) {
                y = #2#0;
                {
                  return y;
                }
              }
            }
          }
        }
      }
    }
  }
  throw "Expected to never reach this line of the program.";
}
static method main() → dynamic {
  self::expectEquals(self::test(1, 2), 2);
}
static method expectEquals(dynamic x, dynamic y) → dynamic {
  if(!(x =={core::Object::==}{(core::Object) → core::bool} y)) {
    throw "Expected ${x} and ${y} to be equal.";
  }
}
