| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type A<T extends core::Object? = dynamic>(core::Object it) { |
| abstract extension-type-member representation-field get it() → core::Object; |
| method method = self::A|method; |
| method tearoff method = self::A|get#method; |
| get getter = self::A|get#getter; |
| operator [] = self::A|[]; |
| set setter = self::A|set#setter; |
| constructor • = self::A|constructor#; |
| constructor tearoff • = self::A|constructor#_#new#tearOff; |
| } |
| extension type B<S extends core::Object? = dynamic>(core::Object it) implements self::A<S%>% /* erasure=core::Object, declared=! */ { |
| abstract extension-type-member representation-field get it() → core::Object; |
| method method2 = self::B|method2; |
| method tearoff method2 = self::B|get#method2; |
| get getter2 = self::B|get#getter2; |
| operator []= = self::B|[]=; |
| set setter2 = self::B|set#setter2; |
| constructor • = self::B|constructor#; |
| constructor tearoff • = self::B|constructor#_#new#tearOff; |
| } |
| extension type C(core::Object i) implements self::A<core::int>% /* erasure=core::Object, declared=! */ { |
| abstract extension-type-member representation-field get i() → core::Object; |
| method method3 = self::C|method3; |
| method tearoff method3 = self::C|get#method3; |
| get getter3 = self::C|get#getter3; |
| operator []= = self::C|[]=; |
| set setter3 = self::C|set#setter3; |
| constructor • = self::C|constructor#; |
| constructor tearoff • = self::C|constructor#_#new#tearOff; |
| } |
| static extension-type-member method A|constructor#<T extends core::Object? = dynamic>(core::Object it) → self::A<self::A|constructor#::T%>% /* erasure=core::Object, declared=! */ { |
| lowered final self::A<self::A|constructor#::T%>% /* erasure=core::Object, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method A|constructor#_#new#tearOff<T extends core::Object? = dynamic>(core::Object it) → self::A<self::A|constructor#_#new#tearOff::T%>% /* erasure=core::Object, declared=! */ |
| return self::A|constructor#<self::A|constructor#_#new#tearOff::T%>(it); |
| static extension-type-member method A|method<T extends core::Object? = dynamic>(lowered final self::A<self::A|method::T%>% /* erasure=core::Object, declared=! */ #this) → self::A|method::T% |
| return throw ""; |
| static extension-type-member method A|get#method<T extends core::Object? = dynamic>(lowered final self::A<self::A|get#method::T%>% /* erasure=core::Object, declared=! */ #this) → () → self::A|get#method::T% |
| return () → self::A|get#method::T% => self::A|method<self::A|get#method::T%>(#this); |
| static extension-type-member method A|get#getter<T extends core::Object? = dynamic>(lowered final self::A<self::A|get#getter::T%>% /* erasure=core::Object, declared=! */ #this) → self::A|get#getter::T% |
| return throw ""; |
| static extension-type-member method A|set#setter<T extends core::Object? = dynamic>(lowered final self::A<self::A|set#setter::T%>% /* erasure=core::Object, declared=! */ #this, self::A|set#setter::T% value) → void {} |
| static extension-type-member method A|[]<T extends core::Object? = dynamic>(lowered final self::A<self::A|[]::T%>% /* erasure=core::Object, declared=! */ #this, self::A|[]::T% index) → self::A|[]::T% |
| return throw ""; |
| static extension-type-member method B|constructor#<S extends core::Object? = dynamic>(core::Object it) → self::B<self::B|constructor#::S%>% /* erasure=core::Object, declared=! */ { |
| lowered final self::B<self::B|constructor#::S%>% /* erasure=core::Object, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method B|constructor#_#new#tearOff<S extends core::Object? = dynamic>(core::Object it) → self::B<self::B|constructor#_#new#tearOff::S%>% /* erasure=core::Object, declared=! */ |
| return self::B|constructor#<self::B|constructor#_#new#tearOff::S%>(it); |
| static extension-type-member method B|method2<S extends core::Object? = dynamic>(lowered final self::B<self::B|method2::S%>% /* erasure=core::Object, declared=! */ #this) → self::B|method2::S% |
| return self::A|method<self::B|method2::S%>(#this); |
| static extension-type-member method B|get#method2<S extends core::Object? = dynamic>(lowered final self::B<self::B|get#method2::S%>% /* erasure=core::Object, declared=! */ #this) → () → self::B|get#method2::S% |
| return () → self::B|get#method2::S% => self::B|method2<self::B|get#method2::S%>(#this); |
| static extension-type-member method B|get#getter2<S extends core::Object? = dynamic>(lowered final self::B<self::B|get#getter2::S%>% /* erasure=core::Object, declared=! */ #this) → self::B|get#getter2::S% |
| return self::A|get#getter<self::B|get#getter2::S%>(#this); |
| static extension-type-member method B|set#setter2<S extends core::Object? = dynamic>(lowered final self::B<self::B|set#setter2::S%>% /* erasure=core::Object, declared=! */ #this, self::B|set#setter2::S% value) → void { |
| self::A|set#setter<self::B|set#setter2::S%>(#this, value); |
| } |
| static extension-type-member method B|[]=<S extends core::Object? = dynamic>(lowered final self::B<self::B|[]=::S%>% /* erasure=core::Object, declared=! */ #this, self::B|[]=::S% index, self::B|[]=::S% value) → void { |
| value = self::A|[]<self::B|[]=::S%>(#this, index); |
| } |
| static extension-type-member method C|constructor#(core::Object i) → self::C% /* erasure=core::Object, declared=! */ { |
| lowered final self::C% /* erasure=core::Object, declared=! */ #this = i; |
| return #this; |
| } |
| static extension-type-member method C|constructor#_#new#tearOff(core::Object i) → self::C% /* erasure=core::Object, declared=! */ |
| return self::C|constructor#(i); |
| static extension-type-member method C|method3(lowered final self::C% /* erasure=core::Object, declared=! */ #this) → core::int |
| return self::A|method<core::int>(#this); |
| static extension-type-member method C|get#method3(lowered final self::C% /* erasure=core::Object, declared=! */ #this) → () → core::int |
| return () → core::int => self::C|method3(#this); |
| static extension-type-member method C|get#getter3(lowered final self::C% /* erasure=core::Object, declared=! */ #this) → core::int |
| return self::A|get#getter<core::int>(#this); |
| static extension-type-member method C|set#setter3(lowered final self::C% /* erasure=core::Object, declared=! */ #this, core::int value) → void { |
| self::A|set#setter<core::int>(#this, value); |
| } |
| static extension-type-member method C|[]=(lowered final self::C% /* erasure=core::Object, declared=! */ #this, core::int index, core::int value) → void { |
| value = self::A|[]<core::int>(#this, index); |
| } |
| static method test(self::A<core::bool>% /* erasure=core::Object, declared=! */ a, self::B<core::String>% /* erasure=core::Object, declared=! */ b, self::C% /* erasure=core::Object, declared=! */ c) → dynamic { |
| core::bool a1 = self::A|method<core::bool>(a); |
| core::bool a2 = self::A|get#getter<core::bool>(a); |
| self::A|set#setter<core::bool>(a, a1); |
| core::bool a3 = self::A|[]<core::bool>(a, a2); |
| core::String b1 = self::A|method<core::String>(b); |
| core::String b2 = self::A|get#getter<core::String>(b); |
| self::A|set#setter<core::String>(b, b1); |
| core::String b3 = self::A|[]<core::String>(b, b2); |
| core::String b4 = self::B|method2<core::String>(b); |
| core::String b5 = self::B|get#getter2<core::String>(b); |
| self::B|set#setter2<core::String>(b, b4); |
| self::B|[]=<core::String>(b, b5, b1); |
| core::int c1 = self::A|method<core::int>(c); |
| core::int c2 = self::A|get#getter<core::int>(c); |
| self::A|set#setter<core::int>(c, c1); |
| core::int c3 = self::A|[]<core::int>(c, c2); |
| core::int c4 = self::C|method3(c); |
| core::int c5 = self::C|get#getter3(c); |
| self::C|set#setter3(c, c4); |
| self::C|[]=(c, c5, c1); |
| } |