blob: 7af22c0421fc1f585983e7a1d77863a427e24777 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/generic_override.dart:37:8: Error: Declared bound 'Object?' of type variable 'T' of 'Class2.method4b' doesn't match the bound 'Object' on overridden method 'Class1.method4b'.
// - 'Object' is from 'dart:core'.
// void method4b<T extends Object?>(); // error
// ^
// pkg/front_end/testcases/nnbd/generic_override.dart:17:8: Context: This is the overridden method ('method4b').
// void method4b<T extends Object>();
// ^
//
// pkg/front_end/testcases/nnbd/generic_override.dart:38:8: Error: Declared bound 'Object' of type variable 'T' of 'Class2.method4c' doesn't match the bound 'Object?' on overridden method 'Class1.method4c'.
// - 'Object' is from 'dart:core'.
// void method4c<T extends Object>(); // error
// ^
// pkg/front_end/testcases/nnbd/generic_override.dart:18:8: Context: This is the overridden method ('method4c').
// void method4c<T extends Object?>();
// ^
//
// pkg/front_end/testcases/nnbd/generic_override.dart:41:8: Error: Declared bound 'Class1?' of type variable 'T' of 'Class2.method5b' doesn't match the bound 'Class1' on overridden method 'Class1.method5b'.
// - 'Class1' is from 'pkg/front_end/testcases/nnbd/generic_override.dart'.
// void method5b<T extends Class1?>(); // error
// ^
// pkg/front_end/testcases/nnbd/generic_override.dart:21:8: Context: This is the overridden method ('method5b').
// void method5b<T extends Class1>();
// ^
//
// pkg/front_end/testcases/nnbd/generic_override.dart:42:8: Error: Declared bound 'Class1' of type variable 'T' of 'Class2.method5c' doesn't match the bound 'Class1?' on overridden method 'Class1.method5c'.
// - 'Class1' is from 'pkg/front_end/testcases/nnbd/generic_override.dart'.
// void method5c<T extends Class1>(); // error
// ^
// pkg/front_end/testcases/nnbd/generic_override.dart:22:8: Context: This is the overridden method ('method5c').
// void method5c<T extends Class1?>();
// ^
//
import self as self;
import "dart:core" as core;
abstract class Class1 extends core::Object {
synthetic constructor •() self::Class1
;
abstract method method1a<T extends core::Object? = dynamic>() void;
abstract method method1b<T extends core::Object? = dynamic>() void;
abstract method method1c<T extends core::Object? = dynamic>() void;
abstract method method2a<T extends core::Object? = core::Object?>() void;
abstract method method2b<T extends core::Object? = core::Object?>() void;
abstract method method2c<T extends core::Object? = core::Object?>() void;
abstract method method3a<T extends dynamic = dynamic>() void;
abstract method method3b<T extends dynamic = dynamic>() void;
abstract method method3c<T extends dynamic = dynamic>() void;
abstract method method4a<T extends core::Object = core::Object>() void;
abstract method method4b<T extends core::Object = core::Object>() void;
abstract method method4c<T extends core::Object? = core::Object?>() void;
abstract method method5a<T extends self::Class1 = self::Class1>() void;
abstract method method5b<T extends self::Class1 = self::Class1>() void;
abstract method method5c<T extends self::Class1? = self::Class1?>() void;
}
abstract class Class2 extends self::Class1 {
synthetic constructor •() self::Class2
;
abstract method method1a<T extends core::Object? = dynamic>() void;
abstract method method1b<T extends core::Object? = core::Object?>() void;
abstract method method1c<T extends dynamic = dynamic>() void;
abstract method method2a<T extends core::Object? = dynamic>() void;
abstract method method2b<T extends core::Object? = core::Object?>() void;
abstract method method2c<T extends dynamic = dynamic>() void;
abstract method method3a<T extends core::Object? = dynamic>() void;
abstract method method3b<T extends core::Object? = core::Object?>() void;
abstract method method3c<T extends dynamic = dynamic>() void;
abstract method method4a<T extends core::Object = core::Object>() void;
abstract method method4b<T extends core::Object? = core::Object?>() void;
abstract method method4c<T extends core::Object = core::Object>() void;
abstract method method5a<T extends self::Class1 = self::Class1>() void;
abstract method method5b<T extends self::Class1? = self::Class1?>() void;
abstract method method5c<T extends self::Class1 = self::Class1>() void;
}
static method main() dynamic
;