Update old mixin tests. Remove the --super-mixins flag from the tests.
Bug: http://dartbug.com/34781
Change-Id: Ib07e1927e7de35ff0c48514b9e89da65a5f192dd
Reviewed-on: https://dart-review.googlesource.com/c/79700
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
diff --git a/tests/language_2/bug32372_test.dart b/tests/language_2/bug32372_test.dart
index 3804958..2ce2b42 100644
--- a/tests/language_2/bug32372_test.dart
+++ b/tests/language_2/bug32372_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
@@ -9,7 +8,7 @@
class B<T> {}
-class C<T> extends B<T> {
+mixin C<T> on B<T> {
get t => T;
}
diff --git a/tests/language_2/issue32353_2_test.dart b/tests/language_2/issue32353_2_test.dart
index 6f0723b..c959089 100644
--- a/tests/language_2/issue32353_2_test.dart
+++ b/tests/language_2/issue32353_2_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
// The following compile-time error is expected:
//
@@ -14,7 +13,7 @@
class B<X, Y> {}
-class C<X> extends B<X, A> {}
+mixin C<X> on B<X, A> {}
class /*@compile-error=unspecified*/ D<X, Y> extends B<X, Y> with C {}
diff --git a/tests/language_2/issue32353_test.dart b/tests/language_2/issue32353_test.dart
index fbcc5d4..080d46d 100644
--- a/tests/language_2/issue32353_test.dart
+++ b/tests/language_2/issue32353_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
@@ -23,8 +22,8 @@
abstract class ForwardingFileSystemEntity<T extends FileSystemEntity,
D extends io_FileSystemEntity> implements FileSystemEntity {}
-abstract class ForwardingDirectory<T extends Directory>
- extends ForwardingFileSystemEntity<T, io_Directory> implements Directory {
+mixin ForwardingDirectory<T extends Directory>
+ on ForwardingFileSystemEntity<T, io_Directory> implements Directory {
get t => T;
}
diff --git a/tests/language_2/issue34404_flutter_test.dart b/tests/language_2/issue34404_flutter_test.dart
index 4e1c7f7..2e71697 100644
--- a/tests/language_2/issue34404_flutter_test.dart
+++ b/tests/language_2/issue34404_flutter_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
// This test case is a reduction of some Flutter code. We wish to verify that
// the class _DismissibleState doesn't have any type inference errors.
@@ -21,13 +20,12 @@
class Dismissible extends StatefulWidget {}
-abstract class TickerProviderStateMixin<T extends StatefulWidget>
- extends State<T> implements TickerProvider {}
+mixin TickerProviderStateMixin<T extends StatefulWidget> on State<T>
+ implements TickerProvider {}
abstract class TickerProvider {}
-abstract class AutomaticKeepAliveClientMixin<T extends StatefulWidget>
- extends State<T> {}
+mixin AutomaticKeepAliveClientMixin<T extends StatefulWidget> on State<T> {}
main() {
new _DismissibleState();
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index f189a96..5d74bcc 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -12,7 +12,6 @@
accessor_conflict_import_prefixed_test: CompileTimeError # Issue 25626
accessor_conflict_import_test: CompileTimeError # Issue 25626
additional_interface_adds_optional_args_test: CompileTimeError # Issue #30568
-bug32372_test: Skip
cascaded_forwarding_stubs_test: CompileTimeError # Issue 34329
config_import_corelib_test: CompileTimeError, StaticWarning, OK # failing-by-design: Will never pass, see Issue #34332
conflicting_generic_interfaces_hierarchy_loop_infinite_test: Skip # Issue #34333 (loops forever)
@@ -70,40 +69,14 @@
issue31596_super_test/none: CompileTimeError # Issue #31596
issue31596_tearoff_test: CompileTimeError # Issue #31596
issue31596_test: CompileTimeError # Issue #31596
-issue32353_2_test: Skip
-issue32353_test: Skip
-issue34404_flutter_test: Skip
issue34498_test: MissingCompileTimeError # Issue 34500
large_class_declaration_test: Slow, Pass
malformed2_test: Pass, MissingCompileTimeError # Flaky: issue 31056.
mixin_declaration/mixin_declaration_factory_test/02: Crash # Issue 34809
mixin_declaration/mixin_declaration_invalid_superinvocation_test/10: CompileTimeError # Issue 30552
mixin_method_override_test/01: MissingCompileTimeError
-mixin_of_mixin_test: Skip
-mixin_super_2_test: Skip
-mixin_super_2_test/01: MissingCompileTimeError
-mixin_super_2_test/03: MissingCompileTimeError
-mixin_super_test: Skip
-mixin_super_use_test: Skip
-mixin_superclass_test: Skip
-mixin_supertype_subclass2_test: Skip
-mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test: Skip
-mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test: Skip
-mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass_test: Skip
-mixin_supertype_subclass_test/02: MissingCompileTimeError, MissingStaticWarning # failing-by-design, see Issue #34376
-mixin_supertype_subclass_test/05: MissingCompileTimeError, MissingStaticWarning # failing-by-design, see Issue #34376
-mixin_type_parameter_inference_error_test: Skip
-mixin_type_parameter_inference_previous_mixin_test: Skip
-mixin_type_parameter_inference_test: Skip
+mixin_super_2_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
mock_writable_final_private_field_test: CompileTimeError # failing-by-design, see Issue #34377
multiple_interface_inheritance_test: CompileTimeError # Issue 30552
nested_generic_closure_test: CompileTimeError # Issue #28515
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index ca10f29..4fd51d6 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -10,7 +10,6 @@
bit_operations_test/03: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
bit_operations_test/04: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
bit_operations_test/none: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
-bug32372_test: CompileTimeError
call_method_as_cast_test/06: RuntimeError
call_method_implicit_tear_off_implements_function_test/05: RuntimeError
call_method_implicit_tear_off_implements_function_test/06: RuntimeError
@@ -47,29 +46,12 @@
int64_literal_test/19: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
int64_literal_test/none: RuntimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
issue23244_test: RuntimeError # Isolates - enum canonicalization - Issue 23244
-issue32353_test: CompileTimeError
-issue34404_flutter_test: CompileTimeError # --supermixin not supported
library_env_test/has_mirror_support: RuntimeError, OK
library_env_test/has_no_html_support: RuntimeError, OK
list_test: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
mint_arithmetic_test: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
mint_compares_test: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
mint_identical_test: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
-mixin_type_parameter_inference_error_test/none: CompileTimeError
-mixin_type_parameter_inference_previous_mixin_test/01: CompileTimeError
-mixin_type_parameter_inference_previous_mixin_test/02: CompileTimeError
-mixin_type_parameter_inference_previous_mixin_test/05: CompileTimeError
-mixin_type_parameter_inference_previous_mixin_test/none: CompileTimeError
-mixin_type_parameter_inference_test/01: CompileTimeError
-mixin_type_parameter_inference_test/02: CompileTimeError
-mixin_type_parameter_inference_test/03: CompileTimeError
-mixin_type_parameter_inference_test/08: CompileTimeError
-mixin_type_parameter_inference_test/09: CompileTimeError
-mixin_type_parameter_inference_test/10: CompileTimeError
-mixin_type_parameter_inference_test/12: CompileTimeError
-mixin_type_parameter_inference_test/13: CompileTimeError
-mixin_type_parameter_inference_test/16: CompileTimeError
-mixin_type_parameter_inference_test/none: CompileTimeError
number_identity_test: CompileTimeError, OK # Error if web int literal cannot be represented exactly, see http://dartbug.com/33351
partial_instantiation_eager_bounds_check_test: RuntimeError # Issue #34295
partial_tearoff_instantiation_test/05: Pass # for the wrong reason.
@@ -346,29 +328,6 @@
mixin_mixin_bound2_test: RuntimeError
mixin_mixin_bound_test: RuntimeError
mixin_mixin_test: RuntimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test/none: CompileTimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
mixin_type_parameters_super_test: RuntimeError
mock_writable_final_field_test: RuntimeError # Issue 30847
mock_writable_final_private_field_test: RuntimeError # Issue 17526, 30847
@@ -608,33 +567,6 @@
mixin_illegal_superclass_test/29: MissingCompileTimeError
mixin_illegal_superclass_test/30: MissingCompileTimeError
mixin_method_override_test/G5: Skip # Issue 34354
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test/none: CompileTimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_supertype_subclass_test/01: CompileTimeError
-mixin_supertype_subclass_test/03: CompileTimeError
-mixin_supertype_subclass_test/04: CompileTimeError
-mixin_supertype_subclass_test/none: CompileTimeError
mock_writable_final_field_test: RuntimeError # Issue 30847
mock_writable_final_private_field_test: RuntimeError # Issue 17526, 30847
modulo_test: RuntimeError # non JS number semantics
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index 85f559d..03dc93b 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -20,7 +20,6 @@
await_future_test: Pass, Timeout # Issue 29920
bit_operations_test: RuntimeError # No bigints on web.
bug32372_test: RuntimeError
-bug32372_test: Skip
built_in_identifier_prefix_test: CompileTimeError
built_in_identifier_type_annotation_test/dynamic-funarg: RuntimeError # Issue 28816
built_in_identifier_type_annotation_test/dynamic-funret: RuntimeError # Issue 28816
@@ -101,12 +100,9 @@
issue31596_super_test/none: CompileTimeError
issue31596_tearoff_test: CompileTimeError
issue31596_test: CompileTimeError
-issue32353_2_test: Skip
-issue32353_test: RuntimeError
-issue32353_test: Skip
+issue32353_test: CompileTimeError # Issue 34846
issue34404_flutter_modified_test: CompileTimeError # DDC doesn't support mixin inference
issue34404_flutter_test: CompileTimeError # DDC doesn't support mixin inference
-issue34404_flutter_test: Skip
issue34498_test: MissingCompileTimeError # Issue 34500
issue34635_test: MissingCompileTimeError
issue34636_test: MissingCompileTimeError
@@ -154,28 +150,12 @@
mixin_declaration/mixin_declaration_inference_valid_mixin_applications_test: CompileTimeError # https://github.com/dart-lang/sdk/issues/34164
mixin_declaration/mixin_declaration_invalid_superinvocation_test/10: CompileTimeError # Analyzer chooses wrong(?) super method.
mixin_method_override_test/01: MissingCompileTimeError
-mixin_of_mixin_test: Skip
-mixin_super_2_test: Skip
-mixin_super_2_test/01: MissingCompileTimeError
-mixin_super_2_test/03: MissingCompileTimeError
-mixin_super_test: RuntimeError
-mixin_super_test: Skip
-mixin_super_use_test: RuntimeError
-mixin_super_use_test: Skip
-mixin_superclass_test: Skip
-mixin_supertype_subclass2_test: Skip
-mixin_supertype_subclass3_test: Skip
-mixin_supertype_subclass4_test: Skip
-mixin_supertype_subclass_test: Skip
-mixin_supertype_subclass_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/05: MissingCompileTimeError
-mixin_type_parameter_inference_error_test: Skip
-mixin_type_parameter_inference_previous_mixin_test: Skip
+mixin_super_2_test: CompileTimeError # Issue 34806
+mixin_super_use_test: CompileTimeError # Issue 34806
mixin_type_parameter_inference_previous_mixin_test/01: CompileTimeError
mixin_type_parameter_inference_previous_mixin_test/02: CompileTimeError
mixin_type_parameter_inference_previous_mixin_test/04: MissingCompileTimeError
mixin_type_parameter_inference_previous_mixin_test/05: RuntimeError
-mixin_type_parameter_inference_test: Skip
mixin_type_parameter_inference_test/01: CompileTimeError
mixin_type_parameter_inference_test/02: CompileTimeError
mixin_type_parameter_inference_test/03: CompileTimeError
@@ -344,12 +324,8 @@
mixin_illegal_superclass_test/28: MissingCompileTimeError
mixin_illegal_superclass_test/29: MissingCompileTimeError
mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_super_2_test/01: MissingCompileTimeError
-mixin_super_2_test/03: MissingCompileTimeError
-mixin_super_test: RuntimeError
-mixin_super_use_test: RuntimeError
-mixin_supertype_subclass_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/05: MissingCompileTimeError
+mixin_super_2_test: RuntimeError # Issue 34807
+mixin_super_use_test: RuntimeError # Issue 34808
mock_writable_final_private_field_test: RuntimeError
multiline_newline_test/04: MissingCompileTimeError
multiline_newline_test/04r: MissingCompileTimeError
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index 24b3ed8..d715621 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -296,12 +296,6 @@
[ $compiler != dart2js && $compiler != dartdevk && $fasta ]
const_native_factory_test: MissingCompileTimeError # Issue 29763
-[ $compiler != dart2js && $fasta ]
-mixin_super_2_test/01: MissingCompileTimeError
-mixin_super_2_test/03: MissingCompileTimeError
-mixin_supertype_subclass_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/05: MissingCompileTimeError
-
[ $compiler == dartk && $runtime == vm && !$checked && $strong ]
assertion_initializer_const_error2_test/cc01: MissingCompileTimeError # Not reporting failed assert() at compile time.
assertion_initializer_const_error2_test/cc02: MissingCompileTimeError # Not reporting failed assert() at compile time.
diff --git a/tests/language_2/mixin_of_mixin_test.dart b/tests/language_2/mixin_of_mixin_test.dart
deleted file mode 100644
index 9fb26d7..0000000
--- a/tests/language_2/mixin_of_mixin_test.dart
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) 2016, 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.
-// SharedOptions=--supermixin
-
-// Validate the following text from section 12 ("Mixins") of the spec:
-//
-// "A mixin application of the form S with M; defines a class C ...
-// ... C declares the same instance members as M ..."
-//
-// This means that if M is itself a mixin application, then things
-// mixed into M are accessible through C. But if M simply *extends* a
-// mixin application (e.g. because M is declared as `class M extends X
-// with Y { ... }`) then things mixed into the mixin application that
-// M extends are not accessible through C.
-
-class A {
- a() => null;
-}
-
-class B {
- b() => null;
-}
-
-class C {
- c() => null;
-}
-
-class D {
- d() => null;
-}
-
-// Note: by a slight abuse of syntax, `class M1 = A with B, C;` effectively
-// means `class M1 = (A with B) with C;`, therefore M1 declares c(), but it
-// merely inherits a() and b().
-class M1 = A with B, C; // declares c()
-
-class M2 extends M1 {
- m2() => null;
-}
-
-class M3 extends A with B, C {
- m3() => null;
-}
-
-class T1 = D with M1; // declares c() //# 01: compile-time error
-class T2 = D with M2; // declares m2() //# 02: compile-time error
-class T3 = D with M3; // declares m3() //# 03: compile-time error
-
-class T4 extends D with M1 {} // extends a class which declares c() //# 04: compile-time error
-
-class T5 extends D with M2 {} // extends a class which declares m2() //# 05: compile-time error
-
-class T6 extends D with M3 {} // extends a class which declares m3() //# 06: compile-time error
-
-main() { }
diff --git a/tests/language_2/mixin_super_2_test.dart b/tests/language_2/mixin_super_2_test.dart
index 2715148..aac47ff 100644
--- a/tests/language_2/mixin_super_2_test.dart
+++ b/tests/language_2/mixin_super_2_test.dart
@@ -1,7 +1,6 @@
// Copyright (c) 2015, 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
@@ -15,25 +14,28 @@
toString() => 'R[' + super.toString() + ']';
}
-class D extends R with B { //# 01: compile-time error
- toString() => 'D<' + super.toString() + '>'; //# 01: continued
-} //# 01: continued
+class D extends R with B {
+ toString() => 'D<' + super.toString() + '>';
+}
-class E extends D with B { //# 02: compile-time error
- toString() => 'E{' + super.toString() + '}'; //# 02: continued
-} //# 02: continued
+class E extends D with B {
+ toString() => 'E{' + super.toString() + '}';
+}
-class F = R with B, B; //# 03: compile-time error
+class F = R with B, B;
-class G extends F with B { //# 04: compile-time error
- toString() => 'G{' + super.toString() + '}'; //# 04: continued
-} //# 04: continued
+class G extends F with B {
+ toString() => 'G{' + super.toString() + '}';
+}
main() {
check(object, String expected) {
Expect.equals(expected, object.toString());
}
- check(new B(), "B(Instance of 'B')");
- check(new R(), "R[Instance of 'R']");
+ check(B(), "B(Instance of '$B')");
+ check(R(), "R[Instance of '$R']");
+ check(D(), "D<B(R[Instance of '$D'])>");
+ check(E(), "E{B(D<B(R[Instance of '$E'])>)}");
+ check(G(), "G{B(B(B(R[Instance of '$G'])))}");
}
diff --git a/tests/language_2/mixin_super_test.dart b/tests/language_2/mixin_super_test.dart
index 1f4c2b01..75ad654 100644
--- a/tests/language_2/mixin_super_test.dart
+++ b/tests/language_2/mixin_super_test.dart
@@ -1,7 +1,6 @@
// Copyright (c) 2015, 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
@@ -11,7 +10,7 @@
}
}
-class M<T> extends MS<List<T>> {
+mixin M<T> on MS<List<T>> {
foo() {
return super.foo() + "M<$T>.foo\n";
}
@@ -23,33 +22,33 @@
}
}
-class N<T> extends NS<List<T>> {
+mixin N<T> on NS<List<T>> {
foo() {
return super.foo() + "N<$T>.foo\n";
}
}
-class S<T> {
+class S<T, V, W> implements MS<List<V>>, NS<List<W>> {
foo() {
- return "S<$T>.foo\n";
+ return "S<$T,$V,$W>.foo\n";
}
}
-class SM<U, V> = S<List<U>> with M<Map<U, V>>;
+class SM<U, V, W> = S<U, V, W> with M<V>;
-class MNA1<U, V, W> extends S<List<U>> with M<Map<U, V>>, N<W> {
+class MNA1<U, V, W> extends S<U, V, W> with M<V>, N<W> {
foo() {
return super.foo() + "MNA1<$U, $V, $W>.foo\n";
}
}
-class MNA2<U, V, W> extends SM<U, V> with N<W> {
+class MNA2<U, V, W> extends SM<U, V, W> with N<W> {
foo() {
return super.foo() + "MNA2<$U, $V, $W>.foo\n";
}
}
-class MNA3<U, V, W> extends S<List<U>> with SM<U, V>, N<W> {
+class MNA3<U, V, W> extends S<U, V, W> with M<V>, N<W> {
foo() {
return super.foo() + "MNA3<$U, $V, $W>.foo\n";
}
@@ -57,29 +56,25 @@
main() {
Expect.equals(
- "MS<List<double>>.foo\n"
- "M<double>.foo\n",
- new M<double>().foo());
+ "S<int,String,bool>.foo\n"
+ "M<String>.foo\n",
+ SM<int, String, bool>().foo());
Expect.equals(
- "S<List<int>>.foo\n"
- "M<Map<int, String>>.foo\n",
- new SM<int, String>().foo());
- Expect.equals(
- "S<List<int>>.foo\n"
- "M<Map<int, String>>.foo\n"
+ "S<int,String,bool>.foo\n"
+ "M<String>.foo\n"
"N<bool>.foo\n"
"MNA1<int, String, bool>.foo\n",
- new MNA1<int, String, bool>().foo());
+ MNA1<int, String, bool>().foo());
Expect.equals(
- "S<List<int>>.foo\n"
- "M<Map<int, String>>.foo\n"
+ "S<int,String,bool>.foo\n"
+ "M<String>.foo\n"
"N<bool>.foo\n"
"MNA2<int, String, bool>.foo\n",
- new MNA2<int, String, bool>().foo());
+ MNA2<int, String, bool>().foo());
Expect.equals(
- "S<List<int>>.foo\n"
- "M<Map<int, String>>.foo\n"
+ "S<int,String,bool>.foo\n"
+ "M<String>.foo\n"
"N<bool>.foo\n"
"MNA3<int, String, bool>.foo\n",
- new MNA3<int, String, bool>().foo());
+ MNA3<int, String, bool>().foo());
}
diff --git a/tests/language_2/mixin_super_use_test.dart b/tests/language_2/mixin_super_use_test.dart
index 0076bd9..f0fc152 100644
--- a/tests/language_2/mixin_super_use_test.dart
+++ b/tests/language_2/mixin_super_use_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
diff --git a/tests/language_2/mixin_superclass_test.dart b/tests/language_2/mixin_superclass_test.dart
index 162d6ee..7e2c6d1 100644
--- a/tests/language_2/mixin_superclass_test.dart
+++ b/tests/language_2/mixin_superclass_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
class S0 {}
@@ -13,135 +12,111 @@
class M1 extends Object {}
-class M2 extends M0 {}
+mixin M2 on M0 {}
class C00 = S0 with M0;
class C01 = S0 with M1;
-class C02 = S0 with M2;
+class C02 = S0 with M2; //# C02: compile-time error
class C03 = S0 with M0, M1;
class C04 = S0 with M0, M2;
-class C05 = S0 with M2, M0;
-class C06 = S0 with M1, M2;
-class C07 = S0 with M2, M1;
+class C05 = S0 with M2, M0; //# C05: compile-time error
+class C06 = S0 with M1, M2; //# C06: compile-time error
+class C07 = S0 with M2, M1; //# C07: compile-time error
class C10 = S1 with M0;
class C11 = S1 with M1;
-class C12 = S1 with M2;
+class C12 = S1 with M2; //# C12: compile-time error
class C13 = S1 with M0, M1;
class C14 = S1 with M0, M2;
-class C15 = S1 with M2, M0;
-class C16 = S1 with M1, M2;
-class C17 = S1 with M2, M1;
+class C15 = S1 with M2, M0; //# C15: compile-time error
+class C16 = S1 with M1, M2; //# C16: compile-time error
+class C17 = S1 with M2, M1; //# C17: compile-time error
class C20 = S2 with M0;
class C21 = S2 with M1;
-class C22 = S2 with M2;
+class C22 = S2 with M2; //# C22: compile-time error
class C23 = S2 with M0, M1;
class C24 = S2 with M0, M2;
-class C25 = S2 with M2, M0;
-class C26 = S2 with M1, M2;
-class C27 = S2 with M2, M1;
+class C25 = S2 with M2, M0; //# C25: compile-time error
+class C26 = S2 with M1, M2; //# C26: compile-time error
+class C27 = S2 with M2, M1; //# C27: compile-time error
class D00 extends S0 with M0 {}
class D01 extends S0 with M1 {}
-class D02 extends S0 with M2 {}
+class D02 extends S0 with M2 {} //# D02: compile-time error
class D03 extends S0 with M0, M1 {}
class D04 extends S0 with M0, M2 {}
-class D05 extends S0 with M2, M0 {}
+class D05 extends S0 with M2, M0 {} //# D05: compile-time error
-class D06 extends S0 with M1, M2 {}
+class D06 extends S0 with M1, M2 {} //# D06: compile-time error
-class D07 extends S0 with M2, M1 {}
+class D07 extends S0 with M2, M1 {} //# D07: compile-time error
class D10 extends S1 with M0 {}
class D11 extends S1 with M1 {}
-class D12 extends S1 with M2 {}
+class D12 extends S1 with M2 {} //# D12: compile-time error
class D13 extends S1 with M0, M1 {}
class D14 extends S1 with M0, M2 {}
-class D15 extends S1 with M2, M0 {}
+class D15 extends S1 with M2, M0 {} //# D15: compile-time error
-class D16 extends S1 with M1, M2 {}
+class D16 extends S1 with M1, M2 {} //# D16: compile-time error
-class D17 extends S1 with M2, M1 {}
+class D17 extends S1 with M2, M1 {} //# D17: compile-time error
class D20 extends S2 with M0 {}
class D21 extends S2 with M1 {}
-class D22 extends S2 with M2 {}
+class D22 extends S2 with M2 {} //# D22: compile-time error
class D23 extends S2 with M0, M1 {}
class D24 extends S2 with M0, M2 {}
-class D25 extends S2 with M2, M0 {}
+class D25 extends S2 with M2, M0 {} //# D25: compile-time error
-class D26 extends S2 with M1, M2 {}
+class D26 extends S2 with M1, M2 {} //# D26: compile-time error
-class D27 extends S2 with M2, M1 {}
+class D27 extends S2 with M2, M1 {} //# D27: compile-time error
main() {
new C00();
new C01();
- new C02();
new C03();
new C04();
- new C05();
- new C06();
- new C07();
new C10();
new C11();
- new C12();
new C13();
new C14();
- new C15();
- new C16();
- new C17();
new C20();
new C21();
- new C22();
new C23();
new C24();
- new C25();
- new C26();
- new C27();
new D00();
new D01();
- new D02();
new D03();
new D04();
- new D05();
- new D06();
- new D07();
new D10();
new D11();
- new D12();
new D13();
new D14();
- new D15();
- new D16();
- new D17();
new D20();
new D21();
- new D22();
new D23();
new D24();
- new D25();
- new D26();
- new D27();
}
diff --git a/tests/language_2/mixin_supertype_subclass2_test.dart b/tests/language_2/mixin_supertype_subclass2_test.dart
index 71d1c38..0bafafc 100644
--- a/tests/language_2/mixin_supertype_subclass2_test.dart
+++ b/tests/language_2/mixin_supertype_subclass2_test.dart
@@ -1,15 +1,6 @@
// Copyright (c) 2016, 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.
-// SharedOptions=--supermixin
-
-// Validate the following test from section 12 ("Mixins") of the spec:
-//
-// "Let M_A be a mixin derived from a class M with direct superclass
-// S_static.
-//
-// Let A be an application of M_A. It is a static warning if the
-// superclass of A is not a subtype of S_static."
class B {}
@@ -21,16 +12,17 @@
class F extends E {}
-class A extends E with M {}
-
-class M
- extends B //# 01: ok
- extends C //# 02: static type warning
- extends D //# 03: ok
- extends E //# 04: ok
- extends F //# 05: static type warning
+// M is mixed onto E which implements B, C and D.
+mixin M //
+ on B //# 01: ok
+ on C //# 02: ok
+ on D //# 03: ok
+ on E //# 04: ok
+ on F //# 05: compile-time error
{}
+class A extends E with M {}
+
main() {
new A();
}
diff --git a/tests/language_2/mixin_supertype_subclass3_test.dart b/tests/language_2/mixin_supertype_subclass3_test.dart
deleted file mode 100644
index c1893fe2..0000000
--- a/tests/language_2/mixin_supertype_subclass3_test.dart
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) 2016, 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.
-// SharedOptions=--supermixin
-
-// Validate the following test from section 12 ("Mixins") of the spec:
-//
-// "Let M_A be a mixin derived from a class M with direct superclass
-// S_static.
-//
-// Let A be an application of M_A. It is a static warning if the
-// superclass of A is not a subtype of S_static."
-
-// In this test, M is declared as `class M = S_static with G;`.
-
-class B {}
-
-class C {}
-
-class D {}
-
-class E extends B with C implements D {}
-
-class F extends E {}
-
-class A
- = E with M; class M = B with G; class G //# 01: ok
- = E with M; class M = C with G; class G //# 02: static type warning
- = E with M; class M = D with G; class G //# 03: ok
- = E with M; class M = E with G; class G //# 04: ok
- = E with M; class M = F with G; class G //# 05: static type warning
-{}
-
-main() {
- new A();
-}
diff --git a/tests/language_2/mixin_supertype_subclass4_test.dart b/tests/language_2/mixin_supertype_subclass4_test.dart
deleted file mode 100644
index 82770d3..0000000
--- a/tests/language_2/mixin_supertype_subclass4_test.dart
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (c) 2016, 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.
-// SharedOptions=--supermixin
-
-// Validate the following test from section 12 ("Mixins") of the spec:
-//
-// "Let M_A be a mixin derived from a class M with direct superclass
-// S_static.
-//
-// Let A be an application of M_A. It is a static warning if the
-// superclass of A is not a subtype of S_static."
-
-// In this test, M is declared as `class M extends ... with G {}`, so
-// `S_static` is the unnamed mixin application `... with G`. Since this
-// unnamed mixin application can't be derived from, all the cases should yield
-// a warning.
-
-class B {}
-
-class C {}
-
-class D {}
-
-class E extends B with C implements D {}
-
-class F extends E {}
-
-class G {}
-
-class A = E with M;
-
-class M
- extends B with G //# 01: static type warning
- extends C with G //# 02: static type warning
- extends D with G //# 03: static type warning
- extends E with G //# 04: static type warning
- extends F with G //# 05: static type warning
-{}
-
-main() {
- new A();
-}
diff --git a/tests/language_2/mixin_supertype_subclass_test.dart b/tests/language_2/mixin_supertype_subclass_test.dart
index 9afa29c..1e2c7ca 100644
--- a/tests/language_2/mixin_supertype_subclass_test.dart
+++ b/tests/language_2/mixin_supertype_subclass_test.dart
@@ -1,15 +1,6 @@
// Copyright (c) 2016, 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.
-// SharedOptions=--supermixin
-
-// Validate the following test from section 12 ("Mixins") of the spec:
-//
-// "Let M_A be a mixin derived from a class M with direct superclass
-// S_static.
-//
-// Let A be an application of M_A. It is a static warning if the
-// superclass of A is not a subtype of S_static."
class B {}
@@ -21,16 +12,17 @@
class F extends E {}
-class A = E with M;
-
-class M
- extends B //# 01: ok
- extends C //# 02: compile-time error
- extends D //# 03: ok
- extends E //# 04: ok
- extends F //# 05: compile-time error
+// M is mixed onto E which implements B, C and D.
+mixin M //
+ on B //# 01: ok
+ on C //# 02: ok
+ on D //# 03: ok
+ on E //# 04: ok
+ on F //# 05: compile-time error
{}
+class A = E with M;
+
main() {
new A();
}
diff --git a/tests/language_2/mixin_type_parameter_inference_error_test.dart b/tests/language_2/mixin_type_parameter_inference_error_test.dart
index fe1914e..c720e49 100644
--- a/tests/language_2/mixin_type_parameter_inference_error_test.dart
+++ b/tests/language_2/mixin_type_parameter_inference_error_test.dart
@@ -1,22 +1,24 @@
// 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.
-// SharedOptions=--supermixin
abstract class A<T> {}
class B {}
-class M<T> extends A<T> {}
+mixin M<T> on A<T> {}
// No matching class from which to infer the type parameter of M
class C extends Object with M {} //# 01: compile-time error
class C = Object with M; //# 02: compile-time error
-// Satisfying the constraint in the "implements" clause is not sufficient
+// Satisfying the constraint with an "implements" clause is not sufficient
class C extends Object with M implements A<B> {} //# 03: compile-time error
class C = Object with M implements A<B>; //# 04: compile-time error
+// Mixin works when used correctly.
+class D = A<B> with M<B>;
+
main() {}
diff --git a/tests/language_2/mixin_type_parameter_inference_previous_mixin_test.dart b/tests/language_2/mixin_type_parameter_inference_previous_mixin_test.dart
index 01ac846..a3d9ce5 100644
--- a/tests/language_2/mixin_type_parameter_inference_previous_mixin_test.dart
+++ b/tests/language_2/mixin_type_parameter_inference_previous_mixin_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
@@ -15,7 +14,7 @@
abstract class M1 implements A<B> {}
-class M2<T> extends A<T> {
+mixin M2<T> on A<T> {
T f(T x) => x;
T g(T x) => x;
Type h() => T;
diff --git a/tests/language_2/mixin_type_parameter_inference_test.dart b/tests/language_2/mixin_type_parameter_inference_test.dart
index 1c2400c..8d5f336 100644
--- a/tests/language_2/mixin_type_parameter_inference_test.dart
+++ b/tests/language_2/mixin_type_parameter_inference_test.dart
@@ -1,7 +1,6 @@
// 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.
-// SharedOptions=--supermixin
import "package:expect/expect.dart";
@@ -13,7 +12,7 @@
class B {}
-class M1<T> extends A<T> {
+mixin M1<T> on A<T> {
T f(T x) => x;
T g(T x) => x;
Type h() => T;