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

static field dynamic v = self::f<core::int*>(() → dynamic {
  return 1;
});
static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
  return <self::f::T*>[g.call()];
static method main() → dynamic {
  self::v;
}
