|  | library; | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | class UnusedClass extends core::Object { | 
|  | constructor •() → self::UnusedClass | 
|  | ; | 
|  | } | 
|  | abstract class UsedAsBaseClass extends core::Object { | 
|  | synthetic constructor •() → self::UsedAsBaseClass | 
|  | ; | 
|  | method usedInSubclass() → void | 
|  | ; | 
|  | method calledFromB() → void | 
|  | ; | 
|  | method calledFromSubclass() → void | 
|  | ; | 
|  | } | 
|  | class UsedAsInterface extends core::Object { | 
|  | synthetic constructor •() → self::UsedAsInterface | 
|  | ; | 
|  | method usedInSubclass() → void | 
|  | ; | 
|  | } | 
|  | class InstantiatedButMethodsUnused extends core::Object { | 
|  | synthetic constructor •() → self::InstantiatedButMethodsUnused | 
|  | ; | 
|  | method usedInSubclass() → void | 
|  | ; | 
|  | } | 
|  | class ClassA extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused { | 
|  | synthetic constructor •() → self::ClassA | 
|  | ; | 
|  | method usedInSubclass() → void | 
|  | ; | 
|  | } | 
|  | class ClassB extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused { | 
|  | synthetic constructor •() → self::ClassB | 
|  | ; | 
|  | method usedInSubclass() → void | 
|  | ; | 
|  | method calledFromSubclass() → void | 
|  | ; | 
|  | } | 
|  | static method baseClassCall(self::UsedAsBaseClass object) → void | 
|  | ; | 
|  | static method interfaceCall(self::UsedAsInterface object) → void | 
|  | ; | 
|  | static method exactCallA(self::ClassA object) → void | 
|  | ; | 
|  | static method exactCallB(self::ClassB object) → void | 
|  | ; | 
|  | static method unusedTopLevel() → dynamic | 
|  | ; | 
|  | static method usedTopLevel() → dynamic | 
|  | ; | 
|  | static method main() → dynamic | 
|  | ; |