| Index: tests/language/mixin_mixin_type_arguments_test.dart
|
| diff --git a/tests/language/mixin_mixin_type_arguments_test.dart b/tests/language/mixin_mixin_type_arguments_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..55d796f13dd8c231dbff8180c7f4223b613c32ce
|
| --- /dev/null
|
| +++ b/tests/language/mixin_mixin_type_arguments_test.dart
|
| @@ -0,0 +1,86 @@
|
| +// Copyright (c) 2017, 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.
|
| +
|
| +import 'package:expect/expect.dart' show Expect;
|
| +
|
| +class A {}
|
| +
|
| +class B {}
|
| +
|
| +class C {}
|
| +
|
| +class D {}
|
| +
|
| +class E {}
|
| +
|
| +class F {}
|
| +
|
| +class M1<Tm1> {
|
| + m1() => "M1<$Tm1>";
|
| +}
|
| +
|
| +class M2<Tm2> {
|
| + m2() => "M2<$Tm2>";
|
| +}
|
| +
|
| +class M3<Tm3> {
|
| + m3() => "M3<$Tm3>";
|
| +}
|
| +
|
| +class M4<Tm4> {
|
| + m4() => "M4<$Tm4>";
|
| +}
|
| +
|
| +class M5<Tm5> {
|
| + m5() => "M5<$Tm5>";
|
| +}
|
| +
|
| +class C1 = Object with M1, M2<A>, M3, M4<B>, M5<C>;
|
| +
|
| +class C2 = Object with M1<A>, M2<B>, M3<C>, M4<D>, M5<E>;
|
| +
|
| +class C3<T> = Object with M1<A>, M2<T>, M3, M4, M5<B>;
|
| +
|
| +class C4 extends Object with M1, M2<A>, M3, M4<B>, M5<C> {}
|
| +
|
| +class C5 extends Object with M1<A>, M2<B>, M3<C>, M4<D>, M5<E> {}
|
| +
|
| +class C6<T> extends Object with M1<A>, M2<T>, M3, M4, M5<B> {}
|
| +
|
| +class C7 = Object with M1<A>, M2<A>, M3<A>, M4<A>, M5<A>;
|
| +
|
| +class C8 extends Object with M1<A>, M2<A>, M3<A>, M4<A>, M5<A> {}
|
| +
|
| +class C9 = Object
|
| + with M1<List<A>>, M2<List<A>>, M3<List<A>>, M4<List<A>>, M5<List<A>>;
|
| +
|
| +class CA extends Object
|
| + with M1<List<A>>, M2<List<A>>, M3<List<A>>, M4<List<A>>, M5<List<A>> {}
|
| +
|
| +trace(x) => "${x.m1()}, ${x.m2()}, ${x.m3()}, ${x.m4()}, ${x.m5()}";
|
| +
|
| +main() {
|
| + Expect.stringEquals(
|
| + "M1<dynamic>, M2<A>, M3<dynamic>, M4<B>, M5<C>", trace(new C1()));
|
| + Expect.stringEquals("M1<A>, M2<B>, M3<C>, M4<D>, M5<E>", trace(new C2()));
|
| + Expect.stringEquals(
|
| + "M1<A>, M2<dynamic>, M3<dynamic>, M4<dynamic>, M5<B>", trace(new C3()));
|
| + Expect.stringEquals(
|
| + "M1<A>, M2<F>, M3<dynamic>, M4<dynamic>, M5<B>", trace(new C3<F>()));
|
| + Expect.stringEquals(
|
| + "M1<dynamic>, M2<A>, M3<dynamic>, M4<B>, M5<C>", trace(new C4()));
|
| + Expect.stringEquals("M1<A>, M2<B>, M3<C>, M4<D>, M5<E>", trace(new C5()));
|
| + Expect.stringEquals(
|
| + "M1<A>, M2<dynamic>, M3<dynamic>, M4<dynamic>, M5<B>", trace(new C6()));
|
| + Expect.stringEquals(
|
| + "M1<A>, M2<F>, M3<dynamic>, M4<dynamic>, M5<B>", trace(new C6<F>()));
|
| + Expect.stringEquals("M1<A>, M2<A>, M3<A>, M4<A>, M5<A>", trace(new C7()));
|
| + Expect.stringEquals("M1<A>, M2<A>, M3<A>, M4<A>, M5<A>", trace(new C8()));
|
| + Expect.stringEquals(
|
| + "M1<List<A>>, M2<List<A>>, M3<List<A>>, M4<List<A>>, M5<List<A>>",
|
| + trace(new C9()));
|
| + Expect.stringEquals(
|
| + "M1<List<A>>, M2<List<A>>, M3<List<A>>, M4<List<A>>, M5<List<A>>",
|
| + trace(new CA()));
|
| +}
|
|
|