blob: becdaa6d1aeb50c61aed7c4297bd4f70ec32c0f5 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:37:7: Error: The non-abstract class 'ConcreteSub' is missing implementations for these members:
// - Interface1.extendedAbstractImplementedField
// - Interface1.extendedAbstractImplementedMultipleField
// - Interface2.extendedAbstractImplementedMultipleField
// - Super.extendedAbstractField
// - Super.extendedAbstractField=
// - Super.extendedAbstractImplementedField
// - Super.extendedAbstractImplementedField=
// - Super.extendedAbstractImplementedMultipleField
// - Super.extendedAbstractImplementedMultipleField=
// Try to either
// - provide an implementation,
// - inherit an implementation from a superclass or mixin,
// - mark the class as abstract, or
// - provide a 'noSuchMethod' implementation.
//
// class ConcreteSub extends AbstractClass {}
// ^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:22:7: Context: 'Interface1.extendedAbstractImplementedField' is defined here.
// int extendedAbstractImplementedField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:26:7: Context: 'Interface1.extendedAbstractImplementedMultipleField' is defined here.
// int extendedAbstractImplementedMultipleField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:32:7: Context: 'Interface2.extendedAbstractImplementedMultipleField' is defined here.
// int extendedAbstractImplementedMultipleField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:8:16: Context: 'Super.extendedAbstractField' is defined here.
// abstract int extendedAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:8:16: Context: 'Super.extendedAbstractField=' is defined here.
// abstract int extendedAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:12:16: Context: 'Super.extendedAbstractImplementedField' is defined here.
// abstract int extendedAbstractImplementedField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:12:16: Context: 'Super.extendedAbstractImplementedField=' is defined here.
// abstract int extendedAbstractImplementedField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:16:16: Context: 'Super.extendedAbstractImplementedMultipleField' is defined here.
// abstract int extendedAbstractImplementedMultipleField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:16:16: Context: 'Super.extendedAbstractImplementedMultipleField=' is defined here.
// abstract int extendedAbstractImplementedMultipleField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:39:7: Error: The non-abstract class 'ConcreteClass' is missing implementations for these members:
// - Interface1.extendedAbstractImplementedField
// - Interface1.extendedAbstractImplementedMultipleField
// - Interface2.extendedAbstractImplementedMultipleField
// - Super.extendedAbstractField
// - Super.extendedAbstractField=
// - Super.extendedAbstractImplementedField
// - Super.extendedAbstractImplementedField=
// - Super.extendedAbstractImplementedMultipleField
// - Super.extendedAbstractImplementedMultipleField=
// Try to either
// - provide an implementation,
// - inherit an implementation from a superclass or mixin,
// - mark the class as abstract, or
// - provide a 'noSuchMethod' implementation.
//
// class ConcreteClass extends Super implements Interface1, Interface2 {}
// ^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:22:7: Context: 'Interface1.extendedAbstractImplementedField' is defined here.
// int extendedAbstractImplementedField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:26:7: Context: 'Interface1.extendedAbstractImplementedMultipleField' is defined here.
// int extendedAbstractImplementedMultipleField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:32:7: Context: 'Interface2.extendedAbstractImplementedMultipleField' is defined here.
// int extendedAbstractImplementedMultipleField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:8:16: Context: 'Super.extendedAbstractField' is defined here.
// abstract int extendedAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:8:16: Context: 'Super.extendedAbstractField=' is defined here.
// abstract int extendedAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:12:16: Context: 'Super.extendedAbstractImplementedField' is defined here.
// abstract int extendedAbstractImplementedField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:12:16: Context: 'Super.extendedAbstractImplementedField=' is defined here.
// abstract int extendedAbstractImplementedField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:16:16: Context: 'Super.extendedAbstractImplementedMultipleField' is defined here.
// abstract int extendedAbstractImplementedMultipleField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_field.dart:16:16: Context: 'Super.extendedAbstractImplementedMultipleField=' is defined here.
// abstract int extendedAbstractImplementedMultipleField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
abstract class Super extends core::Object {
field core::int extendedConcreteField = 0;
field core::int extendedConcreteImplementedField = 0;
field core::int extendedConcreteImplementedMultipleField = 0;
synthetic constructor •() self::Super
: super core::Object::•()
;
abstract get extendedAbstractField() core::int;
abstract set extendedAbstractField(core::int #externalFieldValue) → void;
abstract get extendedAbstractImplementedField() core::int;
abstract set extendedAbstractImplementedField(core::int #externalFieldValue) → void;
abstract get extendedAbstractImplementedMultipleField() core::int;
abstract set extendedAbstractImplementedMultipleField(core::int #externalFieldValue) → void;
}
class Interface1 extends core::Object {
field core::int extendedConcreteImplementedField = 0;
field core::int extendedAbstractImplementedField = 0;
field core::int extendedConcreteImplementedMultipleField = 0;
field core::int extendedAbstractImplementedMultipleField = 0;
synthetic constructor •() self::Interface1
: super core::Object::•()
;
}
class Interface2 extends core::Object {
field core::int extendedConcreteImplementedMultipleField = 0;
field core::int extendedAbstractImplementedMultipleField = 0;
synthetic constructor •() self::Interface2
: super core::Object::•()
;
}
abstract class AbstractClass extends self::Super implements self::Interface1, self::Interface2 {
synthetic constructor •() self::AbstractClass
: super self::Super::•()
;
}
class ConcreteSub extends self::AbstractClass {
synthetic constructor •() self::ConcreteSub
: super self::AbstractClass::•()
;
}
class ConcreteClass extends self::Super implements self::Interface1, self::Interface2 {
synthetic constructor •() self::ConcreteClass
: super self::Super::•()
;
}
static method main() dynamic {}