| // Copyright (c) 2013, 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. |
| |
| 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); |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS |
| // ^^^^^^^ |
| // [cfe] Too many positional arguments: 0 allowed, but 3 found. |
| new C0.named(); |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.NEW_WITH_UNDEFINED_CONSTRUCTOR |
| // [cfe] Method not found: 'C0.named'. |
| new D0(1,2,3); |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS |
| // ^^^^^^^ |
| // [cfe] Too many positional arguments: 0 allowed, but 3 found. |
| new D0.named(); |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.NEW_WITH_UNDEFINED_CONSTRUCTOR |
| // [cfe] Method not found: 'D0.named'. |
| } |