library;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:13:7: Error: 'Object with M0, M1' can't implement both 'I<dynamic>' and 'I<int>'
//  - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'.
// class A extends Object with M0, M1<int> {}
//       ^
//
// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:13:7: Error: '_A&Object&M0' doesn't implement 'I<int>' so it can't be used with 'M1<int>'.
//  - 'Object with M0' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'.
//  - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'.
//  - 'M1' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'.
// class A extends Object with M0, M1<int> {}
//       ^
//
import self as self;
import "dart:core" as core;

class I<X extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::I<self::I::X%>
    : super core::Object::•()
    ;
}
mixin class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
  synthetic constructor •() → self::M0<self::M0::T%>
    : super core::Object::•()
    ;
}
abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/  {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A&Object&M0
    : super core::Object::•()
    ;
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int> /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A&Object&M0&M1
    : super self::_A&Object&M0::•()
    ;
}
class A extends self::_A&Object&M0&M1 {
  synthetic constructor •() → self::A
    : super self::_A&Object&M0&M1::•()
    ;
}
static method main() → dynamic {}
