mirror of
https://github.com/dart-lang/sdk
synced 2024-10-04 16:04:53 +00:00
[ddc] cleanup: use Never direclty in nnbd tests
Change-Id: I67aceaccb819ad6033bdb9c7d9870b05859c1064 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138900 Reviewed-by: Nicholas Shahan <nshahan@google.com>
This commit is contained in:
parent
9a0c09ecb2
commit
2c68152847
|
@ -410,7 +410,7 @@ class NeverType extends DartType {
|
|||
}
|
||||
|
||||
@JSExportName('Never')
|
||||
final never_ = NeverType();
|
||||
final _never = NeverType();
|
||||
|
||||
@JSExportName('dynamic')
|
||||
final _dynamic = DynamicType();
|
||||
|
@ -432,7 +432,7 @@ class VoidType extends DartType {
|
|||
@JSExportName('void')
|
||||
final void_ = VoidType();
|
||||
|
||||
// TODO(nshahan): Cleanup and consolidate NeverType, BottomType, bottom, never_.
|
||||
// TODO(nshahan): Cleanup and consolidate NeverType, BottomType, bottom, _never.
|
||||
class BottomType extends DartType {
|
||||
toString() => 'bottom';
|
||||
}
|
||||
|
|
|
@ -38,29 +38,29 @@ void main() {
|
|||
|
||||
// Bottom is subtype of top.
|
||||
// never <: dynamic
|
||||
checkProperSubtype(neverType, dynamic);
|
||||
checkProperSubtype(Never, dynamic);
|
||||
// never <: void
|
||||
checkProperSubtype(neverType, voidType);
|
||||
checkProperSubtype(Never, voidType);
|
||||
// never <: Object?
|
||||
checkProperSubtype(neverType, nullable(Object));
|
||||
checkProperSubtype(Never, nullable(Object));
|
||||
|
||||
// Object is between top and bottom.
|
||||
// Object <: Object?
|
||||
checkProperSubtype(Object, nullable(Object));
|
||||
// never <: Object
|
||||
checkProperSubtype(neverType, Object);
|
||||
checkProperSubtype(Never, Object);
|
||||
|
||||
// Null is between top and bottom.
|
||||
// Null <: Object?
|
||||
checkProperSubtype(Null, nullable(Object));
|
||||
// never <: Null
|
||||
checkProperSubtype(neverType, Null);
|
||||
checkProperSubtype(Never, Null);
|
||||
|
||||
// Class is between Object and bottom.
|
||||
// A <: Object
|
||||
checkProperSubtype(A, dynamic);
|
||||
// never <: A
|
||||
checkProperSubtype(neverType, A);
|
||||
checkProperSubtype(Never, A);
|
||||
|
||||
// Nullable types are a union of T and Null.
|
||||
// A <: A?
|
||||
|
@ -83,7 +83,7 @@ void main() {
|
|||
// Null <: Object*
|
||||
checkSubtype(Null, legacy(Object));
|
||||
// never <: Object*
|
||||
checkSubtype(neverType, legacy(Object));
|
||||
checkSubtype(Never, legacy(Object));
|
||||
// A* <: A
|
||||
checkSubtype(legacy(A), A);
|
||||
// A <: A*
|
||||
|
@ -99,7 +99,7 @@ void main() {
|
|||
// Null <: A*
|
||||
checkProperSubtype(Null, legacy(A));
|
||||
// never <: A*
|
||||
checkProperSubtype(neverType, legacy(A));
|
||||
checkProperSubtype(Never, legacy(A));
|
||||
|
||||
// Futures.
|
||||
// Null <: FutureOr<Object?>
|
||||
|
@ -122,7 +122,7 @@ void main() {
|
|||
checkProperSubtype(
|
||||
generic1(Future, nullable(Object)), futureOrOf(nullable(Object)));
|
||||
// FutureOr<Never> <: Future<Never>
|
||||
checkSubtype(futureOrOf(neverType), generic1(Future, neverType));
|
||||
checkSubtype(futureOrOf(Never), generic1(Future, Never));
|
||||
// Future<B> <: FutureOr<A>
|
||||
checkProperSubtype(generic1(Future, B), futureOrOf(A));
|
||||
// B <: <: FutureOr<A>
|
||||
|
@ -271,7 +271,7 @@ void main() {
|
|||
// A? <\: A
|
||||
checkSubtypeFailure(nullable(A), A);
|
||||
// Null <\: never
|
||||
checkSubtypeFailure(Null, neverType);
|
||||
checkSubtypeFailure(Null, Never);
|
||||
// Null <\: Object
|
||||
checkSubtypeFailure(Null, Object);
|
||||
// Null <\: A
|
||||
|
|
|
@ -24,7 +24,7 @@ void main() {
|
|||
// Null? == Null
|
||||
Expect.identical(nullable(Null), Null);
|
||||
// Never? == Null
|
||||
Expect.identical(nullable(dart.wrapType(dart.never_)), Null);
|
||||
Expect.identical(nullable(Never), Null);
|
||||
// dynamic? == dynamic
|
||||
Expect.identical(nullable(dynamic), dynamic);
|
||||
// void? == void
|
||||
|
|
|
@ -38,29 +38,29 @@ void main() {
|
|||
|
||||
// Bottom is subtype of top.
|
||||
// never <: dynamic
|
||||
checkProperSubtype(neverType, dynamic);
|
||||
checkProperSubtype(Never, dynamic);
|
||||
// never <: void
|
||||
checkProperSubtype(neverType, voidType);
|
||||
checkProperSubtype(Never, voidType);
|
||||
// never <: Object?
|
||||
checkProperSubtype(neverType, nullable(Object));
|
||||
checkProperSubtype(Never, nullable(Object));
|
||||
|
||||
// Object is between top and bottom.
|
||||
// Object <: Object?
|
||||
checkSubtype(Object, nullable(Object));
|
||||
// never <: Object
|
||||
checkProperSubtype(neverType, Object);
|
||||
checkProperSubtype(Never, Object);
|
||||
|
||||
// Null is between top and bottom.
|
||||
// Null <: Object?
|
||||
checkProperSubtype(Null, nullable(Object));
|
||||
// never <: Null
|
||||
checkSubtype(neverType, Null);
|
||||
checkSubtype(Never, Null);
|
||||
|
||||
// Class is between Object and bottom.
|
||||
// A <: Object
|
||||
checkProperSubtype(A, dynamic);
|
||||
// never <: A
|
||||
checkProperSubtype(neverType, A);
|
||||
checkProperSubtype(Never, A);
|
||||
|
||||
// Nullable types are a union of T and Null.
|
||||
// A <: A?
|
||||
|
@ -83,7 +83,7 @@ void main() {
|
|||
// Null <: Object*
|
||||
checkSubtype(Null, legacy(Object));
|
||||
// never <: Object*
|
||||
checkSubtype(neverType, legacy(Object));
|
||||
checkSubtype(Never, legacy(Object));
|
||||
// A* <: A
|
||||
checkSubtype(legacy(A), A);
|
||||
// A <: A*
|
||||
|
@ -99,7 +99,7 @@ void main() {
|
|||
// Null <: A*
|
||||
checkProperSubtype(Null, legacy(A));
|
||||
// never <: A*
|
||||
checkProperSubtype(neverType, legacy(A));
|
||||
checkProperSubtype(Never, legacy(A));
|
||||
|
||||
// Futures.
|
||||
// Null <: FutureOr<Object?>
|
||||
|
@ -122,7 +122,7 @@ void main() {
|
|||
checkProperSubtype(
|
||||
generic1(Future, nullable(Object)), futureOrOf(nullable(Object)));
|
||||
// FutureOr<Never> <: Future<Never>
|
||||
checkSubtype(futureOrOf(neverType), generic1(Future, neverType));
|
||||
checkSubtype(futureOrOf(Never), generic1(Future, Never));
|
||||
// Future<B> <: FutureOr<A>
|
||||
checkProperSubtype(generic1(Future, B), futureOrOf(A));
|
||||
// B <: <: FutureOr<A>
|
||||
|
@ -271,7 +271,7 @@ void main() {
|
|||
// A? <: A
|
||||
checkSubtype(nullable(A), A);
|
||||
// Null <: never
|
||||
checkSubtype(Null, neverType);
|
||||
checkSubtype(Null, Never);
|
||||
// Null <: Object
|
||||
checkProperSubtype(Null, Object);
|
||||
// Null <: A
|
||||
|
|
|
@ -7,9 +7,6 @@ import 'dart:_runtime' as dart;
|
|||
|
||||
import 'package:expect/expect.dart';
|
||||
|
||||
/// The runtime representation of the never type.
|
||||
final neverType = dart.wrapType(dart.never_);
|
||||
|
||||
/// Unwrap the user code type representation to expose the runtime
|
||||
/// representation of [t].
|
||||
///
|
||||
|
|
Loading…
Reference in a new issue