| Index: tests/language_strong/type_variable_bounds4_test.dart
|
| diff --git a/tests/language_strong/type_variable_bounds4_test.dart b/tests/language_strong/type_variable_bounds4_test.dart
|
| deleted file mode 100644
|
| index 46a154cfd6023b2d8570d83c61500ef13c6f7850..0000000000000000000000000000000000000000
|
| --- a/tests/language_strong/type_variable_bounds4_test.dart
|
| +++ /dev/null
|
| @@ -1,72 +0,0 @@
|
| -// 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.
|
| -
|
| -// Test instantiation of object with malbounded types.
|
| -
|
| -class A<
|
| - T
|
| - extends num //# 01: static type warning
|
| - > {}
|
| -
|
| -class B<T> implements A<T> {}
|
| -
|
| -class C<
|
| - T
|
| - extends num //# 01: continued
|
| - > implements B<T> {}
|
| -
|
| -class Class<T> {
|
| - newA() {
|
| - new A<T>(); //# 01: continued
|
| - }
|
| - newB() {
|
| - new B<T>(); //# 01: continued
|
| - }
|
| - newC() {
|
| - new C<T>(); //# 01: continued
|
| - }
|
| -}
|
| -
|
| -bool inCheckedMode() {
|
| - try {
|
| - var i = 42;
|
| - String s = i;
|
| - } on TypeError catch (e) {
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -void test(bool expectTypeError, f()) {
|
| - try {
|
| - var v = f();
|
| - if (expectTypeError && inCheckedMode()) {
|
| - throw 'Missing type error instantiating ${v.runtimeType}';
|
| - }
|
| - } on TypeError catch (e) {
|
| - if (!expectTypeError || !inCheckedMode()) {
|
| - throw 'Unexpected type error: $e';
|
| - }
|
| - }
|
| -}
|
| -
|
| -void main() {
|
| - test(false, () => new A<int>());
|
| - test(false, () => new B<int>());
|
| - test(false, () => new C<int>());
|
| -
|
| - test(true, () => new A<String>()); //# 01: continued
|
| - test(true, () => new B<String>()); //# 01: continued
|
| - test(true, () => new C<String>()); //# 01: continued
|
| -
|
| - var c = new Class<int>();
|
| - test(false, () => c.newA());
|
| - test(false, () => c.newB());
|
| - test(false, () => c.newC());
|
| -
|
| - c = new Class<String>();
|
| - test(true, () => c.newA()); //# 01: continued
|
| - test(true, () => c.newB()); //# 01: continued
|
| - test(true, () => c.newC()); //# 01: continued
|
| -}
|
|
|