blob: ff9e0ea168ae174cacfd7594ef05e01b31ac0bd6 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:5:7: Error: The non-abstract class 'Interface' is missing implementations for these members:
// - Interface.declaredAbstractImplementsAbstractMethod
// - Interface.declaredConcreteImplementsAbstractMethod
// - Interface.implementedAbstractMethod
// 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_method.dart:16:8: Context: 'Interface.declaredAbstractImplementsAbstractMethod' is defined here.
// void declaredAbstractImplementsAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:14:8: Context: 'Interface.declaredConcreteImplementsAbstractMethod' is defined here.
// void declaredConcreteImplementsAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:8:8: Context: 'Interface.implementedAbstractMethod' is defined here.
// void implementedAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:19:7: Error: The non-abstract class 'ConcreteClass' is missing implementations for these members:
// - ConcreteClass.declaredAbstractImplementsAbstractMethod
// - ConcreteClass.declaredAbstractImplementsConcreteMethod
// - ConcreteClass.declaredAbstractMethod
// - Interface.implementedAbstractMethod
// - Interface.implementedConcreteMethod
// 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_method.dart:30:8: Context: 'ConcreteClass.declaredAbstractImplementsAbstractMethod' is defined here.
// void declaredAbstractImplementsAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:26:8: Context: 'ConcreteClass.declaredAbstractImplementsConcreteMethod' is defined here.
// void declaredAbstractImplementsConcreteMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:22:8: Context: 'ConcreteClass.declaredAbstractMethod' is defined here.
// void declaredAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:8:8: Context: 'Interface.implementedAbstractMethod' is defined here.
// void implementedAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_implements_method.dart:6:8: Context: 'Interface.implementedConcreteMethod' is defined here.
// void implementedConcreteMethod() {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
class Interface extends core::Object {
synthetic constructor •() self::Interface
: super core::Object::•()
;
method implementedConcreteMethod() void {}
abstract method implementedAbstractMethod() void;
method declaredConcreteImplementsConcreteMethod() void {}
method declaredAbstractImplementsConcreteMethod() void {}
abstract method declaredConcreteImplementsAbstractMethod() void;
abstract method declaredAbstractImplementsAbstractMethod() void;
}
class ConcreteClass extends core::Object implements self::Interface {
synthetic constructor •() self::ConcreteClass
: super core::Object::•()
;
method declaredConcreteMethod() void {}
abstract method declaredAbstractMethod() void;
method declaredConcreteImplementsConcreteMethod() void {}
abstract method declaredAbstractImplementsConcreteMethod() void;
method declaredConcreteImplementsAbstractMethod() void {}
abstract method declaredAbstractImplementsAbstractMethod() void;
}
static method main() dynamic {}