| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type I(core::int it) { |
| abstract extension-type-member representation-field get it() → core::int; |
| method m = self::I|m; |
| method tearoff m = self::I|get#m; |
| constructor _ = self::I|constructor#_; |
| constructor tearoff _ = self::I|constructor#_#_#tearOff; |
| constructor • = self::I|constructor#; |
| constructor tearoff • = self::I|constructor#_#new#tearOff; |
| } |
| extension type I2(core::int it) { |
| abstract extension-type-member representation-field get it() → core::int; |
| method m = self::I2|m; |
| method tearoff m = self::I2|get#m; |
| constructor _ = self::I2|constructor#_; |
| constructor tearoff _ = self::I2|constructor#_#_#tearOff; |
| constructor • = self::I2|constructor#; |
| constructor tearoff • = self::I2|constructor#_#new#tearOff; |
| } |
| static extension-type-member method I|constructor#_(core::int it) → self::I% /* erasure=core::int, declared=! */ { |
| lowered final self::I% /* erasure=core::int, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method I|constructor#_#_#tearOff(core::int it) → self::I% /* erasure=core::int, declared=! */ |
| return self::I|constructor#_(it); |
| static extension-type-member method I|constructor#(core::int x, [core::int? y = #C1]) → self::I% /* erasure=core::int, declared=! */ { |
| lowered final self::I% /* erasure=core::int, declared=! */ #this = x.{core::num::+}(let final core::int? #t1 = y in #t1 == null ?{core::int} 42 : #t1{core::int}){(core::num) → core::int}; |
| return #this; |
| } |
| static extension-type-member method I|constructor#_#new#tearOff(core::int x, [core::int? y = #C1]) → self::I% /* erasure=core::int, declared=! */ |
| return self::I|constructor#(x, y); |
| static extension-type-member method I|m(lowered final self::I% /* erasure=core::int, declared=! */ #this, core::String s, [core::int i = #C2]) → void {} |
| static extension-type-member method I|get#m(lowered final self::I% /* erasure=core::int, declared=! */ #this) → (core::String, [core::int]) → void |
| return (core::String s, [core::int i = #C2]) → void => self::I|m(#this, s, i); |
| static extension-type-member method I2|constructor#_(core::int it) → self::I2% /* erasure=core::int, declared=! */ { |
| lowered final self::I2% /* erasure=core::int, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method I2|constructor#_#_#tearOff(core::int it) → self::I2% /* erasure=core::int, declared=! */ |
| return self::I2|constructor#_(it); |
| static extension-type-member method I2|constructor#(core::int x, {core::int? y = #C1}) → self::I2% /* erasure=core::int, declared=! */ { |
| lowered final self::I2% /* erasure=core::int, declared=! */ #this = x.{core::num::+}(let final core::int? #t2 = y in #t2 == null ?{core::int} 87 : #t2{core::int}){(core::num) → core::int}; |
| return #this; |
| } |
| static extension-type-member method I2|constructor#_#new#tearOff(core::int x, {core::int? y = #C1}) → self::I2% /* erasure=core::int, declared=! */ |
| return self::I2|constructor#(x, y: y); |
| static extension-type-member method I2|m(lowered final self::I2% /* erasure=core::int, declared=! */ #this, core::String s, {core::int i = #C2}) → void {} |
| static extension-type-member method I2|get#m(lowered final self::I2% /* erasure=core::int, declared=! */ #this) → (core::String, {i: core::int}) → void |
| return (core::String s, {core::int i = #C2}) → void => self::I2|m(#this, s, i: i); |
| static method main() → dynamic { |
| self::expect(42, self::I|constructor#(0)); |
| self::expect(0, self::I|constructor#(0, 0)); |
| self::expect(87, self::I2|constructor#(0)); |
| self::expect(0, self::I2|constructor#(0, y: 0)); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) { |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| } |
| |
| constants { |
| #C1 = null |
| #C2 = 1 |
| } |