blob: 5e60c5e1efa0548d01df339a22b51eb8b1e6b5c2 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
method foo() void {}
}
class B extends core::Object implements self::A {
synthetic constructor •() self::B
: super core::Object::•()
;
@#C1
method foo([core::int i = #C2]) → void {}
}
extension type ET1(self::B b) implements self::A {
abstract extension-type-member representation-field get b() self::B;
constructor = self::ET1|constructor#;
constructor tearoff = self::ET1|constructor#_#new#tearOff;
}
extension type ET2(self::B b) implements self::ET1 /* erasure=self::B */, self::B {
abstract extension-type-member representation-field get b() self::B;
constructor = self::ET2|constructor#;
constructor tearoff = self::ET2|constructor#_#new#tearOff;
}
static extension-type-member method ET1|constructor#(self::B b) → self::ET1 /* erasure=self::B */ {
lowered final self::ET1 /* erasure=self::B */ #this = b;
return #this;
}
static extension-type-member method ET1|constructor#_#new#tearOff(self::B b) → self::ET1 /* erasure=self::B */
return self::ET1|constructor#(b);
static extension-type-member method ET2|constructor#(self::B b) → self::ET2 /* erasure=self::B */ {
lowered final self::ET2 /* erasure=self::B */ #this = b;
return #this;
}
static extension-type-member method ET2|constructor#_#new#tearOff(self::B b) → self::ET2 /* erasure=self::B */
return self::ET2|constructor#(b);
static method main() void {
self::ET2 /* erasure=self::B */ et2 = self::ET2|constructor#(new self::B::•());
et2.{self::B::foo}(42){([core::int]) void};
}
constants {
#C1 = core::_Override {}
#C2 = 0
}