library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

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