blob: bd555579c2a0860a5d72d50e3fe47be5d104d254 [file] [log] [blame] [edit]
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}";
}
}