Skip to content

Commit 14b38e6

Browse files
authored
Deprecate whereNotNull from IterableNullableExtensions (dart-archive/collection#332)
Dart SDK since 3.0 has an exact equivalent extension `nonNulls` in the core.
1 parent 2193df6 commit 14b38e6

File tree

3 files changed

+41
-7
lines changed

3 files changed

+41
-7
lines changed

pkgs/collection/CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55
- Fix `mergeSort` when the runtime iterable generic is a subtype of the static
66
generic.
77
- `CanonicalizedMap`: added constructor `fromEntries`.
8-
- Require Dart `^3.1.0`
98
- Mark "mixin" classes as `mixin`.
109
- Deprecate `transitiveClosure`. Consider using `package:graphs`.
10+
- Deprecate `whereNotNull()` from `IterableNullableExtension`. Use `nonNulls`
11+
instead - this is an equivalent extension available in Dart core since
12+
version 3.0.
13+
- Require Dart `^3.1.0`
1114

1215
## 1.18.0
1316

pkgs/collection/lib/src/iterable_extensions.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,7 @@ extension IterableNullableExtension<T extends Object> on Iterable<T?> {
611611
/// of this iterable, in their original iteration order.
612612
///
613613
/// For an `Iterable<X?>`, this method is equivalent to `.whereType<X>()`.
614+
@Deprecated('Use .nonNulls instead.')
614615
Iterable<T> whereNotNull() sync* {
615616
for (var element in this) {
616617
if (element != null) yield element;

pkgs/collection/test/extensions_test.dart

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -869,17 +869,47 @@ void main() {
869869
group('of nullable', () {
870870
group('.whereNotNull', () {
871871
test('empty', () {
872-
expect(iterable(<int?>[]).whereNotNull(), isEmpty);
872+
expect(
873+
iterable(<int?>[])
874+
.whereNotNull(), // ignore: deprecated_member_use_from_same_package
875+
isEmpty);
873876
});
874877
test('single', () {
875-
expect(iterable(<int?>[null]).whereNotNull(), isEmpty);
876-
expect(iterable(<int?>[1]).whereNotNull(), [1]);
878+
expect(
879+
iterable(<int?>[
880+
null
881+
]).whereNotNull(), // ignore: deprecated_member_use_from_same_package
882+
isEmpty);
883+
expect(
884+
iterable(<int?>[
885+
1
886+
]).whereNotNull(), // ignore: deprecated_member_use_from_same_package
887+
[1]);
877888
});
878889
test('multiple', () {
879-
expect(iterable(<int?>[1, 3, 5]).whereNotNull(), [1, 3, 5]);
880-
expect(iterable(<int?>[null, null, null]).whereNotNull(), isEmpty);
881890
expect(
882-
iterable(<int?>[1, null, 3, null, 5]).whereNotNull(), [1, 3, 5]);
891+
iterable(<int?>[
892+
1,
893+
3,
894+
5
895+
]).whereNotNull(), // ignore: deprecated_member_use_from_same_package
896+
[1, 3, 5]);
897+
expect(
898+
iterable(<int?>[
899+
null,
900+
null,
901+
null
902+
]).whereNotNull(), // ignore: deprecated_member_use_from_same_package
903+
isEmpty);
904+
expect(
905+
iterable(<int?>[
906+
1,
907+
null,
908+
3,
909+
null,
910+
5
911+
]).whereNotNull(), // ignore: deprecated_member_use_from_same_package
912+
[1, 3, 5]);
883913
});
884914
});
885915
});

0 commit comments

Comments
 (0)