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

class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  method m(core::int n) → void
    ;
}
abstract class I extends core::Object {
  synthetic constructor •() → self::I
    ;
  abstract method m(covariant-by-declaration core::num n) → void;
}
class C extends self::A implements self::I {
  synthetic constructor •() → self::C
    ;
  forwarding-stub method m(covariant-by-declaration core::num n) → void
    return super.{self::A::m}(n as core::int);
}
static method main() → void
  ;
static method throws(() → void f) → dynamic
  ;
