library;
import self as self;
import "dart:core" as core;

class I<X extends core::Object, Y extends core::Object> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class M0<T extends core::Object> extends core::Object implements self::I<self::M0::T, core::List<self::M0::T>> {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class M1<T extends core::Object> extends core::Object implements self::I<core::List<self::M1::T>, self::M1::T> {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
abstract class _Object&M0 = core::Object with self::M0<dynamic> {
}
abstract class __Object&M0&M1 = self::_Object&M0 with self::M1<dynamic> {
}
class A extends self::__Object&M0&M1 {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
static const field dynamic #errors = const <dynamic>["pkg/front_end/testcases/inference/mixin_inference_unification_2.dart:19:38: Error: 'A' can't implement both '#lib1::I<dynamic, dart.core::List<dynamic>>' and '#lib1::I<dart.core::List<dynamic>, dynamic>'
class /*@error=AmbiguousSupertypes*/ A extends Object with M0, M1 {}
                                     ^"]/* from null */;
static method main() → dynamic {}
