blob: 0eba0b9865cc7f1576a3b96e554a16cbe6720a59 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:5:7: Error: The non-abstract class 'ConcreteSuper' is missing implementations for these members:
// - ConcreteSuper.declaredAbstractExtendsAbstractMethod
// - ConcreteSuper.declaredConcreteExtendsAbstractMethod
// - ConcreteSuper.extendedAbstractMethod
// 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 ConcreteSuper {
// ^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:16:8: Context: 'ConcreteSuper.declaredAbstractExtendsAbstractMethod' is defined here.
// void declaredAbstractExtendsAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:14:8: Context: 'ConcreteSuper.declaredConcreteExtendsAbstractMethod' is defined here.
// void declaredConcreteExtendsAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:8:8: Context: 'ConcreteSuper.extendedAbstractMethod' is defined here.
// void extendedAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:19:7: Error: The non-abstract class 'ConcreteClass' is missing implementations for these members:
// - ConcreteClass.declaredAbstractExtendsAbstractMethod
// - ConcreteClass.declaredAbstractMethod
// - ConcreteSuper.extendedAbstractMethod
// 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 ConcreteSuper {
// ^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:30:8: Context: 'ConcreteClass.declaredAbstractExtendsAbstractMethod' is defined here.
// void declaredAbstractExtendsAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:22:8: Context: 'ConcreteClass.declaredAbstractMethod' is defined here.
// void declaredAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/concrete_extends_method.dart:8:8: Context: 'ConcreteSuper.extendedAbstractMethod' is defined here.
// void extendedAbstractMethod();
// ^^^^^^^^^^^^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
class ConcreteSuper extends core::Object {
synthetic constructor •() self::ConcreteSuper
: super core::Object::•()
;
method extendedConcreteMethod() void {}
abstract method extendedAbstractMethod() void;
method declaredConcreteExtendsConcreteMethod() void {}
method declaredAbstractExtendsConcreteMethod() void {}
abstract method declaredConcreteExtendsAbstractMethod() void;
abstract method declaredAbstractExtendsAbstractMethod() void;
}
class ConcreteClass extends self::ConcreteSuper {
synthetic constructor •() self::ConcreteClass
: super self::ConcreteSuper::•()
;
method declaredConcreteMethod() void {}
abstract method declaredAbstractMethod() void;
method declaredConcreteExtendsConcreteMethod() void {}
abstract method declaredAbstractExtendsConcreteMethod() void;
method declaredConcreteExtendsAbstractMethod() void {}
abstract method declaredAbstractExtendsAbstractMethod() void;
}
static method main() dynamic {}