blob: 55be1b7db8f65d64b09a0f9af9834c3fa3104cba [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::int boz = 0;
synthetic constructor •() self::A
: super core::Object::•()
;
method foo(core::int n) core::num {
core::print(n.{core::Object::runtimeType}{core::Type});
return 1.1;
}
method bar({required core::int x = #C1}) → core::num {
core::print(x.{core::Object::runtimeType}{core::Type});
return 1.1;
}
set baz(core::int x) void {
core::print(x.{core::Object::runtimeType}{core::Type});
}
}
abstract class B<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::B<self::B::X%>
: super core::Object::•()
;
abstract method foo(covariant-by-class self::B::X% x) self::B::X%;
abstract method bar({required covariant-by-class self::B::X% x = #C1}) → self::B::X%;
abstract set baz(covariant-by-class self::B::X% x) void;
abstract set boz(covariant-by-class self::B::X% x) void;
}
abstract class _C&A&B = self::A with self::B<core::num> /*isAnonymousMixin*/ {
synthetic constructor •() self::_C&A&B
: super self::A::•()
;
forwarding-stub set boz(covariant-by-class core::num x) void
return super.{self::A::boz} = x as core::int;
forwarding-stub method foo(covariant-by-class core::num x) core::num
return super.{self::A::foo}(x as core::int);
forwarding-stub method bar({required covariant-by-class core::num x = #C1}) → core::num
return super.{self::A::bar}(x: x as core::int);
forwarding-stub set baz(covariant-by-class core::num x) void
return super.{self::A::baz} = x as core::int;
}
class C extends self::_C&A&B {
synthetic constructor •() self::C
: super self::_C&A&B::•()
;
}
static method main() void {
self::C a = new self::C::•();
a.{self::_C&A&B::foo}(1){(core::num) core::num};
self::throws(() void => a.{self::_C&A&B::foo}(1.2){(core::num) core::num});
a.{self::_C&A&B::bar}(x: 1){({required x: core::num}) core::num};
self::throws(() void => a.{self::_C&A&B::bar}(x: 1.2){({required x: core::num}) core::num});
a.{self::_C&A&B::baz} = 1;
self::throws(() void => a.{self::_C&A&B::baz} = 1.2);
a.{self::_C&A&B::boz} = 1;
self::throws(() void => a.{self::_C&A&B::boz} = 1.2);
}
static method throws(() void f) dynamic {
try {
f(){() void};
}
on core::Object catch(final core::Object e) {
core::print(e);
return;
}
throw "Exception expected";
}
constants {
#C1 = null
}