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

static field dynamic x = self::run<dynamic>(self::printRunning);
static method run<T extends core::Object = dynamic>(() → self::run::T f) → self::run::T {
  core::print("running");
  self::run::T t = f.call();
  core::print("done running");
  return t;
}
static method printRunning() → void {
  core::print("running");
}
static method main() → dynamic {
  function printRunning() → void {
    core::print("running");
  }
  dynamic x = self::run<dynamic>(printRunning);
  void y = self::run<void>(printRunning);
  x = 123;
  x = "hi";
  y = 123;
  y = "hi";
}
