library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:10:23: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// class D implements C, C {}
//                       ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:11:24: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// class D2 implements C, CAlias {}
//                        ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:12:29: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// class D3 implements CAlias, C {}
//                             ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:13:24: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// class D4 implements C, self.C {}
//                        ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:14:29: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// class D5 implements self.C, C {}
//                             ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:16:16: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// mixin CM on C, C {}
//                ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:17:17: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// mixin CM2 on C, CAlias {}
//                 ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:18:22: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// mixin CM3 on CAlias, C {}
//                      ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:19:22: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// mixin CM4 on self.C, C {}
//                      ^
//
// pkg/front_end/testcases/nonfunction_type_aliases/issue45626.dart:20:17: Error: 'C' can only be implemented once.
// Try removing 1 of the occurrences.
// mixin CM5 on C, self.C {}
//                 ^
//
import self as self;
import "dart:core" as core;

import "org-dartlang-testcase:///issue45626.dart" as self;

typedef CAlias = self::C;
class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
}
class D extends core::Object implements self::C, self::C {
  synthetic constructor •() → self::D
    : super core::Object::•()
    ;
}
class D2 extends core::Object implements self::C, self::C {
  synthetic constructor •() → self::D2
    : super core::Object::•()
    ;
}
class D3 extends core::Object implements self::C, self::C {
  synthetic constructor •() → self::D3
    : super core::Object::•()
    ;
}
class D4 extends core::Object implements self::C, self::C {
  synthetic constructor •() → self::D4
    : super core::Object::•()
    ;
}
class D5 extends core::Object implements self::C, self::C {
  synthetic constructor •() → self::D5
    : super core::Object::•()
    ;
}
abstract class _CM&C&C extends core::Object implements self::C, self::C /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_CM&C&C
    : super core::Object::•()
    ;
}
abstract class CM extends self::_CM&C&C /*isMixinDeclaration*/  {
}
abstract class _CM2&C&CAlias extends core::Object implements self::C, self::C /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_CM2&C&CAlias
    : super core::Object::•()
    ;
}
abstract class CM2 extends self::_CM2&C&CAlias /*isMixinDeclaration*/  {
}
abstract class _CM3&CAlias&C extends core::Object implements self::C, self::C /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_CM3&CAlias&C
    : super core::Object::•()
    ;
}
abstract class CM3 extends self::_CM3&CAlias&C /*isMixinDeclaration*/  {
}
abstract class _CM4&C&C extends core::Object implements self::C, self::C /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_CM4&C&C
    : super core::Object::•()
    ;
}
abstract class CM4 extends self::_CM4&C&C /*isMixinDeclaration*/  {
}
abstract class _CM5&C&C extends core::Object implements self::C, self::C /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_CM5&C&C
    : super core::Object::•()
    ;
}
abstract class CM5 extends self::_CM5&C&C /*isMixinDeclaration*/  {
}
static method main() → dynamic {}
