blob: b2b3ac7baf2fa89bafad67996694da18f1845f16 [file] [log] [blame]
// 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.
// @dart = 2.9
class M0 {
factory M0(a, b, c) => null;
factory M0.named() => null;
}
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'.
}