blob: a51aa611b5fc9f769a310a75c40cc6799ae33bb6 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:24:27: Error: The parameter 'i' of the method 'Class.setter2' has type 'String', which does not match the corresponding type, 'num', in the overridden method, 'Super.setter2'.
// Change to a supertype of 'num', or, for a covariant parameter, a subtype.
// void set setter2(String i);
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:7:12: Context: This is the overridden method ('setter2').
// void set setter2(num n) {}
// ^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:24:27: Error: The parameter 'i' of the method 'Class.setter2' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'Interface.setter2'.
// Change to a supertype of 'int', or, for a covariant parameter, a subtype.
// void set setter2(String i);
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:16:12: Context: This is the overridden method ('setter2').
// void set setter2(covariant int i) {}
// ^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:25:24: Error: The parameter 'i' of the method 'Class.setter3' has type 'int', which does not match the corresponding type, 'num', in the overridden method, 'Super.setter3'.
// Change to a supertype of 'num', or, for a covariant parameter, a subtype.
// void set setter3(int i);
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:8:12: Context: This is the overridden method ('setter3').
// void set setter3(num n) {}
// ^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:22:7: Error: The implementation of 'setter2' in the non-abstract class 'Class' does not conform to its interface.
// class Class extends Super implements Interface {
// ^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:7:24: Context: The parameter 'n' of the method 'Super.setter2' has type 'num', which does not match the corresponding type, 'String', in the overridden method, 'Class.setter2'.
// Change to a supertype of 'String', or, for a covariant parameter, a subtype.
// void set setter2(num n) {}
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_semi_stub_setter.dart:24:12: Context: This is the overridden method ('setter2').
// void set setter2(String i);
// ^
//
import self as self;
import "dart:core" as core;
class Super extends core::Object {
synthetic constructor •() self::Super
: super core::Object::•()
;
set setter1(core::num n) void {}
set setter2(core::num n) void {}
set setter3(core::num n) void {}
set setter4(covariant-by-declaration core::num i) void {}
set setter5(covariant-by-declaration core::int i) void {}
}
class Interface extends core::Object {
synthetic constructor •() self::Interface
: super core::Object::•()
;
set setter1(covariant-by-declaration core::int i) void {}
set setter2(covariant-by-declaration core::int i) void {}
set setter4(core::int i) void {}
set setter5(core::int i) void {}
}
class Class extends self::Super implements self::Interface {
synthetic constructor •() self::Class
: super self::Super::•()
;
forwarding-stub forwarding-semi-stub set /* signature-type: (core::int) → void */ setter1(covariant-by-declaration core::num i) void
return super.{self::Super::setter1} = i;
forwarding-stub forwarding-semi-stub set /* signature-type: (core::String) → void */ setter2(covariant-by-declaration core::num i) void
return super.{self::Super::setter2} = i;
abstract set setter3(core::int i) void;
abstract set setter4(covariant-by-declaration core::int i) void;
abstract set setter5(covariant-by-declaration core::num n) void;
}
static method main() dynamic {}