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

typedef F<T extends core::Object = dynamic> = (T) → void;
class C<T extends core::Object = dynamic> extends core::Object {
  field (self::C::T) → void y = null;
  synthetic constructor •() → self::C<self::C::T>
    : super core::Object::•()
    ;
  method f(generic-covariant-impl self::C::T value) → void {
    this.{self::C::y}(value);
  }
}
static method g(self::C<core::num> c) → void {
  c.y(1.5);
}
static method main() → void {}
