| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| extension E on core::int { |
| get f = self::E|get#f; |
| method m = self::E|m; |
| method tearoff m = self::E|get#m; |
| } |
| static extension-member method E|get#f(lowered final core::int #this) → (core::int) → core::int |
| return (core::int x) → core::int => x; |
| static extension-member method E|m(lowered final core::int #this) → dynamic { |
| self::expect(42, self::E|get#f(#this)(42){(core::int) → core::int}); |
| } |
| static extension-member method E|get#m(lowered final core::int #this) → () → dynamic |
| return () → dynamic => self::E|m(#this); |
| static method test(core::int i1, core::int? i2, core::int? i3) → dynamic { |
| self::expect(87, self::E|get#f(i1)(87){(core::int) → core::int}); |
| self::expect(123, let final core::int? #t1 = i2 in #t1 == null ?{core::int?} null : self::E|get#f(#t1{core::int})(123){(core::int) → core::int}); |
| self::expect(null, let final core::int? #t2 = i3 in #t2 == null ?{core::int?} null : self::E|get#f(#t2{core::int})(321){(core::int) → core::int}); |
| } |
| static method main() → dynamic { |
| self::E|m(0); |
| self::test(0, 0, null); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) { |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| } |