blob: 1ef4b89af9b9bd44a2058a0febb09b4d26cda4bc [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/late_lowering/covariant_late_field.dart:19:31: Error: The parameter 'value' of the method 'C.invariantField' has type 'int', which does not match the corresponding type, 'num', in the overridden method, 'A.invariantField'.
// Change to a supertype of 'num', or, for a covariant parameter, a subtype.
// void set invariantField(int value) {} // error
// ^
// pkg/front_end/testcases/late_lowering/covariant_late_field.dart:6:12: Context: This is the overridden method ('invariantField').
// late num invariantField;
// ^
//
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
class A extends core::Object {
field core::num? _#A#invariantField = null;
field core::bool _#A#invariantField#isSet = false;
field core::num? _#A#covariantField = null;
field core::bool _#A#covariantField#isSet = false;
synthetic constructor •() self::A
: super core::Object::•()
;
get invariantField() core::num
return this.{self::A::_#A#invariantField#isSet} ?{core::num} let final core::num? #t1 = this.{self::A::_#A#invariantField} in #t1{core::num} : throw new _in::LateError::fieldNI("invariantField");
set invariantField(core::num #t2) → void {
this.{self::A::_#A#invariantField#isSet} = true;
this.{self::A::_#A#invariantField} = #t2;
}
get covariantField() core::num
return this.{self::A::_#A#covariantField#isSet} ?{core::num} let final core::num? #t3 = this.{self::A::_#A#covariantField} in #t3{core::num} : throw new _in::LateError::fieldNI("covariantField");
set covariantField(covariant core::num #t4) → void {
this.{self::A::_#A#covariantField#isSet} = true;
this.{self::A::_#A#covariantField} = #t4;
}
}
abstract class B extends core::Object implements self::A {
synthetic constructor •() self::B
: super core::Object::•()
;
abstract get invariantField() core::num;
abstract set invariantField(core::num value) void;
abstract get covariantField() core::num;
abstract set covariantField(covariant core::num value) void;
}
abstract class C extends core::Object implements self::A {
synthetic constructor •() self::C
: super core::Object::•()
;
abstract get invariantField() core::int;
set invariantField(core::int value) void {}
abstract get covariantField() core::int;
set covariantField(covariant core::int value) void {}
}
abstract class D extends core::Object implements self::A {
synthetic constructor •() self::D
: super core::Object::•()
;
abstract get invariantField() core::int;
set invariantField(covariant core::int value) void {}
abstract get covariantField() core::int;
set covariantField(covariant core::int value) void {}
}
static method main() dynamic {}