| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| class UnusedClass extends core::Object { |
| constructor •() → self::UnusedClass* |
| : super core::Object::•() { |
| core::print("Unused"); |
| } |
| 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 |
| } |
| abstract class UsedAsBaseClass extends core::Object { |
| synthetic constructor •() → self::UsedAsBaseClass* |
| : super core::Object::•() |
| ; |
| method usedInSubclass() → void { |
| core::print("Unused"); |
| } |
| method calledFromB() → void { |
| this.{self::UsedAsBaseClass::calledFromSubclass}(){() →* void}; |
| } |
| method calledFromSubclass() → void { |
| core::print("Unused"); |
| } |
| 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 UsedAsInterface extends core::Object { |
| synthetic constructor •() → self::UsedAsInterface* |
| : super core::Object::•() |
| ; |
| method usedInSubclass() → void { |
| core::print("Unused"); |
| } |
| 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 InstantiatedButMethodsUnused extends core::Object { |
| synthetic constructor •() → self::InstantiatedButMethodsUnused* |
| : super core::Object::•() |
| ; |
| method usedInSubclass() → void { |
| core::print("Unused"); |
| } |
| 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 ClassA extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused { |
| synthetic constructor •() → self::ClassA* |
| : super self::UsedAsBaseClass::•() |
| ; |
| method usedInSubclass() → void { |
| core::print("A"); |
| } |
| } |
| class ClassB extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused { |
| synthetic constructor •() → self::ClassB* |
| : super self::UsedAsBaseClass::•() |
| ; |
| method usedInSubclass() → void { |
| core::print("B"); |
| this.{self::UsedAsBaseClass::calledFromB}(){() →* void}; |
| } |
| method calledFromSubclass() → void {} |
| } |
| static method baseClassCall(self::UsedAsBaseClass* object) → void { |
| object.{self::UsedAsBaseClass::usedInSubclass}(){() →* void}; |
| } |
| static method interfaceCall(self::UsedAsInterface* object) → void { |
| object.{self::UsedAsInterface::usedInSubclass}(){() →* void}; |
| } |
| static method exactCallA(self::ClassA* object) → void { |
| object.{self::ClassA::usedInSubclass}(){() →* void}; |
| } |
| static method exactCallB(self::ClassB* object) → void { |
| object.{self::ClassB::usedInSubclass}(){() →* void}; |
| } |
| static method unusedTopLevel() → dynamic { |
| core::print("Unused"); |
| } |
| static method usedTopLevel() → dynamic {} |
| static method main() → dynamic { |
| self::usedTopLevel(); |
| self::ClassA* a = new self::ClassA::•(); |
| self::exactCallA(a); |
| self::baseClassCall(a); |
| self::interfaceCall(a); |
| self::ClassB* b = new self::ClassB::•(); |
| self::exactCallB(b); |
| self::baseClassCall(b); |
| self::interfaceCall(b); |
| new self::InstantiatedButMethodsUnused::•(); |
| } |