blob: 670f6640ded60ce1eed675512d7c726e9f87bcb6 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:17:7: Error: The implementation of 'foo' in the non-abstract class 'C' does not conform to its interface.
// class C extends B {}
// ^
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'B.foo'.
// void foo() {}
// ^
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:14:8: Context: This is the overridden method ('foo').
// void foo([a]);
// ^
//
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:19:7: Error: The implementation of 'foo' in the non-abstract class 'D' does not conform to its interface.
// class D extends A implements I {}
// ^
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'I.foo'.
// void foo() {}
// ^
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:10:8: Context: This is the overridden method ('foo').
// void foo([a]);
// ^
//
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:23:7: Error: The implementation of 'foo' in the non-abstract class 'F' does not conform to its interface.
// class F extends E {}
// ^
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'I.foo'.
// void foo() {}
// ^
// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:10:8: Context: This is the overridden method ('foo').
// void foo([a]);
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() self::A
;
method foo() void
;
}
abstract class I extends core::Object {
synthetic constructor •() self::I
;
abstract method foo([dynamic a]) void;
}
abstract class B extends self::A {
synthetic constructor •() self::B
;
abstract method foo([dynamic a]) void;
}
class C extends self::B {
synthetic constructor •() self::C
;
}
class D extends self::A implements self::I {
synthetic constructor •() self::D
;
abstract member-signature method foo([dynamic a]) void; -> self::I::foo
}
abstract class E extends self::A implements self::I {
synthetic constructor •() self::E
;
abstract member-signature method foo([dynamic a]) void; -> self::I::foo
}
class F extends self::E {
synthetic constructor •() self::F
;
}
static method main() dynamic
;