blob: 773c13992f3c4339485e9bead2ed2d948f4cd963 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:21:28: Error: The parameter 'i' of the method 'Class.extendedMethod2' has type 'int', which does not match the corresponding type, 'num', in the overridden method, 'Super.extendedMethod2'.
// Change to a supertype of 'num', or, for a covariant parameter, a subtype.
// void extendedMethod2(int i);
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:10:8: Context: This is the overridden method ('extendedMethod2').
// void extendedMethod2(num i) {}
// ^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:27:30: Error: The parameter 'n' of the method 'Class.overriddenMethod2' has type 'int', which does not match the corresponding type, 'num', in the overridden method, 'Super.overriddenMethod2'.
// Change to a supertype of 'num', or, for a covariant parameter, a subtype.
// void overriddenMethod2(int n) {}
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:13:8: Context: This is the overridden method ('overriddenMethod2').
// void overriddenMethod2(num n) {}
// ^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:16:7: Error: The implementation of 'extendedMethod1' in the non-abstract class 'Class' does not conform to its interface.
// class Class extends Super {
// ^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:7:28: Context: The parameter 'i' of the method 'Super.extendedMethod1' has type 'int', which does not match the corresponding type, 'num', in the overridden method, 'Class.extendedMethod1'.
// Change to a supertype of 'num', or, for a covariant parameter, a subtype.
// void extendedMethod1(int i) {}
// ^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/override.dart:18:8: Context: This is the overridden method ('extendedMethod1').
// void extendedMethod1(num n);
// ^
//
import self as self;
import "dart:core" as core;
class Super extends core::Object {
synthetic constructor •() self::Super
: super core::Object::•()
;
method extendedMethod1(core::int i) void {}
method extendedMethod2(core::num i) void {}
method overriddenMethod1(core::int i) void {}
method overriddenMethod2(core::num n) void {}
}
class Class extends self::Super {
synthetic constructor •() self::Class
: super self::Super::•()
;
abstract method extendedMethod1(core::num n) void;
abstract method extendedMethod2(core::int i) void;
method overriddenMethod1(core::num n) void {}
method overriddenMethod2(core::int n) void {}
}
static method main() dynamic {}