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

class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
  operator +(covariant-by-declaration core::int a) → dynamic
    return null;
}
class B extends core::Object {
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
  operator +(dynamic b) → dynamic
    return null;
}
abstract class C extends core::Object implements self::A, self::B {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  abstract forwarding-stub operator +(covariant-by-declaration dynamic b) → dynamic;
}
class D extends core::Object {
  synthetic constructor •() → self::D
    : super core::Object::•()
    ;
  operator +(dynamic d) → dynamic
    return null;
}
class E extends self::D {
  synthetic constructor •() → self::E
    : super self::D::•()
    ;
  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int) → dynamic */ +(covariant-by-declaration dynamic e) → dynamic
    return super.{self::D::+}(e);
}
static method main() → dynamic {}
