blob: 22ccaeebdf852970540862ab297776eb1d083c04 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/issue41210a.dart:21:7: Error: Applying the mixin 'B' to 'Object with A' introduces an erroneous override of 'method'.
// class C with A, B {} // error
// ^
// pkg/front_end/testcases/general/issue41210a.dart:18:10: Context: The method 'B.method' has fewer named arguments than those of overridden method 'Object with A.method'.
// String method(num i);
// ^
// pkg/front_end/testcases/general/issue41210a.dart:21:7: Context: This is the overridden method ('method').
// class C with A, B {} // error
// ^
//
import self as self;
import "dart:core" as core;
abstract class Interface extends core::Object {
synthetic constructor •() self::Interface
;
abstract method method(core::num i) core::String;
}
abstract class Interface2 extends core::Object {
synthetic constructor •() self::Interface2
;
abstract method method(covariant-by-declaration core::int i) core::String;
}
abstract class A extends core::Object implements self::Interface /*isMixinDeclaration*/ {
method method(core::num i, {core::String s = "hello"}) core::String
;
}
abstract class B extends core::Object implements self::Interface {
synthetic constructor •() self::B
;
abstract method method(core::num i) core::String;
}
abstract class _C&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_C&Object&A
: super core::Object::•()
;
mixin-super-stub method method(core::num i, {core::String s}) core::String
return super.{self::A::method}(i, s: s);
}
abstract class _C&Object&A&B = self::_C&Object&A with self::B /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_C&Object&A&B
: super self::_C&Object&A::•()
;
abstract mixin-stub method method(core::num i) core::String; -> self::B::method
}
class C extends self::_C&Object&A&B {
synthetic constructor •() self::C
;
}
abstract class D extends core::Object implements self::Interface, self::Interface2 {
synthetic constructor •() self::D
;
abstract forwarding-stub method method(covariant-by-declaration core::num i) core::String;
}
abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_E&Object&A
: super core::Object::•()
;
mixin-super-stub method method(core::num i, {core::String s}) core::String
return super.{self::A::method}(i, s: s);
}
abstract class _E&Object&A&D = self::_E&Object&A with self::D /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_E&Object&A&D
: super self::_E&Object&A::•()
;
forwarding-stub method method(covariant-by-declaration core::num i, {core::String s}) core::String
return super.{self::_E&Object&A::method}(i, s: s);
}
class E extends self::_E&Object&A&D {
synthetic constructor •() self::E
;
}
abstract class F extends core::Object implements self::Interface {
synthetic constructor •() self::F
;
}
abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_G&Object&A
: super core::Object::•()
;
mixin-super-stub method method(core::num i, {core::String s}) core::String
return super.{self::A::method}(i, s: s);
}
abstract class _G&Object&A&F = self::_G&Object&A with self::F /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_G&Object&A&F
: super self::_G&Object&A::•()
;
}
class G extends self::_G&Object&A&F {
synthetic constructor •() self::G
;
}
static method main() dynamic
;