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

static field dynamic x = self::run<dynamic>(#C1);
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";
}

constants  {
  #C1 = tearoff self::printRunning
}
