| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| class D1 extends core::Object { |
| synthetic constructor •() → self::D1 |
| : super core::Object::•() |
| ; |
| set property(self::D1 value) → void {} |
| } |
| extension type A(core::int property) { |
| abstract extension-type-member representation-field get property() → core::int; |
| set property = self::A|set#property; |
| constructor • = self::A|constructor#; |
| constructor tearoff • = self::A|constructor#_#new#tearOff; |
| } |
| extension type B1(core::int it) { |
| abstract extension-type-member representation-field get it() → core::int; |
| set property = self::B1|set#property; |
| constructor • = self::B1|constructor#; |
| constructor tearoff • = self::B1|constructor#_#new#tearOff; |
| } |
| extension type B2(core::int property) implements self::B1% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get property() → core::int; |
| constructor • = self::B2|constructor#; |
| constructor tearoff • = self::B2|constructor#_#new#tearOff; |
| } |
| extension type C1(core::int property) { |
| abstract extension-type-member representation-field get property() → core::int; |
| constructor • = self::C1|constructor#; |
| constructor tearoff • = self::C1|constructor#_#new#tearOff; |
| } |
| extension type C2(core::int it) implements self::C1% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get it() → core::int; |
| set property = self::C2|set#property; |
| constructor • = self::C2|constructor#; |
| constructor tearoff • = self::C2|constructor#_#new#tearOff; |
| } |
| extension type D2(self::D1 property) implements self::D1 { |
| abstract extension-type-member representation-field get property() → self::D1; |
| constructor • = self::D2|constructor#; |
| constructor tearoff • = self::D2|constructor#_#new#tearOff; |
| } |
| static extension-type-member method A|constructor#(core::int property) → self::A% /* erasure=core::int, declared=! */ { |
| lowered final self::A% /* erasure=core::int, declared=! */ #this = property; |
| return #this; |
| } |
| static extension-type-member method A|constructor#_#new#tearOff(core::int property) → self::A% /* erasure=core::int, declared=! */ |
| return self::A|constructor#(property); |
| static extension-type-member method A|set#property(lowered final self::A% /* erasure=core::int, declared=! */ #this, core::int value) → void {} |
| static extension-type-member method B1|constructor#(core::int it) → self::B1% /* erasure=core::int, declared=! */ { |
| lowered final self::B1% /* erasure=core::int, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method B1|constructor#_#new#tearOff(core::int it) → self::B1% /* erasure=core::int, declared=! */ |
| return self::B1|constructor#(it); |
| static extension-type-member method B1|set#property(lowered final self::B1% /* erasure=core::int, declared=! */ #this, core::int value) → void {} |
| static extension-type-member method B2|constructor#(core::int property) → self::B2% /* erasure=core::int, declared=! */ { |
| lowered final self::B2% /* erasure=core::int, declared=! */ #this = property; |
| return #this; |
| } |
| static extension-type-member method B2|constructor#_#new#tearOff(core::int property) → self::B2% /* erasure=core::int, declared=! */ |
| return self::B2|constructor#(property); |
| static extension-type-member method C1|constructor#(core::int property) → self::C1% /* erasure=core::int, declared=! */ { |
| lowered final self::C1% /* erasure=core::int, declared=! */ #this = property; |
| return #this; |
| } |
| static extension-type-member method C1|constructor#_#new#tearOff(core::int property) → self::C1% /* erasure=core::int, declared=! */ |
| return self::C1|constructor#(property); |
| static extension-type-member method C2|constructor#(core::int it) → self::C2% /* erasure=core::int, declared=! */ { |
| lowered final self::C2% /* erasure=core::int, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method C2|constructor#_#new#tearOff(core::int it) → self::C2% /* erasure=core::int, declared=! */ |
| return self::C2|constructor#(it); |
| static extension-type-member method C2|set#property(lowered final self::C2% /* erasure=core::int, declared=! */ #this, core::int value) → void {} |
| static extension-type-member method D2|constructor#(self::D1 property) → self::D2 /* erasure=self::D1 */ { |
| lowered final self::D2 /* erasure=self::D1 */ #this = property; |
| return #this; |
| } |
| static extension-type-member method D2|constructor#_#new#tearOff(self::D1 property) → self::D2 /* erasure=self::D1 */ |
| return self::D2|constructor#(property); |
| static method main() → dynamic { |
| self::A% /* erasure=core::int, declared=! */ a = self::A|constructor#(0); |
| self::A|set#property(a, a as{Unchecked} core::int); |
| self::B2% /* erasure=core::int, declared=! */ b = self::B2|constructor#(0); |
| self::B1|set#property(b, b as{Unchecked} core::int); |
| self::C2% /* erasure=core::int, declared=! */ c = self::C2|constructor#(0); |
| self::C2|set#property(c, c as{Unchecked} core::int); |
| self::D2 /* erasure=self::D1 */ d = self::D2|constructor#(new self::D1::•()); |
| d.{self::D1::property} = d as{Unchecked} self::D1; |
| } |