| library; | |
| import self as self; | |
| import "dart:core" as core; | |
| @#C3 | |
| abstract class A extends core::Object { | |
| @#C3 | |
| field core::Object? ifield1 = null; | |
| field core::Object? _ifield2 = null; | |
| @#C3 | |
| static field core::Object? sfield3 = null; | |
| static field core::Object? _sfield4 = null; | |
| @#C3 | |
| constructor •() → self::A | |
| : super core::Object::•() | |
| ; | |
| constructor _() → self::A | |
| : super core::Object::•() | |
| ; | |
| @#C3 | |
| static factory factory1() → self::A /* redirection-target: self::B::• */ | |
| return new self::B::•(); | |
| @#C3 | |
| static factory factory2() → self::A | |
| return new self::B::•(); | |
| static factory _factory3() → self::A | |
| return new self::B::•(); | |
| @#C3 | |
| method imethod1() → void {} | |
| @#C3 | |
| abstract method imethod2() → void; | |
| method _imethod3() → void {} | |
| @#C3 | |
| static method smethod4() → void {} | |
| } | |
| @#C3 | |
| class B extends self::A { | |
| @#C3 | |
| field core::Object? ifield5 = null; | |
| field core::Object? _ifield6 = null; | |
| @#C3 | |
| constructor •() → self::B | |
| : super self::A::•() | |
| ; | |
| @#C3 | |
| method imethod2() → void {} | |
| @#C3 | |
| method imethod5() → void {} | |
| method _imethod6() → void {} | |
| @#C3 | |
| static method smethod7() → void {} | |
| } | |
| class _C extends core::Object { | |
| field core::Object? ifield7 = null; | |
| static field core::Object? _sfield8 = null; | |
| synthetic constructor •() → self::_C | |
| : super core::Object::•() | |
| ; | |
| method imethod8() → void {} | |
| static method smethod9() → void {} | |
| } | |
| class D extends core::Object { | |
| synthetic constructor •() → self::D | |
| : super core::Object::•() | |
| ; | |
| method build() → void {} | |
| } | |
| @#C5 | |
| abstract class F extends core::Object { | |
| constructor •() → self::F | |
| : super core::Object::•() | |
| ; | |
| constructor _() → self::F | |
| : super core::Object::•() | |
| ; | |
| static factory factory1() → self::F /* redirection-target: self::G::• */ | |
| return new self::G::•(); | |
| abstract method imethod1() → void; | |
| static method smethod1() → void {} | |
| } | |
| @#C5 | |
| class G extends self::F { | |
| constructor •() → self::G | |
| : super self::F::•() | |
| ; | |
| method imethod1() → void {} | |
| static method smethod2() → void {} | |
| } | |
| @#C5 | |
| extension type H(self::F v) { | |
| abstract extension-type-member representation-field get v() → self::F; | |
| method imethod2 = self::H|imethod2; | |
| method tearoff imethod2 = self::H|get#imethod2; | |
| constructor • = self::H|constructor#; | |
| constructor tearoff • = self::H|constructor#_#new#tearOff; | |
| } | |
| static field core::Object? sfield9; | |
| static field core::Object? _sfield10; | |
| static method smethod10() → void {} | |
| static method _smethod11() → void {} | |
| static extension-type-member method H|constructor#(initializing-formal self::F v) → self::H% /* erasure=self::F, declared=! */ { | |
| lowered final self::H% /* erasure=self::F, declared=! */ #this = v; | |
| return #this; | |
| } | |
| static extension-type-member synthetic method H|constructor#_#new#tearOff(self::F v) → self::H% /* erasure=self::F, declared=! */ | |
| return self::H|constructor#(v); | |
| static extension-type-member method H|imethod2(lowered final self::H% /* erasure=self::F, declared=! */ #this) → void | |
| return (#this as{Unchecked} self::F).{self::F::imethod1}(){() → void}; | |
| static extension-type-member method H|get#imethod2(lowered final self::H% /* erasure=self::F, declared=! */ #this) → () → void | |
| return () → void => self::H|imethod2(#this); | |
| constants { | |
| #C1 = "dyn-module:callable" | |
| #C2 = null | |
| #C3 = core::pragma {name:#C1, options:#C2} | |
| #C4 = "dyn-module:can-be-used-as-type" | |
| #C5 = core::pragma {name:#C4, options:#C2} | |
| } |