blob: 5cfe398f4590f654d184dfd3327f68fc60374bd5 [file] [log] [blame]
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
}