blob: 39f968fd2fd89bbc54716f2ed51ef1d2a6b78e12 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:37:7: Error: The non-abstract class 'ConcreteSub' is missing implementations for these members:
// - Interface1.extendedAbstractImplementedGetter
// - Interface1.extendedAbstractImplementedMultipleGetter
// - Interface2.extendedAbstractImplementedMultipleGetter
// - Super.extendedAbstractGetter
// - Super.extendedAbstractImplementedGetter
// - Super.extendedAbstractImplementedMultipleGetter
// 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_getter.dart:22:11: Context: 'Interface1.extendedAbstractImplementedGetter' is defined here.
// int get extendedAbstractImplementedGetter => 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:26:11: Context: 'Interface1.extendedAbstractImplementedMultipleGetter' is defined here.
// int get extendedAbstractImplementedMultipleGetter => 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:32:11: Context: 'Interface2.extendedAbstractImplementedMultipleGetter' is defined here.
// int get extendedAbstractImplementedMultipleGetter => 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:8:11: Context: 'Super.extendedAbstractGetter' is defined here.
// int get extendedAbstractGetter;
// ^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:12:11: Context: 'Super.extendedAbstractImplementedGetter' is defined here.
// int get extendedAbstractImplementedGetter;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:16:11: Context: 'Super.extendedAbstractImplementedMultipleGetter' is defined here.
// int get extendedAbstractImplementedMultipleGetter;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:39:7: Error: The non-abstract class 'ConcreteClass' is missing implementations for these members:
// - Interface1.extendedAbstractImplementedGetter
// - Interface1.extendedAbstractImplementedMultipleGetter
// - Interface2.extendedAbstractImplementedMultipleGetter
// - Super.extendedAbstractGetter
// - Super.extendedAbstractImplementedGetter
// - Super.extendedAbstractImplementedMultipleGetter
// 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_getter.dart:22:11: Context: 'Interface1.extendedAbstractImplementedGetter' is defined here.
// int get extendedAbstractImplementedGetter => 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:26:11: Context: 'Interface1.extendedAbstractImplementedMultipleGetter' is defined here.
// int get extendedAbstractImplementedMultipleGetter => 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:32:11: Context: 'Interface2.extendedAbstractImplementedMultipleGetter' is defined here.
// int get extendedAbstractImplementedMultipleGetter => 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:8:11: Context: 'Super.extendedAbstractGetter' is defined here.
// int get extendedAbstractGetter;
// ^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:12:11: Context: 'Super.extendedAbstractImplementedGetter' is defined here.
// int get extendedAbstractImplementedGetter;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd_mixed/hierarchy/extend_multiple_getter.dart:16:11: Context: 'Super.extendedAbstractImplementedMultipleGetter' is defined here.
// int get extendedAbstractImplementedMultipleGetter;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
abstract class Super extends core::Object {
synthetic constructor •() self::Super
: super core::Object::•()
;
get extendedConcreteGetter() core::int
return 0;
abstract get extendedAbstractGetter() core::int;
get extendedConcreteImplementedGetter() core::int
return 0;
abstract get extendedAbstractImplementedGetter() core::int;
get extendedConcreteImplementedMultipleGetter() core::int
return 0;
abstract get extendedAbstractImplementedMultipleGetter() core::int;
}
class Interface1 extends core::Object {
synthetic constructor •() self::Interface1
: super core::Object::•()
;
get extendedConcreteImplementedGetter() core::int
return 0;
get extendedAbstractImplementedGetter() core::int
return 0;
get extendedConcreteImplementedMultipleGetter() core::int
return 0;
get extendedAbstractImplementedMultipleGetter() core::int
return 0;
}
class Interface2 extends core::Object {
synthetic constructor •() self::Interface2
: super core::Object::•()
;
get extendedConcreteImplementedMultipleGetter() core::int
return 0;
get extendedAbstractImplementedMultipleGetter() core::int
return 0;
}
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 {}