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

static field dynamic h = null;
static method foo((core::Object*) →* core::int* f) → void {}
static method test() → dynamic {
  (core::Object*) →* core::Null* f = (core::Object* x) → core::Null* => null;
  core::String* y = f.call(42);
  f = (core::Object* x) → core::Null* => "hello" as{TypeError} core::Null*;
  dynamic g = null;
  g = "hello";
  g.foo();
  self::h = "hello";
  self::h.foo();
  self::foo((core::Object* x) → core::Null* => null);
  self::foo((core::Object* x) → <BottomType>=> throw "not implemented");
}
static method main() → dynamic {}
