dart-sdk/tests/language/mixin_declaration/mixin_declaration_inference_invalid_10_test.dart
Robert Nystrom 924b9f55ba Migrate "l" and "m" directory language tests off @compile-error.
The "@compile-error" comment is an old not-great way of defining static
error tests.

Also fix a test to use a mixin declaration instead of a class for declaring a mixin. This was
broken by class modifiers but the breakage was masked by @compile-error treating a test as
passing if any compile error, even an unrelated one, is reported.

See: https://github.com/dart-lang/sdk/issues/45634
Change-Id: I5d1d387002d886cb87340e2559bf8ed01c3f2d6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296409
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2023-04-20 17:51:42 +00:00

23 lines
787 B
Dart

// Copyright (c) 2018, 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.
mixin I<T> {}
mixin J<T> {}
mixin M0<T> implements I<T>, J<T> {}
//////////////////////////////////////////////////////
// Over-constrained results are caught
///////////////////////////////////////////////////////
class A with I<int>, J<double>, M0 {}
// ^
// [analyzer] COMPILE_TIME_ERROR.CONFLICTING_GENERIC_INTERFACES
// [analyzer] COMPILE_TIME_ERROR.CONFLICTING_GENERIC_INTERFACES
// [cfe] 'Object with I, J, M0' can't implement both 'I<int>' and 'I<dynamic>'
// [cfe] 'Object with I, J, M0' can't implement both 'J<double>' and 'J<dynamic>'
void main() {}