| 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} |
| } |