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

class A<X extends core::num> extends core::Object {
  synthetic constructor •() → self::A<self::A::X>
    : super core::Object::•()
    ;
  method f<generic-covariant-impl Y extends self::A::X>(self::A::f::Y y) → void {}
}
static method expectThrows(() → void f) → dynamic {
  try {
    f(){() → void};
  }
  on core::Object catch(final core::Object e) {
    return;
  }
  throw "Expected an exception to be thrown!";
}
static method main() → dynamic {
  self::A<core::num> a = new self::A::•<core::int>();
  self::expectThrows(() → void {
    <Y extends core::num>(Y) → void f = a.{self::A::f}{<generic-covariant-impl Y extends core::num>(Y) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <generic-covariant-impl Y extends core::num>(Y) → void;
  });
}
