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 {
  dynamic f = (core::Object* x) → dynamic => null;
  core::String* y = f.call(42);
  f = (dynamic x) → dynamic => "hello";
  dynamic g = null;
  g = "hello";
  g.foo();
  self::h = "hello";
  self::h.foo();
  self::foo((dynamic x) → dynamic => null);
  self::foo((dynamic x) → dynamic => throw "not implemented");
}
static method main() → dynamic {}
