mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:01:42 +00:00
Change types to <C?, D> in cast test for nnbd
Change-Id: Id61ac90e028d8cb05ab0aba52ecd772644b4f773 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145721 Reviewed-by: Lasse R.H. Nielsen <lrn@google.com> Commit-Queue: Riley Porter <rileyporter@google.com>
This commit is contained in:
parent
0662b64697
commit
3c6a431589
|
@ -17,18 +17,17 @@ void main() {
|
|||
|
||||
testIterable() {
|
||||
var iterable = new Iterable<C?>.generate(elements.length, (n) => elements[n]);
|
||||
var iterableNonNull = Iterable.castFrom<C?, C>(iterable);
|
||||
// Downcast non-nullable.
|
||||
|
||||
// An iterable that (likely) can do direct access.
|
||||
var dIterableDirect = Iterable.castFrom<C, D>(iterableNonNull);
|
||||
var dIterableDirect = Iterable.castFrom<C?, D>(iterable);
|
||||
Expect.equals(d, dIterableDirect.elementAt(1));
|
||||
// null is not D.
|
||||
Expect.throws(() => dIterableDirect.skip(3).elementAt(1));
|
||||
|
||||
// An iterable that cannot do direct access.
|
||||
var dIterableNonDirect =
|
||||
Iterable.castFrom<C, D>(iterableNonNull.where((_) => true));
|
||||
Iterable.castFrom<C?, D>(iterable.where((_) => true));
|
||||
Expect.equals(d, dIterableNonDirect.elementAt(1));
|
||||
// null is not D.
|
||||
Expect.throws(() => dIterableNonDirect.skip(3).elementAt(1));
|
||||
|
@ -36,38 +35,35 @@ testIterable() {
|
|||
// Iterable that definitely won't survive accessing element 3.
|
||||
var iterableLimited = new Iterable<C?>.generate(
|
||||
elements.length, (n) => n == 3 ? throw "untouchable" : elements[n]);
|
||||
var iterableLimitedNonNull = Iterable.castFrom<C?, C>(iterableLimited);
|
||||
var dIterableLimited = Iterable.castFrom<C, D>(iterableLimitedNonNull);
|
||||
var dIterableLimited = Iterable.castFrom<C?, D>(iterableLimited);
|
||||
Expect.equals(d, dIterableLimited.elementAt(1));
|
||||
// null is not D.
|
||||
Expect.throws(() => dIterableLimited.skip(3).elementAt(1));
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectIterable = Iterable.castFrom<C, Object>(iterableNonNull);
|
||||
var objectIterable = Iterable.castFrom<C?, Object>(iterable);
|
||||
// null is not Object.
|
||||
Expect.throws(() => objectIterable.skip(3).elementAt(1));
|
||||
}
|
||||
|
||||
testList() {
|
||||
var list = new List<C?>.from(elements);
|
||||
var listNonNull = List.castFrom<C?, C>(list);
|
||||
|
||||
// Downcast non-nullable.
|
||||
var dList = List.castFrom<C, D>(listNonNull);
|
||||
var dList = List.castFrom<C?, D>(list);
|
||||
Expect.equals(d, dList[1]);
|
||||
Expect.throws(() => dList.last); // null is not D.
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectList = List.castFrom<C, Object>(listNonNull);
|
||||
var objectList = List.castFrom<C?, Object>(list);
|
||||
Expect.throws(() => objectList.last); // null is not Object.
|
||||
}
|
||||
|
||||
testMap() {
|
||||
var map = new Map.fromIterables(elements, elements);
|
||||
var mapNonNull = Map.castFrom<C?, C?, C, C>(map);
|
||||
|
||||
// Downcast non-nullable.
|
||||
var dMap = Map.castFrom<C, C, D, D>(mapNonNull);
|
||||
var dMap = Map.castFrom<C?, C?, D, D>(map);
|
||||
Expect.equals(d, dMap[d]);
|
||||
Expect.isTrue(dMap.containsKey(null));
|
||||
Expect.equals(null, dMap[null]);
|
||||
|
@ -79,7 +75,7 @@ testMap() {
|
|||
Expect.throws(() => dMap.values.toList());
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectMap = Map.castFrom<C, C, Object, Object>(mapNonNull);
|
||||
var objectMap = Map.castFrom<C?, C?, Object, Object>(map);
|
||||
Expect.isTrue(objectMap.containsKey(null));
|
||||
Expect.equals(null, objectMap[null]);
|
||||
|
||||
|
@ -93,14 +89,13 @@ testMap() {
|
|||
|
||||
testSet() {
|
||||
var setEls = new Set<C?>.from(elements);
|
||||
var setNonNull = Set.castFrom<C?, C>(setEls);
|
||||
|
||||
// Downcast non-nullable.
|
||||
var dSet = Set.castFrom<C, D>(setNonNull);
|
||||
var dSet = Set.castFrom<C?, D>(setEls);
|
||||
Expect.equals(d, dSet.elementAt(1));
|
||||
Expect.throws(() => dSet.last); // null is not D.
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectSet = Set.castFrom<C, Object>(setNonNull);
|
||||
var objectSet = Set.castFrom<C?, Object>(setEls);
|
||||
Expect.throws(() => objectSet.last); // null is not Object.
|
||||
}
|
||||
|
|
|
@ -17,53 +17,49 @@ void main() {
|
|||
|
||||
testIterable() {
|
||||
var iterable = new Iterable<C?>.generate(elements.length, (n) => elements[n]);
|
||||
var iterableNonNull = Iterable.castFrom<C?, C>(iterable);
|
||||
// Downcast non-nullable.
|
||||
|
||||
// An iterable that (likely) can do direct access.
|
||||
var dIterableDirect = Iterable.castFrom<C, D>(iterableNonNull);
|
||||
var dIterableDirect = Iterable.castFrom<C?, D>(iterable);
|
||||
Expect.equals(d, dIterableDirect.elementAt(1));
|
||||
Expect.equals(null, dIterableDirect.skip(3).elementAt(1));
|
||||
|
||||
// An iterable that cannot do direct access.
|
||||
var dIterableNonDirect =
|
||||
Iterable.castFrom<C, D>(iterableNonNull.where((_) => true));
|
||||
Iterable.castFrom<C?, D>(iterable.where((_) => true));
|
||||
Expect.equals(d, dIterableNonDirect.elementAt(1));
|
||||
Expect.equals(null, dIterableNonDirect.skip(3).elementAt(1));
|
||||
|
||||
// Iterable that definitely won't survive accessing element 3.
|
||||
var iterableLimited = new Iterable<C?>.generate(
|
||||
elements.length, (n) => n == 3 ? throw "untouchable" : elements[n]);
|
||||
var iterableLimitedNonNull = Iterable.castFrom<C?, C>(iterableLimited);
|
||||
var dIterableLimited = Iterable.castFrom<C, D>(iterableLimitedNonNull);
|
||||
var dIterableLimited = Iterable.castFrom<C?, D>(iterableLimited);
|
||||
Expect.equals(d, dIterableLimited.elementAt(1));
|
||||
Expect.equals(null, dIterableLimited.skip(3).elementAt(1));
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectIterable = Iterable.castFrom<C, Object>(iterableNonNull);
|
||||
var objectIterable = Iterable.castFrom<C?, Object>(iterable);
|
||||
Expect.equals(null, objectIterable.skip(3).elementAt(1));
|
||||
}
|
||||
|
||||
testList() {
|
||||
var list = new List<C?>.from(elements);
|
||||
var listNonNull = List.castFrom<C?, C>(list);
|
||||
|
||||
// Downcast non-nullable.
|
||||
var dList = List.castFrom<C, D>(listNonNull);
|
||||
var dList = List.castFrom<C?, D>(list);
|
||||
Expect.equals(d, dList[1]);
|
||||
Expect.equals(null, dList.last);
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectList = List.castFrom<C, Object>(listNonNull);
|
||||
var objectList = List.castFrom<C?, Object>(list);
|
||||
Expect.equals(null, objectList.last);
|
||||
}
|
||||
|
||||
testMap() {
|
||||
var map = new Map.fromIterables(elements, elements);
|
||||
var mapNonNull = Map.castFrom<C?, C?, C, C>(map);
|
||||
|
||||
// Downcast non-nullable.
|
||||
var dMap = Map.castFrom<C, C, D, D>(mapNonNull);
|
||||
var dMap = Map.castFrom<C?, C?, D, D>(map);
|
||||
Expect.equals(d, dMap[d]);
|
||||
Expect.isTrue(dMap.containsKey(null));
|
||||
Expect.equals(null, dMap[null]);
|
||||
|
@ -75,7 +71,7 @@ testMap() {
|
|||
Expect.throws(() => dMap.values.toList());
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectMap = Map.castFrom<C, C, Object, Object>(mapNonNull);
|
||||
var objectMap = Map.castFrom<C?, C?, Object, Object>(map);
|
||||
Expect.isTrue(objectMap.containsKey(null));
|
||||
Expect.equals(null, objectMap[null]);
|
||||
|
||||
|
@ -88,14 +84,13 @@ testMap() {
|
|||
|
||||
testSet() {
|
||||
var setEls = new Set<C?>.from(elements);
|
||||
var setNonNull = Set.castFrom<C?, C>(setEls);
|
||||
|
||||
// Downcast non-nullable.
|
||||
var dSet = Set.castFrom<C, D>(setNonNull);
|
||||
var dSet = Set.castFrom<C?, D>(setEls);
|
||||
Expect.equals(d, dSet.elementAt(1));
|
||||
Expect.equals(null, dSet.last);
|
||||
|
||||
// Upcast non-nullable.
|
||||
var objectSet = Set.castFrom<C, Object>(setNonNull);
|
||||
var objectSet = Set.castFrom<C?, Object>(setEls);
|
||||
Expect.equals(null, objectSet.last);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue