blob: 3f2a40086235c2e9fcc76ba09a89d106dee41a35 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
synthetic constructor •() self::Class*
: super core::Object::•()
;
method noSuchMethod(core::Invocation* i) dynamic
return 123;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
extension ClassExtension on self::Class* {
method method = self::ClassExtension|method;
tearoff method = self::ClassExtension|get#method;
}
extension Extension on dynamic {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method ClassExtension|method(lowered final self::Class* #this) → core::int*
return 42;
static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () core::int* => self::ClassExtension|method(#this);
static method Extension|method(lowered final dynamic #this) → core::int*
return 87;
static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () core::int* => self::Extension|method(#this);
static method main() dynamic {
dynamic c0 = new self::Class::•();
core::Object* c1 = new self::Class::•();
self::Class* c2 = new self::Class::•();
self::expect(123, c0.method());
self::expect(87, self::Extension|method(c1));
self::expect(42, self::ClassExtension|method(c2));
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!expected.{core::Object::==}(actual)) {
throw "Mismatch: expected=${expected}, actual=${actual}";
}
}