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 {}
