Chromium Code Reviews| Index: tests/language/mixin_super_bound_test.dart |
| diff --git a/tests/language/mixin_super_bound_test.dart b/tests/language/mixin_super_bound_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..66c01e097812eb68ee5c33e3f829a247292cf0e5 |
| --- /dev/null |
| +++ b/tests/language/mixin_super_bound_test.dart |
| @@ -0,0 +1,38 @@ |
| +// 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. |
| + |
| +import "package:expect/expect.dart"; |
| + |
| +bool inCheckedMode() { |
| + try { |
| + var i = 42; |
| + String s = i; |
| + } on TypeError catch (e) { |
| + return true; |
| + } |
| + return false; |
| +} |
| + |
| +class M<U extends V, V> { } |
| + |
| +class N<U, V extends U> { } |
| + |
| +class S<T> { } |
| + |
| +class MNA<U, V, W> extends S<List<U>> with M<V, U>, N<List<W>, List<W>> { } |
|
hausner
2015/07/17 16:55:22
A short comment would be helpful, explaining what
regis
2015/07/17 18:29:51
Done here and in the other test.
|
| + |
| +class MNA2<U, V, W> = S<List<U>> with M<V, U>, N<List<W>, List<W>>; |
| + |
| +main() { |
| + new MNA<num, int, bool>(); |
| + new MNA2<num, int, bool>(); |
| + if (inCheckedMode()) { |
| + Expect.throws(() => new MNA<int, num, bool>(), (e) => e is TypeError); |
| + Expect.throws(() => new MNA2<int, num, bool>(), (e) => e is TypeError); |
| + } else { |
| + new MNA<int, num, bool>(); |
| + new MNA2<int, num, bool>(); |
| + } |
| +} |
| + |