blob: 8a935f215fef17a19375cf9e68cbccad101ae1e9 [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::num? _#A#covariantField = null;
synthetic constructor •() self::A
: super core::Object::•()
;
get invariantField() core::num
return let final core::num? #t1 = this.{self::A::_#A#invariantField}{core::num?} in #t1 == null ?{core::num} throw new _in::LateError::fieldNI("invariantField") : #t1{core::num};
set invariantField(core::num invariantField#param) → void
this.{self::A::_#A#invariantField} = invariantField#param;
get covariantField() core::num
return let final core::num? #t2 = this.{self::A::_#A#covariantField}{core::num?} in #t2 == null ?{core::num} throw new _in::LateError::fieldNI("covariantField") : #t2{core::num};
set covariantField(covariant-by-declaration core::num covariantField#param) → void
this.{self::A::_#A#covariantField} = covariantField#param;
}
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-by-declaration 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-by-declaration 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-by-declaration core::int value) void {}
abstract get covariantField() core::int;
set covariantField(covariant-by-declaration core::int value) void {}
}
static method main() dynamic {}