| // Copyright (c) 2023, the Dart project authors.  Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | // @dart=2.19 | 
 |  | 
 | class M0 { | 
 |   factory M0(a, b, c) => throw "uncalled"; | 
 |   factory M0.named() => throw "uncalled"; | 
 | } | 
 |  | 
 | class M1 { | 
 |   M1(); | 
 | } | 
 |  | 
 | class M2 { | 
 |   M2.named(); | 
 | } | 
 |  | 
 | class C0 = Object with M0; | 
 | class C1 = Object with M1; | 
 | //    ^ | 
 | // [cfe] Can't use 'M1' as a mixin because it has constructors. | 
 | //                     ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 | class C2 = Object with M2; | 
 | //    ^ | 
 | // [cfe] Can't use 'M2' as a mixin because it has constructors. | 
 | //                     ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 | class C3 = Object with M0, M1; | 
 | //    ^ | 
 | // [cfe] Can't use 'M1' as a mixin because it has constructors. | 
 | //                         ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 | class C4 = Object with M1, M0; | 
 | //    ^ | 
 | // [cfe] Can't use 'M1' as a mixin because it has constructors. | 
 | //                     ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 | class C5 = Object with M0, M2; | 
 | //    ^ | 
 | // [cfe] Can't use 'M2' as a mixin because it has constructors. | 
 | //                         ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 | class C6 = Object with M2, M0; | 
 | //    ^ | 
 | // [cfe] Can't use 'M2' as a mixin because it has constructors. | 
 | //                     ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | class D0 extends Object with M0 {} | 
 |  | 
 | class D1 extends Object with M1 {} | 
 | //    ^ | 
 | // [cfe] Can't use 'M1' as a mixin because it has constructors. | 
 | //                           ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | class D2 extends Object with M2 {} | 
 | //    ^ | 
 | // [cfe] Can't use 'M2' as a mixin because it has constructors. | 
 | //                           ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | class D3 extends Object with M0, M1 {} | 
 | //    ^ | 
 | // [cfe] Can't use 'M1' as a mixin because it has constructors. | 
 | //                               ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | class D4 extends Object with M1, M0 {} | 
 | //    ^ | 
 | // [cfe] Can't use 'M1' as a mixin because it has constructors. | 
 | //                           ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | class D5 extends Object with M0, M2 {} | 
 | //    ^ | 
 | // [cfe] Can't use 'M2' as a mixin because it has constructors. | 
 | //                               ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | class D6 extends Object with M2, M0 {} | 
 | //    ^ | 
 | // [cfe] Can't use 'M2' as a mixin because it has constructors. | 
 | //                           ^^ | 
 | // [analyzer] COMPILE_TIME_ERROR.MIXIN_CLASS_DECLARES_CONSTRUCTOR | 
 |  | 
 | main() { | 
 |   new C0(); | 
 |   new C1(); | 
 |   new C2(); | 
 |   new C3(); | 
 |   new C4(); | 
 |   new C5(); | 
 |   new C6(); | 
 |  | 
 |   new D0(); | 
 |   new D1(); | 
 |   new D2(); | 
 |   new D3(); | 
 |   new D4(); | 
 |   new D5(); | 
 |   new D6(); | 
 |  | 
 |   new C0(1, 2, 3); | 
 |   //    ^ | 
 |   // [cfe] Too many positional arguments: 0 allowed, but 3 found. | 
 |   //     ^ | 
 |   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS | 
 |   new C0.named(); | 
 |   //     ^^^^^ | 
 |   // [analyzer] COMPILE_TIME_ERROR.NEW_WITH_UNDEFINED_CONSTRUCTOR | 
 |   // [cfe] Couldn't find constructor 'C0.named'. | 
 |   new D0(1, 2, 3); | 
 |   //    ^ | 
 |   // [cfe] Too many positional arguments: 0 allowed, but 3 found. | 
 |   //     ^ | 
 |   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS | 
 |   new D0.named(); | 
 |   //     ^^^^^ | 
 |   // [analyzer] COMPILE_TIME_ERROR.NEW_WITH_UNDEFINED_CONSTRUCTOR | 
 |   // [cfe] Couldn't find constructor 'D0.named'. | 
 | } |