library; import self as self; import "dart:core" as core; class A extends core::Object { synthetic constructor •() → self::A* : super core::Object::•() ; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::== abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType } class B extends core::Object { synthetic constructor •() → self::B* : super core::Object::•() ; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::== abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType } class AB1 extends self::A implements self::B { synthetic constructor •() → self::AB1* : super self::A::•() ; } class AB2 extends self::A implements self::B { synthetic constructor •() → self::AB2* : super self::A::•() ; } class BA1 extends self::B implements self::A { synthetic constructor •() → self::BA1* : super self::B::•() ; } class BA2 extends self::B implements self::A { synthetic constructor •() → self::BA2* : super self::B::•() ; } static method takeSubclassOfA(dynamic obj) → dynamic {} static method takeSubclassOfB(dynamic obj) → dynamic {} static method main() → dynamic { self::takeSubclassOfA(new self::AB1::•()); self::takeSubclassOfA(new self::AB2::•()); self::takeSubclassOfB(new self::BA1::•()); self::takeSubclassOfB(new self::BA2::•()); }