blob: 921aaecc9d8eba681f0402cb1ed11af501e4223e [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:5:7: Error: The non-abstract class 'Interface' is missing implementations for these members:
// - Interface.declaredAbstractImplementsAbstractField
// - Interface.declaredConcreteImplementsAbstractField
// - Interface.implementedAbstractField
// 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 Interface {
// ^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:16:22: Context: 'Interface.declaredAbstractImplementsAbstractField' is defined here.
// abstract final int declaredAbstractImplementsAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:14:22: Context: 'Interface.declaredConcreteImplementsAbstractField' is defined here.
// abstract final int declaredConcreteImplementsAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:8:22: Context: 'Interface.implementedAbstractField' is defined here.
// abstract final int implementedAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:19:7: Error: The non-abstract class 'ConcreteClass' is missing implementations for these members:
// - ConcreteClass.declaredAbstractField
// - ConcreteClass.declaredAbstractImplementsAbstractField
// - ConcreteClass.declaredAbstractImplementsConcreteField
// - Interface.implementedAbstractField
// - Interface.implementedConcreteField
// 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 implements Interface {
// ^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:22:22: Context: 'ConcreteClass.declaredAbstractField' is defined here.
// abstract final int declaredAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:30:22: Context: 'ConcreteClass.declaredAbstractImplementsAbstractField' is defined here.
// abstract final int declaredAbstractImplementsAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:26:22: Context: 'ConcreteClass.declaredAbstractImplementsConcreteField' is defined here.
// abstract final int declaredAbstractImplementsConcreteField;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:8:22: Context: 'Interface.implementedAbstractField' is defined here.
// abstract final int implementedAbstractField;
// ^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_final_field.dart:6:13: Context: 'Interface.implementedConcreteField' is defined here.
// final int implementedConcreteField = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
class Interface extends core::Object {
final field core::int implementedConcreteField = 0;
final field core::int declaredConcreteImplementsConcreteField = 0;
final field core::int declaredAbstractImplementsConcreteField = 0;
synthetic constructor •() self::Interface
: super core::Object::•()
;
abstract get implementedAbstractField() core::int;
abstract get declaredConcreteImplementsAbstractField() core::int;
abstract get declaredAbstractImplementsAbstractField() core::int;
}
class ConcreteClass extends core::Object implements self::Interface {
final field core::int declaredConcreteField = 0;
final field core::int declaredConcreteImplementsConcreteField = 0;
final field core::int declaredConcreteImplementsAbstractField = 0;
synthetic constructor •() self::ConcreteClass
: super core::Object::•()
;
abstract get declaredAbstractField() core::int;
abstract get declaredAbstractImplementsConcreteField() core::int;
abstract get declaredAbstractImplementsAbstractField() core::int;
}
static method main() dynamic {}