blob: db60ecb46d5bf6e3d2ad6acd29a46e08305974c9 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/mixin_application_override.dart:21:7: Error: The mixin application class 'A0' introduces an erroneous override of 'foo'.
// class A0 = S with M;
// ^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:22:7: Error: The mixin application class 'A1' introduces an erroneous override of 'foo'.
// class A1 = S with M1, M;
// ^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:23:7: Error: The mixin application class 'A2' introduces an erroneous override of 'foo'.
// class A2 = S with M1, M2, M;
// ^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:25:7: Error: Applying the mixin 'M' to 'S' introduces an erroneous override of 'foo'.
// class A0X = S with M, MX;
// ^^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:26:7: Error: Applying the mixin 'M' to 'S with M1' introduces an erroneous override of 'foo'.
// class A1X = S with M1, M, MX;
// ^^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:27:7: Error: Applying the mixin 'M' to 'S with M1, M2' introduces an erroneous override of 'foo'.
// class A2X = S with M1, M2, M, MX;
// ^^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:29:7: Error: Applying the mixin 'M' to 'S' introduces an erroneous override of 'foo'.
// class B0 extends S with M {}
// ^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:31:7: Error: Applying the mixin 'M' to 'S with M1' introduces an erroneous override of 'foo'.
// class B1 extends S with M1, M {}
// ^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:33:7: Error: Applying the mixin 'M' to 'S with M1, M2' introduces an erroneous override of 'foo'.
// class B2 extends S with M1, M2, M {}
// ^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:35:7: Error: Applying the mixin 'M' to 'S' introduces an erroneous override of 'foo'.
// class B0X extends S with M, MX {}
// ^^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:37:7: Error: Applying the mixin 'M' to 'S with M1' introduces an erroneous override of 'foo'.
// class B1X extends S with M1, M, MX {}
// ^^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
// pkg/front_end/testcases/general/mixin_application_override.dart:39:7: Error: Applying the mixin 'M' to 'S with M1, M2' introduces an erroneous override of 'foo'.
// class B2X extends S with M1, M2, M, MX {}
// ^^^
// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Context: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
// foo() {}
// ^
// pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
// foo([x]) {}
// ^
//
import self as self;
import "dart:core" as core;
class S extends core::Object {
synthetic constructor •() self::S*
;
method foo([dynamic x]) dynamic
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
class M extends core::Object {
synthetic constructor •() self::M*
;
method foo() dynamic
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
class M1 extends core::Object {
synthetic constructor •() self::M1*
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
class M2 extends core::Object {
synthetic constructor •() self::M2*
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
class MX extends core::Object {
synthetic constructor •() self::MX*
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
class A0 = self::S with self::M {
synthetic constructor •() self::A0*
: super self::S::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
abstract class _A1&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_A1&S&M1*
: super self::S::•()
;
}
class A1 = self::_A1&S&M1 with self::M {
synthetic constructor •() self::A1*
: super self::_A1&S&M1::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
abstract class _A2&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_A2&S&M1*
: super self::S::•()
;
}
abstract class _A2&S&M1&M2 = self::_A2&S&M1 with self::M2 /*isAnonymousMixin*/ {
synthetic constructor •() self::_A2&S&M1&M2*
: super self::_A2&S&M1::•()
;
}
class A2 = self::_A2&S&M1&M2 with self::M {
synthetic constructor •() self::A2*
: super self::_A2&S&M1&M2::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
abstract class _A0X&S&M = self::S with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_A0X&S&M*
: super self::S::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
class A0X = self::_A0X&S&M with self::MX {
synthetic constructor •() self::A0X*
: super self::_A0X&S&M::•()
;
}
abstract class _A1X&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_A1X&S&M1*
: super self::S::•()
;
}
abstract class _A1X&S&M1&M = self::_A1X&S&M1 with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_A1X&S&M1&M*
: super self::_A1X&S&M1::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
class A1X = self::_A1X&S&M1&M with self::MX {
synthetic constructor •() self::A1X*
: super self::_A1X&S&M1&M::•()
;
}
abstract class _A2X&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_A2X&S&M1*
: super self::S::•()
;
}
abstract class _A2X&S&M1&M2 = self::_A2X&S&M1 with self::M2 /*isAnonymousMixin*/ {
synthetic constructor •() self::_A2X&S&M1&M2*
: super self::_A2X&S&M1::•()
;
}
abstract class _A2X&S&M1&M2&M = self::_A2X&S&M1&M2 with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_A2X&S&M1&M2&M*
: super self::_A2X&S&M1&M2::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
class A2X = self::_A2X&S&M1&M2&M with self::MX {
synthetic constructor •() self::A2X*
: super self::_A2X&S&M1&M2&M::•()
;
}
abstract class _B0&S&M = self::S with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_B0&S&M*
: super self::S::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
class B0 extends self::_B0&S&M {
synthetic constructor •() self::B0*
;
}
abstract class _B1&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_B1&S&M1*
: super self::S::•()
;
}
abstract class _B1&S&M1&M = self::_B1&S&M1 with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_B1&S&M1&M*
: super self::_B1&S&M1::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
class B1 extends self::_B1&S&M1&M {
synthetic constructor •() self::B1*
;
}
abstract class _B2&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2&S&M1*
: super self::S::•()
;
}
abstract class _B2&S&M1&M2 = self::_B2&S&M1 with self::M2 /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2&S&M1&M2*
: super self::_B2&S&M1::•()
;
}
abstract class _B2&S&M1&M2&M = self::_B2&S&M1&M2 with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2&S&M1&M2&M*
: super self::_B2&S&M1&M2::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
class B2 extends self::_B2&S&M1&M2&M {
synthetic constructor •() self::B2*
;
}
abstract class _B0X&S&M = self::S with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_B0X&S&M*
: super self::S::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
abstract class _B0X&S&M&MX = self::_B0X&S&M with self::MX /*isAnonymousMixin*/ {
synthetic constructor •() self::_B0X&S&M&MX*
: super self::_B0X&S&M::•()
;
}
class B0X extends self::_B0X&S&M&MX {
synthetic constructor •() self::B0X*
;
}
abstract class _B1X&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_B1X&S&M1*
: super self::S::•()
;
}
abstract class _B1X&S&M1&M = self::_B1X&S&M1 with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_B1X&S&M1&M*
: super self::_B1X&S&M1::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
abstract class _B1X&S&M1&M&MX = self::_B1X&S&M1&M with self::MX /*isAnonymousMixin*/ {
synthetic constructor •() self::_B1X&S&M1&M&MX*
: super self::_B1X&S&M1&M::•()
;
}
class B1X extends self::_B1X&S&M1&M&MX {
synthetic constructor •() self::B1X*
;
}
abstract class _B2X&S&M1 = self::S with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2X&S&M1*
: super self::S::•()
;
}
abstract class _B2X&S&M1&M2 = self::_B2X&S&M1 with self::M2 /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2X&S&M1&M2*
: super self::_B2X&S&M1::•()
;
}
abstract class _B2X&S&M1&M2&M = self::_B2X&S&M1&M2 with self::M /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2X&S&M1&M2&M*
: super self::_B2X&S&M1&M2::•()
;
mixin-super-stub method foo() dynamic
return super.{self::M::foo}();
}
abstract class _B2X&S&M1&M2&M&MX = self::_B2X&S&M1&M2&M with self::MX /*isAnonymousMixin*/ {
synthetic constructor •() self::_B2X&S&M1&M2&M&MX*
: super self::_B2X&S&M1&M2&M::•()
;
}
class B2X extends self::_B2X&S&M1&M2&M&MX {
synthetic constructor •() self::B2X*
;
}
static method main() dynamic
;