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

abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
}
abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
}
base class S extends core::Object {
  synthetic constructor •() → self::S
    : super core::Object::•()
    ;
}
final class C extends self::_C&S&M1&M2 {
  synthetic constructor •() → self::C
    : super self::_C&S&M1&M2::•()
    ;
}
final class D = self::_D&S&M1 with self::M2 {
  synthetic constructor •() → self::D
    : super self::_D&S&M1::•()
    ;
}
abstract final class _C&S&M1 = self::S with self::M1 /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_C&S&M1
    : super self::S::•()
    ;
}
abstract final class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_C&S&M1&M2
    : super self::_C&S&M1::•()
    ;
}
abstract final class _D&S&M1 = self::S with self::M1 /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_D&S&M1
    : super self::S::•()
    ;
}
