// Unhandled errors:
//
// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:7: Error: 'M2 with M0' can't implement both 'I<List<Map<int, int>>>' and 'I<List<dynamic>>'
//  - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart'.
//  - 'List' is from 'dart:core'.
//  - 'Map' is from 'dart:core'.
// class A extends M2<int> with M0 {}
//       ^
//
// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:7: Error: 'A' can't implement both 'I<List<Map<int, int>>>' and 'I<List<dynamic>>'
//  - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart'.
//  - 'List' is from 'dart:core'.
//  - 'Map' is from 'dart:core'.
// class A extends M2<int> with M0 {}
//       ^

library;
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::•()
    ;
}
class M0<T extends core::Object = dynamic> extends self::I<core::List<self::M0::T>> {
  synthetic constructor •() → self::M0<self::M0::T>
    : super self::I::•()
    ;
}
class M1<T extends core::Object = dynamic> extends self::I<core::List<self::M1::T>> {
  synthetic constructor •() → self::M1<self::M1::T>
    : super self::I::•()
    ;
}
class M2<T extends core::Object = dynamic> extends self::M1<core::Map<self::M2::T, self::M2::T>> {
  synthetic constructor •() → self::M2<self::M2::T>
    : super self::M1::•()
    ;
}
abstract class _A&M2&M0 extends self::M2<core::int> implements self::M0<dynamic> {
  synthetic constructor •() → self::_A&M2&M0
    : super self::M2::•()
    ;
}
class A extends self::_A&M2&M0 {
  synthetic constructor •() → self::A
    : super self::_A&M2&M0::•()
    ;
}
static method main() → dynamic {}
