[tests/nnbd] Remove mixed mode test cases from language/nnbd/subtyping/type_casts_strong_test
Now we cannot have a mix of opted-out and opted-in libraries in
strong mode, so we can remove all test cases for mixing legacy
types with nullables and non-nullable types from type_casts_strong_test.
Fixes https://github.com/dart-lang/sdk/issues/42108
Change-Id: I4a4eb5af732575e9a5b20b0029812852759dd15a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149740
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
diff --git a/tests/language/nnbd/subtyping/type_casts_legacy_library.dart b/tests/language/nnbd/subtyping/type_casts_legacy_library.dart
deleted file mode 100644
index 1e22641..0000000
--- a/tests/language/nnbd/subtyping/type_casts_legacy_library.dart
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2020, 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.
-
-// Opt out of Null Safety:
-// @dart = 2.6
-
-import 'type_casts_null_safe_library.dart';
-
-class A<T> {
- @pragma('vm:never-inline')
- asT(arg) => arg as T;
-
- @pragma('vm:never-inline')
- asBT(arg) => arg as B<T>;
-}
-
-class B<T> {}
-
-class C {}
-
-class D extends C {}
-
-newAOfLegacyC() => new A<C>();
-newAOfLegacyBOfLegacyC() => new A<B<C>>();
-newWOfLegacyC() => new W<C>();
-newWOfLegacyBOfLegacyC() => new W<B<C>>();
-newXOfLegacyY() => new X<Y>();
diff --git a/tests/language/nnbd/subtyping/type_casts_null_safe_library.dart b/tests/language/nnbd/subtyping/type_casts_null_safe_library.dart
deleted file mode 100644
index fedcfc1..0000000
--- a/tests/language/nnbd/subtyping/type_casts_null_safe_library.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) 2020, 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.
-
-class W<T> {
- @pragma('vm:never-inline')
- asT(arg) => arg as T;
-
- @pragma('vm:never-inline')
- asNullableT(arg) => arg as T?;
-
- @pragma('vm:never-inline')
- asXT(arg) => arg as X<T>;
-
- @pragma('vm:never-inline')
- asNullableXT(arg) => arg as X<T>?;
-
- @pragma('vm:never-inline')
- asXNullableT(arg) => arg as X<T?>;
-}
-
-class X<T> {}
-
-class Y {}
-
-class Z extends Y {}
diff --git a/tests/language/nnbd/subtyping/type_casts_strong_test.dart b/tests/language/nnbd/subtyping/type_casts_strong_test.dart
index 7c8ac23..7d7c2e5 100644
--- a/tests/language/nnbd/subtyping/type_casts_strong_test.dart
+++ b/tests/language/nnbd/subtyping/type_casts_strong_test.dart
@@ -7,80 +7,33 @@
// Requirements=nnbd-strong
import 'package:expect/expect.dart';
-import 'type_casts_legacy_library.dart'; // A, B, C, D
-import 'type_casts_null_safe_library.dart'; // W, X, Y, Z
+
+class C {}
+
+class W<T> {
+ @pragma('vm:never-inline')
+ asT(arg) => arg as T;
+
+ @pragma('vm:never-inline')
+ asNullableT(arg) => arg as T?;
+
+ @pragma('vm:never-inline')
+ asXT(arg) => arg as X<T>;
+
+ @pragma('vm:never-inline')
+ asNullableXT(arg) => arg as X<T>?;
+
+ @pragma('vm:never-inline')
+ asXNullableT(arg) => arg as X<T?>;
+}
+
+class X<T> {}
+
+class Y {}
+
+class Z extends Y {}
doTests() {
- // Testing 'arg as T*', T = C*
- final ac = newAOfLegacyC();
- ac.asT(new C());
- ac.asT(new D());
- ac.asT(null);
- Expect.throwsTypeError(() {
- ac.asT(new Y());
- });
-
- // Testing 'arg as T*', T = B<C*>*
- final abc = newAOfLegacyBOfLegacyC();
- abc.asT(new B<C>());
- abc.asT(new B<D>());
- abc.asT(null);
- Expect.throwsTypeError(() {
- abc.asT(new B<dynamic>());
- });
- Expect.throwsTypeError(() {
- abc.asT(new B<Y>());
- });
-
- // Testing 'arg as T*', T = Y
- final ay = new A<Y>();
- ay.asT(new Y());
- ay.asT(new Z());
- ay.asT(null);
- Expect.throwsTypeError(() {
- ay.asT(new C());
- });
-
- // Testing 'arg as T', T = C*
- final wc = newWOfLegacyC();
- wc.asT(new C());
- wc.asT(new D());
- wc.asT(null);
- Expect.throwsTypeError(() {
- wc.asT(new Y());
- });
-
- // Testing 'arg as T?', T = C*
- wc.asNullableT(new C());
- wc.asNullableT(new D());
- wc.asNullableT(null);
- Expect.throwsTypeError(() {
- wc.asNullableT(new Y());
- });
-
- // Testing 'arg as T', T = B<C*>*
- final wby = newWOfLegacyBOfLegacyC();
- wby.asT(new B<C>());
- wby.asT(new B<D>());
- wby.asT(null);
- Expect.throwsTypeError(() {
- wby.asT(new B<dynamic>());
- });
- Expect.throwsTypeError(() {
- wby.asT(new B<Y>());
- });
-
- // Testing 'arg as T?', T = B<C*>*
- wby.asNullableT(new B<C>());
- wby.asNullableT(new B<D>());
- wby.asNullableT(null);
- Expect.throwsTypeError(() {
- wby.asNullableT(new B<dynamic>());
- });
- Expect.throwsTypeError(() {
- wby.asNullableT(new B<Y>());
- });
-
// Testing 'arg as T', T = Y
final wy = new W<Y>();
wy.asT(new Y());
@@ -100,21 +53,9 @@
wy.asNullableT(new C());
});
- // Testing 'arg as B<T*>*', T = Y
- ay.asBT(new B<Y>());
- ay.asBT(new B<Z>());
- ay.asBT(null);
- Expect.throwsTypeError(() {
- ay.asBT(new B<dynamic>());
- });
- Expect.throwsTypeError(() {
- ay.asBT(new B<C>());
- });
-
// Testing 'arg as X<T>', T = Y
wy.asXT(new X<Y>());
wy.asXT(new X<Z>());
- wy.asXT(newXOfLegacyY());
Expect.throwsTypeError(() {
wy.asXT(null);
});
@@ -128,7 +69,6 @@
// Testing 'arg as X<T>?', T = Y
wy.asNullableXT(new X<Y>());
wy.asNullableXT(new X<Z>());
- wy.asNullableXT(newXOfLegacyY());
wy.asNullableXT(null);
Expect.throwsTypeError(() {
wy.asNullableXT(new X<dynamic>());
@@ -141,7 +81,6 @@
wy.asXNullableT(new X<Y>());
wy.asXNullableT(new X<Z>());
wy.asXNullableT(new X<Y?>());
- wy.asXNullableT(newXOfLegacyY());
Expect.throwsTypeError(() {
wy.asXNullableT(null);
});
@@ -154,7 +93,6 @@
wny.asXT(new X<Y>());
wny.asXT(new X<Z>());
wny.asXT(new X<Y?>());
- wny.asXT(newXOfLegacyY());
Expect.throwsTypeError(() {
wny.asXT(null);
});