Upgrading collection 0.9 to 1
Breaking0.9.4 → 1.19.1Breaking2Platform2Deprecated2New14Changed8Fixed3Other8
Fetching 48 releases from GitHub…14 / 48
BreakingUpgrade verdict
2 breaking changes and 2 platform requirement changes.
In plain terms
- Remove the unusable setter UnionSetController.set=.
- Note that 1.15.0 may not be the final stable null safety release version, we reserve the right to release it as a 2.0.0 breaking change.
- You must use Dart 3.4.0 or newer.
- Require Dart 2.18.
Must act Top 5 of 6 that need code or config changes
Dart SDK requirement changed in 1.19.0: >=1.0.0 <2.0.0 → ^3.4.0.
What you must change
Breaking2
Remove the unusable setter UnionSetController.set=.
UnionSetController.set=Note that 1.15.0 may not be the final stable null safety release version, we reserve the right to release it as a 2.0.0 breaking change.
Platform2
Requires Dart
^3.4.0.Require Dart 2.18.
Deprecations to plan for
Deprecated2
Deprecates
transitiveClosure and suggests using package:graphs.transitiveClosureDeprecates
whereNotNull() from IterableNullableExtension in favor of nonNulls.whereNotNull()IterableNullableExtensionnonNullsAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- changed:
function binarySearch(List sortedList, var key, { int compare(var a, var b) }): int → function binarySearch<E>(List<E> sortedList, E value, {int Function(E, E)? compare}): int - changed:
function insertionSort(List list, { int compare(a, b), int start = …, int end = …}): void → function insertionSort<E>(List<E> elements, {int Function(E, E)? compare, int start = …, int? end}): void - changed:
function mergeSort(List list, {int start = …, int end = …, int compare(a, b)}): void → function mergeSort<E>(List<E> elements, {int start = …, int? end, int Function(E, E)? compare}): void - changed:
function reverse(List list, [int start = …, int end = …]): void → function reverse<E>(List<E> elements, [int start = …, int? end]): void - changed:
function shuffle(List list, [int start = …, int end = …]): void → function shuffle(List elements, [int start = …, int? end, Random? random]): void - added:
function lowerBound<E>(List<E> sortedList, E value, {int Function(E, E)? compare}): int
- removed:
class UnmodifiableMapView<K, V> extends DelegatingMap<K, V> with UnmodifiableMapMixin<K, V> - removed:
ctor UnmodifiableMapView(Map<K, V> baseMap) - removed:
field CanonicalizedMap.Pair<K: final - changed:
class DefaultEquality implements Equality → class DefaultEquality<E> implements Equality<E> - changed:
class DelegatingList<E> extends DelegatingIterable<E> implements List<E> → class DelegatingList<E> extends _DelegatingIterableBase<E> implements List<E> - changed:
class DelegatingQueue<E> extends DelegatingIterable<E> implements Queue<E> → class DelegatingQueue<E> extends _DelegatingIterableBase<E> implements Queue<E> - changed:
class DelegatingSet<E> extends DelegatingIterable<E> implements Set<E> → class DelegatingSet<E> extends _DelegatingIterableBase<E> implements Set<E> - changed:
class IdentityEquality implements Equality → class IdentityEquality<E> implements Equality<E> - changed:
class IterableZip extends IterableBase<List> → class IterableZip<T> extends IterableBase<List<T>> - changed:
class NonGrowableListMixin<E>: abstract implements List<E> → class NonGrowableListMixin<E>: abstract mixin implements List<E> - changed:
class UnmodifiableMapMixin<K, V>: abstract implements Map<K, V> → class UnmodifiableMapMixin<K, V>: abstract mixin implements Map<K, V> - changed:
class UnmodifiableSetMixin<E>: abstract implements Set<E> → class UnmodifiableSetMixin<E>: abstract mixin implements Set<E> - changed:
ctor CanonicalizedMap(C canonicalize(K key), {bool isValidKey(K key)}) → ctor CanonicalizedMap(C Function(K key) canonicalize, {bool Function(K key)? isValidKey}) - changed:
ctor CanonicalizedMap.from(Map<K, V> other, C canonicalize(K key), {bool isValidKey(K key)}) → ctor CanonicalizedMap.from(Map<K, V> other, C Function(K key) canonicalize, {bool Function(K key)? isValidKey}) - changed:
ctor HeapPriorityQueue([int comparison(E e1, E e2)]) → ctor HeapPriorityQueue([int Function(E, E)? comparison]) - changed:
ctor IterableEquality([Equality<E> elementEquality = …]) → ctor IterableEquality( [Equality<E> elementEquality = …]) - changed:
ctor IterableZip(Iterable<Iterable> iterables) → ctor IterableZip(Iterable<Iterable<T>> iterables) - changed:
ctor ListEquality([Equality<E> elementEquality = …]) → ctor ListEquality( [Equality<E> elementEquality = …]) - changed:
ctor MapEquality({ Equality<K> keys = …, Equality<V> values = …}) → ctor MapEquality( {Equality<K> keys = …, Equality<V> values = …}) - changed:
ctor MapKeySet(Map<E, dynamic> base) → ctor MapKeySet(this._baseMap) - changed:
ctor MapValueSet(Map<K, V> base, K keyForValue(V value)) → ctor MapValueSet(this._baseMap, this._keyForValue) - changed:
ctor NonGrowableListView(List<E> listBase) → ctor NonGrowableListView(super.listBase) - changed:
ctor SetEquality( [Equality<E> elementEquality = …]) → ctor SetEquality([super.elementEquality = …]) - changed:
ctor UnmodifiableSetView(Set<E> setBase) → ctor UnmodifiableSetView(super.setBase) - changed:
ctor UnorderedIterableEquality( [Equality<E> elementEquality = …]) → ctor UnorderedIterableEquality( [super.elementEquality = …]) - changed:
field CanonicalizedMap.V>>(): final → field CanonicalizedMap.V>>: final - changed:
field HeapPriorityQueue.comparison: final Comparator → field HeapPriorityQueue.comparison: final Comparator<E> - changed:
function binarySearch(List sortedList, var key, { int compare(var a, var b) }): int → function binarySearch<E>(List<E> sortedList, E value, {int Function(E, E)? compare}): int - changed:
function insertionSort(List list, { int compare(a, b), int start = …, int end = …}): void → function insertionSort<E>(List<E> elements, {int Function(E, E)? compare, int start = …, int? end}): void - changed:
function mergeSort(List list, {int start = …, int end = …, int compare(a, b)}): void → function mergeSort<E>(List<E> elements, {int start = …, int? end, int Function(E, E)? compare}): void - changed:
function reverse(List list, [int start = …, int end = …]): void → function reverse<E>(List<E> elements, [int start = …, int? end]): void - changed:
function shuffle(List list, [int start = …, int end = …]): void → function shuffle(List elements, [int start = …, int? end, Random? random]): void - changed:
get IterableZip.iterator: Iterator<List> → get IterableZip.iterator: Iterator<List<T>> - changed:
method CanonicalizedMap.containsKey(Object key): bool → method CanonicalizedMap.containsKey(Object? key): bool - changed:
method CanonicalizedMap.containsValue(Object value): bool → method CanonicalizedMap.containsValue(Object? value): bool - changed:
method CanonicalizedMap.forEach(void f(K key, V value)): void → method CanonicalizedMap.forEach(void Function(K, V) f): void - changed:
method CanonicalizedMap.operator [](Object key): V → method CanonicalizedMap.operator [](Object? key): V? - changed:
method CanonicalizedMap.putIfAbsent(K key, V ifAbsent()): V → method CanonicalizedMap.putIfAbsent(K key, V Function() ifAbsent): V - changed:
method CanonicalizedMap.remove(Object key): V → method CanonicalizedMap.remove(Object? key): V? - changed:
method DeepCollectionEquality.equals(e1, e2): bool → method DeepCollectionEquality.equals(Object? e1, Object? e2): bool - changed:
method DeepCollectionEquality.hash(Object o): int → method DeepCollectionEquality.hash(Object? o): int - changed:
method DeepCollectionEquality.isValidKey(Object o): bool → method DeepCollectionEquality.isValidKey(Object? o): bool - changed:
method DefaultEquality.equals(Object e1, Object e2): bool → method DefaultEquality.equals(Object? e1, Object? e2): bool - changed:
method DefaultEquality.hash(Object e): int → method DefaultEquality.hash(Object? e): int - changed:
method DefaultEquality.isValidKey(Object o): bool → method DefaultEquality.isValidKey(Object? o): bool - changed:
method DelegatingList.fillRange(int start, int end, [E fillValue]): void → method DelegatingList.fillRange(int start, int end, [E? fillValue]): void - changed:
method DelegatingList.lastIndexOf(E element, [int start]): int → method DelegatingList.lastIndexOf(E element, [int? start]): int - changed:
method DelegatingList.remove(Object value): bool → method DelegatingList.remove(Object? value): bool - changed:
method DelegatingList.removeWhere(bool test(E element)): void → method DelegatingList.removeWhere(bool Function(E) test): void - changed:
method DelegatingList.retainWhere(bool test(E element)): void → method DelegatingList.retainWhere(bool Function(E) test): void - changed:
method DelegatingList.shuffle([Random random]): void → method DelegatingList.shuffle([math.Random? random]): void - changed:
method DelegatingList.sort([int compare(E a, E b)]): void → method DelegatingList.sort([int Function(E, E)? compare]): void - changed:
method DelegatingList.sublist(int start, [int end]): List<E> → method DelegatingList.sublist(int start, [int? end]): List<E> - changed:
method DelegatingMap.containsKey(Object key): bool → method DelegatingMap.containsKey(Object? key): bool - changed:
method DelegatingMap.containsValue(Object value): bool → method DelegatingMap.containsValue(Object? value): bool - changed:
method DelegatingMap.forEach(void f(K key, V value)): void → method DelegatingMap.forEach(void Function(K, V) f): void - changed:
method DelegatingMap.operator [](Object key): V → method DelegatingMap.operator [](Object? key): V? - changed:
method DelegatingMap.putIfAbsent(K key, V ifAbsent()): V → method DelegatingMap.putIfAbsent(K key, V Function() ifAbsent): V - changed:
method DelegatingMap.remove(Object key): V → method DelegatingMap.remove(Object? key): V? - changed:
method DelegatingQueue.remove(Object object): bool → method DelegatingQueue.remove(Object? object): bool - changed:
method DelegatingQueue.removeWhere(bool test(E element)): void → method DelegatingQueue.removeWhere(bool Function(E) test): void - changed:
method DelegatingQueue.retainWhere(bool test(E element)): void → method DelegatingQueue.retainWhere(bool Function(E) test): void - changed:
method DelegatingSet.containsAll(Iterable<Object> other): bool → method DelegatingSet.containsAll(Iterable<Object?> other): bool - changed:
method DelegatingSet.difference(Set<E> other): Set<E> → method DelegatingSet.difference(Set<Object?> other): Set<E> - changed:
method DelegatingSet.intersection(Set<Object> other): Set<E> → method DelegatingSet.intersection(Set<Object?> other): Set<E> - changed:
method DelegatingSet.lookup(E element): E → method DelegatingSet.lookup(Object? element): E? - changed:
method DelegatingSet.remove(Object value): bool → method DelegatingSet.remove(Object? value): bool - changed:
method DelegatingSet.removeAll(Iterable<Object> elements): void → method DelegatingSet.removeAll(Iterable<Object?> elements): void - changed:
method DelegatingSet.removeWhere(bool test(E element)): void → method DelegatingSet.removeWhere(bool Function(E) test): void - changed:
method DelegatingSet.retainAll(Iterable<Object> elements): void → method DelegatingSet.retainAll(Iterable<Object?> elements): void - changed:
method DelegatingSet.retainWhere(bool test(E element)): void → method DelegatingSet.retainWhere(bool Function(E) test): void - changed:
method Equality.isValidKey(Object o): bool → method Equality.isValidKey(Object? o): bool - changed:
method IdentityEquality.equals(Object e1, Object e2): bool → method IdentityEquality.equals(E e1, E e2): bool - changed:
method IdentityEquality.hash(Object e): int → method IdentityEquality.hash(E e): int - changed:
method IdentityEquality.isValidKey(Object o): bool → method IdentityEquality.isValidKey(Object? o): bool - changed:
method IterableEquality.equals(Iterable<E> elements1, Iterable<E> elements2): bool → method IterableEquality.equals(Iterable<E>? elements1, Iterable<E>? elements2): bool - changed:
method IterableEquality.hash(Iterable<E> elements): int → method IterableEquality.hash(Iterable<E>? elements): int - changed:
method IterableEquality.isValidKey(Object o): bool → method IterableEquality.isValidKey(Object? o): bool - changed:
method ListEquality.equals(List<E> e1, List<E> e2): bool → method ListEquality.equals(List<E>? list1, List<E>? list2): bool - changed:
method ListEquality.hash(List<E> e): int → method ListEquality.hash(List<E>? list): int - changed:
method ListEquality.isValidKey(Object o): bool → method ListEquality.isValidKey(Object? o): bool - changed:
method MapEquality.equals(Map<K, V> e1, Map<K, V> e2): bool → method MapEquality.equals(Map<K, V>? map1, Map<K, V>? map2): bool - changed:
method MapEquality.hash(Map<K, V> map): int → method MapEquality.hash(Map<K, V>? map): int - changed:
method MapEquality.isValidKey(Object o): bool → method MapEquality.isValidKey(Object? o): bool - changed:
method MapKeySet.contains(Object element): bool → method MapKeySet.contains(Object? element): bool - changed:
method MapKeySet.containsAll(Iterable<Object> other): bool → method MapKeySet.containsAll(Iterable<Object?> other): bool - changed:
method MapKeySet.difference(Set<E> other): Set<E> → method MapKeySet.difference(Set<Object?> other): Set<E> - changed:
method MapKeySet.intersection(Set<Object> other): Set<E> → method MapKeySet.intersection(Set<Object?> other): Set<E> - changed:
method MapKeySet.lookup(E element): E → method MapKeySet.lookup(Object? element): E - changed:
method MapValueSet.contains(Object element): bool → method MapValueSet.contains(Object? element): bool - changed:
method MapValueSet.containsAll(Iterable<Object> other): bool → method MapValueSet.containsAll(Iterable<Object?> other): bool - changed:
method MapValueSet.difference(Set<V> other): Set<V> → method MapValueSet.difference(Set<Object?> other): Set<V> - changed:
method MapValueSet.intersection(Set<Object> other): Set<V> → method MapValueSet.intersection(Set<Object?> other): Set<V> - changed:
method MapValueSet.lookup(V element): V → method MapValueSet.lookup(Object? element): V? - changed:
method MapValueSet.remove(Object value): bool → method MapValueSet.remove(Object? element): bool - changed:
method MapValueSet.removeAll(Iterable<Object> elements): void → method MapValueSet.removeAll(Iterable<Object?> elements): void - changed:
method MapValueSet.removeWhere(bool test(V element)): void → method MapValueSet.removeWhere(bool Function(V) test): void - changed:
method MapValueSet.retainAll(Iterable<Object> elements): void → method MapValueSet.retainAll(Iterable<Object?> elements): void - changed:
method MapValueSet.retainWhere(bool test(V element)): void → method MapValueSet.retainWhere(bool Function(V) test): void - changed:
method MultiEquality.isValidKey(Object o): bool → method MultiEquality.isValidKey(Object? o): bool - changed:
method NonGrowableListMixin.remove(Object value): bool → method NonGrowableListMixin.remove(Object? value): bool - changed:
method NonGrowableListMixin.removeWhere(bool test(E element)): void → method NonGrowableListMixin.removeWhere(bool Function(E) test): void - changed:
method NonGrowableListMixin.retainWhere(bool test(E element)): void → method NonGrowableListMixin.retainWhere(bool Function(E) test): void - changed:
method SetEquality.isValidKey(Object o): bool → method SetEquality.isValidKey(Object? o): bool - changed:
method UnmodifiableMapMixin.putIfAbsent(K key, V ifAbsent()): V → method UnmodifiableMapMixin.putIfAbsent(K key, V Function() ifAbsent): V - changed:
method UnmodifiableMapMixin.remove(K key): V → method UnmodifiableMapMixin.remove(Object? key): V - changed:
method UnmodifiableSetMixin.remove(Object value): bool → method UnmodifiableSetMixin.remove(Object? value): bool - changed:
method UnmodifiableSetMixin.removeWhere(bool test(E element)): void → method UnmodifiableSetMixin.removeWhere(bool Function(E) test): void - changed:
method UnmodifiableSetMixin.retainWhere(bool test(E element)): void → method UnmodifiableSetMixin.retainWhere(bool Function(E) test): void - changed:
method UnorderedIterableEquality.isValidKey(Object o): bool → method UnorderedIterableEquality.isValidKey(Object? o): bool - added:
class BoolList: abstract with ListMixin<bool> - added:
class CaseInsensitiveEquality implements Equality<String> - added:
class CombinedIterableView<T> extends IterableBase<T> - added:
class CombinedListView<T> extends ListBase<T> implements UnmodifiableListView<T> - added:
class CombinedMapView<K, V> extends UnmodifiableMapBase<K, V> - added:
class EqualityBy<E, F> implements Equality<E> - added:
class EqualityMap<K, V> extends DelegatingMap<K, V> - added:
class EqualitySet<E> extends DelegatingSet<E> - added:
class ListSlice<E> extends ListBase<E> - added:
class QueueList<E> extends Object with ListMixin<E> implements Queue<E> - added:
class UnionSet<E> extends SetBase<E> with UnmodifiableSetMixin<E> - added:
class UnionSetController<E> - added:
ctor BoolList(int length, {bool fill = …, bool growable = …}) - added:
ctor BoolList.empty({bool growable = …, int capacity = …}) - added:
ctor BoolList.generate( int length, bool Function(int) generator, { bool growable = …, }) - added:
ctor BoolList.of(Iterable<bool> elements, {bool growable = …}) - added:
ctor CanonicalizedMap.fromEntries( Iterable<MapEntry<K, V>> entries, C Function(K key) canonicalize, {bool Function(K key)? isValidKey}) - added:
ctor CaseInsensitiveEquality() - added:
ctor CombinedIterableView(this._iterables) - added:
ctor CombinedListView(this._lists) - added:
ctor CombinedMapView(this._maps) - added:
ctor EqualityBy(F Function(E) comparisonKey, [Equality<F> inner = …]) - added:
ctor EqualityMap(Equality<K> equality) - added:
ctor EqualityMap.from(Equality<K> equality, Map<K, V> other) - added:
ctor EqualitySet(Equality<E> equality) - added:
ctor EqualitySet.from(Equality<E> equality, Iterable<E> other) - added:
ctor ListSlice(this.source, this.start, int end) - added:
ctor PriorityQueue([int Function(E, E)? comparison]) - added:
ctor QueueList([int? initialCapacity]) - added:
ctor QueueList.from(Iterable<E> source) - added:
ctor UnionSet(Set<Set<E>> sets, {bool disjoint = …}) - added:
ctor UnionSet.from(Iterable<Set<E>> sets, {bool disjoint = …}) - added:
ctor UnionSetController({bool disjoint = …}) - added:
ctor UnmodifiableSetView.empty() - added:
extension ComparatorExtension<T> on Comparator<T> - added:
extension IterableComparableExtension<T extends Comparable<T>> on Iterable<T> - added:
extension IterableDoubleExtension on Iterable<double> - added:
extension IterableExtension<T> on Iterable<T> - added:
extension IterableIntegerExtension on Iterable<int> - added:
extension IterableIterableExtension<T> on Iterable<Iterable<T>> - added:
extension IterableNullableExtension<T extends Object> on Iterable<T?> - added:
extension IterableNumberExtension on Iterable<num> - added:
extension ListComparableExtensions<E extends Comparable<E>> on List<E> - added:
extension ListExtensions<E> on List<E> - added:
field BoolList.[]: void operator - added:
field CanonicalizedMap.MapEntry<K: final - added:
field CombinedListView.[]: void operator - added:
field IterableIterableExtension.sync*: Iterable<T> get flattened - added:
field ListSlice.[]: void operator - added:
field ListSlice.length: final int - added:
field ListSlice.source: final List<E> - added:
field ListSlice.start: final int - added:
field QueueList.[]: void operator - added:
field UnionSetController.set: final UnionSet<E> - added:
function compareAsciiLowerCase(String a, String b): int - added:
function compareAsciiLowerCaseNatural(String a, String b): int - added:
function compareAsciiUpperCase(String a, String b): int - added:
function compareAsciiUpperCaseNatural(String a, String b): int - added:
function compareNatural(String a, String b): int - added:
function equalsIgnoreAsciiCase(String a, String b): bool - added:
function groupBy<S, T>(Iterable<S> values, T Function(S) key): Map<T, List<S>> - added:
function hashIgnoreAsciiCase(String string): int - added:
function lastBy<S, T>(Iterable<S> values, T Function(S) key): Map<T, S> - added:
function lowerBound<E>(List<E> sortedList, E value, {int Function(E, E)? compare}): int - added:
function mapMap<K1, V1, K2, V2>(Map<K1, V1> map, {K2 Function(K1, V1)? key, V2 Function(K1, V1)? value}): Map<K2, V2> - added:
function maxBy<S, T>(Iterable<S> values, T Function(S) orderBy, {int Function(T, T)? compare}): S? - added:
function mergeMaps<K, V>(Map<K, V> map1, Map<K, V> map2, {V Function(V, V)? value}): Map<K, V> - added:
function minBy<S, T>(Iterable<S> values, T Function(S) orderBy, {int Function(T, T)? compare}): S? - added:
function stronglyConnectedComponents<T>(Map<T, Iterable<T>> graph): List<Set<T>> - added:
function transitiveClosure<T>(Map<T, Iterable<T>> graph): Map<T, Set<T>> - added:
get BoolList.iterator: Iterator<bool> - added:
get BoolList.length: int - added:
get CanonicalizedMap.entries: Iterable<MapEntry<K, V>> - added:
get CombinedIterableView.isEmpty: bool - added:
get CombinedIterableView.iterator: Iterator<T> - added:
get CombinedIterableView.length: int - added:
get CombinedListView.iterator: Iterator<T> - added:
get CombinedListView.length: int - added:
get CombinedMapView.keys: Iterable<K> - added:
get ComparatorExtension.inverse: Comparator<T> - added:
get DelegatingMap.entries: Iterable<MapEntry<K, V>> - added:
get HeapPriorityQueue.unorderedElements: Iterable<E> - added:
get IterableComparableExtension.max: T - added:
get IterableComparableExtension.maxOrNull: T? - added:
get IterableComparableExtension.min: T - added:
get IterableComparableExtension.minOrNull: T? - added:
get IterableDoubleExtension.max: double - added:
get IterableDoubleExtension.maxOrNull: double? - added:
get IterableDoubleExtension.min: double - added:
get IterableDoubleExtension.minOrNull: double? - added:
get IterableDoubleExtension.sum: double - added:
get IterableExtension.firstOrNull: T? - added:
get IterableExtension.lastOrNull: T? - added:
get IterableExtension.singleOrNull: T? - added:
get IterableIntegerExtension.average: double - added:
get IterableIntegerExtension.max: int - added:
get IterableIntegerExtension.maxOrNull: int? - added:
get IterableIntegerExtension.min: int - added:
get IterableIntegerExtension.minOrNull: int? - added:
get IterableIntegerExtension.sum: int - added:
get IterableIterableExtension.flattenedToList: List<T> - added:
get IterableIterableExtension.flattenedToSet: Set<T> - added:
get IterableNumberExtension.average: double - added:
get IterableNumberExtension.max: num - added:
get IterableNumberExtension.maxOrNull: num? - added:
get IterableNumberExtension.min: num - added:
get IterableNumberExtension.minOrNull: num? - added:
get IterableNumberExtension.sum: num - added:
get ListSlice.end: int - added:
get PriorityQueue.unorderedElements: Iterable<E> - added:
get QueueList.length: int - added:
get UnionSet.iterator: Iterator<E> - added:
get UnionSet.length: int - added:
method BoolList.fillRange(int start, int end, [bool? fill]): void - added:
method BoolList.operator [](int index): bool - added:
method CanonicalizedMap.Function(K): C - added:
method CanonicalizedMap.Function(K): bool - added:
method CanonicalizedMap.addEntries(Iterable<MapEntry<K, V>> entries): void - added:
method CanonicalizedMap.cast<K2, V2>(): Map<K2, V2> - added:
method CanonicalizedMap.copy(): CanonicalizedMap<C, K, V> - added:
method CanonicalizedMap.map<K2, V2>(MapEntry<K2, V2> Function(K, V) transform): Map<K2, V2> - added:
method CanonicalizedMap.removeWhere(bool Function(K key, V value) test): void - added:
method CanonicalizedMap.retype<K2, V2>(): Map<K2, V2> - added:
method CanonicalizedMap.toMap(): Map<K, V> - added:
method CanonicalizedMap.toMapOfCanonicalKeys(): Map<C, V> - added:
method CanonicalizedMap.update(K key, V Function(V) update, {V Function()? ifAbsent}): V - added:
method CanonicalizedMap.updateAll(V Function(K key, V value) update): void - added:
method CaseInsensitiveEquality.equals(String string1, String string2): bool - added:
method CaseInsensitiveEquality.hash(String string): int - added:
method CaseInsensitiveEquality.isValidKey(Object? object): bool - added:
method CombinedIterableView.contains(Object? element): bool - added:
method CombinedListView.clear(): void - added:
method CombinedListView.operator [](int index): T - added:
method CombinedListView.remove(Object? element): bool - added:
method CombinedListView.removeWhere(bool Function(T) test): void - added:
method CombinedListView.retainWhere(bool Function(T) test): void - added:
method CombinedMapView.operator [](Object? key): V? - added:
method ComparatorExtension.compareBy<R>(T Function(R) keyOf): Comparator<R> - added:
method ComparatorExtension.then(Comparator<T> tieBreaker): Comparator<T> - added:
method DelegatingList.cast<T>(): List<T> - added:
method DelegatingList.indexWhere(bool Function(E) test, [int start = …]): int - added:
method DelegatingList.lastIndexWhere(bool Function(E) test, [int? start]): int - added:
method DelegatingList.operator +(List<E> other): List<E> - added:
method DelegatingList.retype<T>(): List<T> - added:
method DelegatingMap.addEntries(Iterable<MapEntry<K, V>> entries): void - added:
method DelegatingMap.cast<K2, V2>(): Map<K2, V2> - added:
method DelegatingMap.map<K2, V2>(MapEntry<K2, V2> Function(K, V) transform): Map<K2, V2> - added:
method DelegatingMap.removeWhere(bool Function(K, V) test): void - added:
method DelegatingMap.retype<K2, V2>(): Map<K2, V2> - added:
method DelegatingMap.update(K key, V Function(V) update, {V Function()? ifAbsent}): V - added:
method DelegatingMap.updateAll(V Function(K, V) update): void - added:
method DelegatingQueue.cast<T>(): Queue<T> - added:
method DelegatingQueue.retype<T>(): Queue<T> - added:
method DelegatingSet.cast<T>(): Set<T> - added:
method DelegatingSet.retype<T>(): Set<T> - added:
method EqualityBy.Function(E): F - added:
method EqualityBy.equals(E e1, E e2): bool - added:
method EqualityBy.hash(E e): int - added:
method EqualityBy.isValidKey(Object? o): bool - added:
method HeapPriorityQueue.toUnorderedList(): List<E> - added:
method IterableComparableExtension.isSorted([Comparator<T>? compare]): bool - added:
method IterableComparableExtension.sorted([Comparator<T>? compare]): List<T> - added:
method IterableExtension.elementAtOrNull(int index): T? - added:
method IterableExtension.expandIndexed<R>( Iterable<R> Function(int index, T element) expand): Iterable<R> - added:
method IterableExtension.firstWhereIndexedOrNull(bool Function(int index, T element) test): T? - added:
method IterableExtension.firstWhereOrNull(bool Function(T element) test): T? - added:
method IterableExtension.foldIndexed<R>( R initialValue, R Function(int index, R previous, T element) combine): R - added:
method IterableExtension.forEachIndexed(void Function(int index, T element) action): void - added:
method IterableExtension.forEachIndexedWhile(bool Function(int index, T element) action): void - added:
method IterableExtension.forEachWhile(bool Function(T element) action): void - added:
method IterableExtension.groupFoldBy<K, G>( K Function(T element) keyOf, G Function(G? previous, T element) combine): Map<K, G> - added:
method IterableExtension.groupListsBy<K>(K Function(T element) keyOf): Map<K, List<T>> - added:
method IterableExtension.groupSetsBy<K>(K Function(T element) keyOf): Map<K, Set<T>> - added:
method IterableExtension.isSorted(Comparator<T> compare): bool - added:
method IterableExtension.isSortedBy<K extends Comparable<K>>(K Function(T element) keyOf): bool - added:
method IterableExtension.isSortedByCompare<K>( K Function(T element) keyOf, Comparator<K> compare): bool - added:
method IterableExtension.lastBy<K>(K Function(T) key): Map<K, T> - added:
method IterableExtension.lastWhereIndexedOrNull(bool Function(int index, T element) test): T? - added:
method IterableExtension.lastWhereOrNull(bool Function(T element) test): T? - added:
method IterableExtension.mapIndexed<R>(R Function(int index, T element) convert): Iterable<R> - added:
method IterableExtension.none(bool Function(T) test): bool - added:
method IterableExtension.reduceIndexed(T Function(int index, T previous, T element) combine): T - added:
method IterableExtension.sample(int count, [Random? random]): List<T> - added:
method IterableExtension.shuffled([Random? random]): List<T> - added:
method IterableExtension.singleWhereIndexedOrNull(bool Function(int index, T element) test): T? - added:
method IterableExtension.singleWhereOrNull(bool Function(T element) test): T? - added:
method IterableExtension.slices(int length): Iterable<List<T>> - added:
method IterableExtension.sorted(Comparator<T> compare): List<T> - added:
method IterableExtension.sortedBy<K extends Comparable<K>>(K Function(T element) keyOf): List<T> - added:
method IterableExtension.sortedByCompare<K>( K Function(T element) keyOf, Comparator<K> compare): List<T> - added:
method IterableExtension.splitAfter(bool Function(T element) test): Iterable<List<T>> - added:
method IterableExtension.splitAfterIndexed( bool Function(int index, T element) test): Iterable<List<T>> - added:
method IterableExtension.splitBefore(bool Function(T element) test): Iterable<List<T>> - added:
method IterableExtension.splitBeforeIndexed( bool Function(int index, T element) test): Iterable<List<T>> - added:
method IterableExtension.splitBetween(bool Function(T first, T second) test): Iterable<List<T>> - added:
method IterableExtension.splitBetweenIndexed( bool Function(int index, T first, T second) test): Iterable<List<T>> - added:
method IterableExtension.whereIndexed(bool Function(int index, T element) test): Iterable<T> - added:
method IterableExtension.whereNot(bool Function(T element) test): Iterable<T> - added:
method IterableExtension.whereNotIndexed(bool Function(int index, T element) test): Iterable<T> - added:
method IterableNullableExtension.whereNotNull(): Iterable<T> - added:
method ListComparableExtensions.binarySearch(E element, [int Function(E, E)? compare]): int - added:
method ListComparableExtensions.lowerBound(E element, [int Function(E, E)? compare]): int - added:
method ListComparableExtensions.sortRange(int start, int end, [int Function(E a, E b)? compare]): void - added:
method ListExtensions.binarySearch(E element, int Function(E, E) compare): int - added:
method ListExtensions.binarySearchBy<K extends Comparable<K>>( E element, K Function(E element) keyOf, [int start = …, int? end]): int - added:
method ListExtensions.binarySearchByCompare<K>( E element, K Function(E element) keyOf, int Function(K, K) compare, [int start = …, int? end]): int - added:
method ListExtensions.elementAtOrNull(int index): E? - added:
method ListExtensions.equals(List<E> other, [Equality<E> equality = …]): bool - added:
method ListExtensions.expandIndexed<R>( Iterable<R> Function(int index, E element) expand): Iterable<R> - added:
method ListExtensions.forEachIndexed(void Function(int index, E element) action): void - added:
method ListExtensions.forEachIndexedWhile(bool Function(int index, E element) action): void - added:
method ListExtensions.forEachWhile(bool Function(E element) action): void - added:
method ListExtensions.lowerBound(E element, int Function(E, E) compare): int - added:
method ListExtensions.lowerBoundBy<K extends Comparable<K>>(E element, K Function(E) keyOf, [int start = …, int? end]): int - added:
method ListExtensions.lowerBoundByCompare<K>( E element, K Function(E) keyOf, int Function(K, K) compare, [int start = …, int? end]): int - added:
method ListExtensions.mapIndexed<R>(R Function(int index, E element) convert): Iterable<R> - added:
method ListExtensions.reverseRange(int start, int end): void - added:
method ListExtensions.shuffleRange(int start, int end, [Random? random]): void - added:
method ListExtensions.slice(int start, [int? end]): ListSlice<E> - added:
method ListExtensions.slices(int length): Iterable<List<E>> - added:
method ListExtensions.sortBy<K extends Comparable<K>>(K Function(E element) keyOf, [int start = …, int? end]): void - added:
method ListExtensions.sortByCompare<K>( K Function(E element) keyOf, int Function(K a, K b) compare, [int start = …, int? end]): void - added:
method ListExtensions.sortRange(int start, int end, int Function(E a, E b) compare): void - added:
method ListExtensions.swap(int index1, int index2): void - added:
method ListExtensions.whereIndexed(bool Function(int index, E element) test): Iterable<E> - added:
method ListExtensions.whereNotIndexed(bool Function(int index, E element) test): Iterable<E> - added:
method ListSlice.add(E element): void - added:
method ListSlice.addAll(Iterable<E> iterable): void - added:
method ListSlice.clear(): void - added:
method ListSlice.insert(int index, E element): void - added:
method ListSlice.insertAll(int index, Iterable<E> iterable): void - added:
method ListSlice.operator [](int index): E - added:
method ListSlice.remove(Object? element): bool - added:
method ListSlice.removeAt(int index): E - added:
method ListSlice.removeLast(): E - added:
method ListSlice.removeRange(int start, int end): void - added:
method ListSlice.removeWhere(bool Function(E element) test): void - added:
method ListSlice.replaceRange(int start, int end, Iterable<E> newContents): void - added:
method ListSlice.retainWhere(bool Function(E element) test): void - added:
method ListSlice.reverseRange(int start, int end): void - added:
method ListSlice.setRange(int start, int end, Iterable<E> iterable, [int skipCount = …]): void - added:
method ListSlice.shuffle([Random? random]): void - added:
method ListSlice.shuffleRange(int start, int end, [Random? random]): void - added:
method ListSlice.slice(int start, [int? end]): ListSlice<E> - added:
method ListSlice.sort([int Function(E a, E b)? compare]): void - added:
method ListSlice.sortRange(int start, int end, int Function(E a, E b) compare): void - added:
method MapKeySet.cast<T>(): Set<T> - added:
method MapKeySet.retype<T>(): Set<T> - added:
method MapValueSet.Function(V): K - added:
method MapValueSet.cast<T>(): Set<T> - added:
method MapValueSet.retype<T>(): Set<T> - added:
method PriorityQueue.toUnorderedList(): List<E> - added:
method QueueList.add(E element): void - added:
method QueueList.addAll(Iterable<E> iterable): void - added:
method QueueList.addFirst(E element): void - added:
method QueueList.addLast(E element): void - added:
method QueueList.cast<T>(): QueueList<T> - added:
method QueueList.operator [](int index): E - added:
method QueueList.removeFirst(): E - added:
method QueueList.removeLast(): E - added:
method QueueList.retype<T>(): QueueList<T> - added:
method QueueList.toString(): String - added:
method UnionSet.contains(Object? element): bool - added:
method UnionSet.lookup(Object? element): E? - added:
method UnionSet.toSet(): Set<E> - added:
method UnionSetController.add(Set<E> component): void - added:
method UnionSetController.remove(Set<E> component): bool - added:
set CombinedListView.length(int length) - added:
set DelegatingList.first(E value) - added:
set DelegatingList.last(E value) - added:
set ListSlice.length(int newLength) - added:
set QueueList.length(int value) - added:
set UnmodifiableMapMixin.first(_) - added:
set UnmodifiableMapMixin.last(_) - added:
static method DelegatingIterable.typed<E>(Iterable base): Iterable<E> - added:
static method DelegatingList.typed<E>(List base): List<E> - added:
static method DelegatingMap.typed<K, V>(Map base): Map<K, V> - added:
static method DelegatingQueue.typed<E>(Queue base): Queue<E> - added:
static method DelegatingSet.typed<E>(Set base): Set<E>
- changed:
class DefaultEquality implements Equality → class DefaultEquality<E> implements Equality<E> - changed:
class IdentityEquality implements Equality → class IdentityEquality<E> implements Equality<E> - changed:
ctor IterableEquality([Equality<E> elementEquality = …]) → ctor IterableEquality( [Equality<E> elementEquality = …]) - changed:
ctor ListEquality([Equality<E> elementEquality = …]) → ctor ListEquality( [Equality<E> elementEquality = …]) - changed:
ctor MapEquality({ Equality<K> keys = …, Equality<V> values = …}) → ctor MapEquality( {Equality<K> keys = …, Equality<V> values = …}) - changed:
ctor SetEquality( [Equality<E> elementEquality = …]) → ctor SetEquality([super.elementEquality = …]) - changed:
ctor UnorderedIterableEquality( [Equality<E> elementEquality = …]) → ctor UnorderedIterableEquality( [super.elementEquality = …]) - changed:
method DeepCollectionEquality.equals(e1, e2): bool → method DeepCollectionEquality.equals(Object? e1, Object? e2): bool - changed:
method DeepCollectionEquality.hash(Object o): int → method DeepCollectionEquality.hash(Object? o): int - changed:
method DeepCollectionEquality.isValidKey(Object o): bool → method DeepCollectionEquality.isValidKey(Object? o): bool - changed:
method DefaultEquality.equals(Object e1, Object e2): bool → method DefaultEquality.equals(Object? e1, Object? e2): bool - changed:
method DefaultEquality.hash(Object e): int → method DefaultEquality.hash(Object? e): int - changed:
method DefaultEquality.isValidKey(Object o): bool → method DefaultEquality.isValidKey(Object? o): bool - changed:
method Equality.isValidKey(Object o): bool → method Equality.isValidKey(Object? o): bool - changed:
method IdentityEquality.equals(Object e1, Object e2): bool → method IdentityEquality.equals(E e1, E e2): bool - changed:
method IdentityEquality.hash(Object e): int → method IdentityEquality.hash(E e): int - changed:
method IdentityEquality.isValidKey(Object o): bool → method IdentityEquality.isValidKey(Object? o): bool - changed:
method IterableEquality.equals(Iterable<E> elements1, Iterable<E> elements2): bool → method IterableEquality.equals(Iterable<E>? elements1, Iterable<E>? elements2): bool - changed:
method IterableEquality.hash(Iterable<E> elements): int → method IterableEquality.hash(Iterable<E>? elements): int - changed:
method IterableEquality.isValidKey(Object o): bool → method IterableEquality.isValidKey(Object? o): bool - changed:
method ListEquality.equals(List<E> e1, List<E> e2): bool → method ListEquality.equals(List<E>? list1, List<E>? list2): bool - changed:
method ListEquality.hash(List<E> e): int → method ListEquality.hash(List<E>? list): int - changed:
method ListEquality.isValidKey(Object o): bool → method ListEquality.isValidKey(Object? o): bool - changed:
method MapEquality.equals(Map<K, V> e1, Map<K, V> e2): bool → method MapEquality.equals(Map<K, V>? map1, Map<K, V>? map2): bool - changed:
method MapEquality.hash(Map<K, V> map): int → method MapEquality.hash(Map<K, V>? map): int - changed:
method MapEquality.isValidKey(Object o): bool → method MapEquality.isValidKey(Object? o): bool - changed:
method MultiEquality.isValidKey(Object o): bool → method MultiEquality.isValidKey(Object? o): bool - changed:
method SetEquality.isValidKey(Object o): bool → method SetEquality.isValidKey(Object? o): bool - changed:
method UnorderedIterableEquality.isValidKey(Object o): bool → method UnorderedIterableEquality.isValidKey(Object? o): bool - added:
class CaseInsensitiveEquality implements Equality<String> - added:
class EqualityBy<E, F> implements Equality<E> - added:
ctor CaseInsensitiveEquality() - added:
ctor EqualityBy(F Function(E) comparisonKey, [Equality<F> inner = …]) - added:
method CaseInsensitiveEquality.equals(String string1, String string2): bool - added:
method CaseInsensitiveEquality.hash(String string): int - added:
method CaseInsensitiveEquality.isValidKey(Object? object): bool - added:
method EqualityBy.Function(E): F - added:
method EqualityBy.equals(E e1, E e2): bool - added:
method EqualityBy.hash(E e): int - added:
method EqualityBy.isValidKey(Object? o): bool
- changed:
class IterableZip extends IterableBase<List> → class IterableZip<T> extends IterableBase<List<T>> - changed:
ctor IterableZip(Iterable<Iterable> iterables) → ctor IterableZip(Iterable<Iterable<T>> iterables) - changed:
get IterableZip.iterator: Iterator<List> → get IterableZip.iterator: Iterator<List<T>>
- changed:
ctor HeapPriorityQueue([int comparison(E e1, E e2)]) → ctor HeapPriorityQueue([int Function(E, E)? comparison]) - changed:
field HeapPriorityQueue.comparison: final Comparator → field HeapPriorityQueue.comparison: final Comparator<E> - added:
ctor PriorityQueue([int Function(E, E)? comparison]) - added:
get HeapPriorityQueue.unorderedElements: Iterable<E> - added:
get PriorityQueue.unorderedElements: Iterable<E> - added:
method HeapPriorityQueue.toUnorderedList(): List<E> - added:
method PriorityQueue.toUnorderedList(): List<E>
- removed:
class UnmodifiableMapView<K, V> extends DelegatingMap<K, V> with UnmodifiableMapMixin<K, V> - removed:
ctor UnmodifiableMapView(Map<K, V> baseMap) - removed:
field CanonicalizedMap.Pair<K: final - changed:
class DelegatingList<E> extends DelegatingIterable<E> implements List<E> → class DelegatingList<E> extends _DelegatingIterableBase<E> implements List<E> - changed:
class DelegatingQueue<E> extends DelegatingIterable<E> implements Queue<E> → class DelegatingQueue<E> extends _DelegatingIterableBase<E> implements Queue<E> - changed:
class DelegatingSet<E> extends DelegatingIterable<E> implements Set<E> → class DelegatingSet<E> extends _DelegatingIterableBase<E> implements Set<E> - changed:
class NonGrowableListMixin<E>: abstract implements List<E> → class NonGrowableListMixin<E>: abstract mixin implements List<E> - changed:
class UnmodifiableMapMixin<K, V>: abstract implements Map<K, V> → class UnmodifiableMapMixin<K, V>: abstract mixin implements Map<K, V> - changed:
class UnmodifiableSetMixin<E>: abstract implements Set<E> → class UnmodifiableSetMixin<E>: abstract mixin implements Set<E> - changed:
ctor CanonicalizedMap(C canonicalize(K key), {bool isValidKey(K key)}) → ctor CanonicalizedMap(C Function(K key) canonicalize, {bool Function(K key)? isValidKey}) - changed:
ctor CanonicalizedMap.from(Map<K, V> other, C canonicalize(K key), {bool isValidKey(K key)}) → ctor CanonicalizedMap.from(Map<K, V> other, C Function(K key) canonicalize, {bool Function(K key)? isValidKey}) - changed:
ctor MapKeySet(Map<E, dynamic> base) → ctor MapKeySet(this._baseMap) - changed:
ctor MapValueSet(Map<K, V> base, K keyForValue(V value)) → ctor MapValueSet(this._baseMap, this._keyForValue) - changed:
ctor NonGrowableListView(List<E> listBase) → ctor NonGrowableListView(super.listBase) - changed:
ctor UnmodifiableSetView(Set<E> setBase) → ctor UnmodifiableSetView(super.setBase) - changed:
field CanonicalizedMap.V>>(): final → field CanonicalizedMap.V>>: final - changed:
method CanonicalizedMap.containsKey(Object key): bool → method CanonicalizedMap.containsKey(Object? key): bool - changed:
method CanonicalizedMap.containsValue(Object value): bool → method CanonicalizedMap.containsValue(Object? value): bool - changed:
method CanonicalizedMap.forEach(void f(K key, V value)): void → method CanonicalizedMap.forEach(void Function(K, V) f): void - changed:
method CanonicalizedMap.operator [](Object key): V → method CanonicalizedMap.operator [](Object? key): V? - changed:
method CanonicalizedMap.putIfAbsent(K key, V ifAbsent()): V → method CanonicalizedMap.putIfAbsent(K key, V Function() ifAbsent): V - changed:
method CanonicalizedMap.remove(Object key): V → method CanonicalizedMap.remove(Object? key): V? - changed:
method DelegatingList.fillRange(int start, int end, [E fillValue]): void → method DelegatingList.fillRange(int start, int end, [E? fillValue]): void - changed:
method DelegatingList.lastIndexOf(E element, [int start]): int → method DelegatingList.lastIndexOf(E element, [int? start]): int - changed:
method DelegatingList.remove(Object value): bool → method DelegatingList.remove(Object? value): bool - changed:
method DelegatingList.removeWhere(bool test(E element)): void → method DelegatingList.removeWhere(bool Function(E) test): void - changed:
method DelegatingList.retainWhere(bool test(E element)): void → method DelegatingList.retainWhere(bool Function(E) test): void - changed:
method DelegatingList.shuffle([Random random]): void → method DelegatingList.shuffle([math.Random? random]): void - changed:
method DelegatingList.sort([int compare(E a, E b)]): void → method DelegatingList.sort([int Function(E, E)? compare]): void - changed:
method DelegatingList.sublist(int start, [int end]): List<E> → method DelegatingList.sublist(int start, [int? end]): List<E> - changed:
method DelegatingMap.containsKey(Object key): bool → method DelegatingMap.containsKey(Object? key): bool - changed:
method DelegatingMap.containsValue(Object value): bool → method DelegatingMap.containsValue(Object? value): bool - changed:
method DelegatingMap.forEach(void f(K key, V value)): void → method DelegatingMap.forEach(void Function(K, V) f): void - changed:
method DelegatingMap.operator [](Object key): V → method DelegatingMap.operator [](Object? key): V? - changed:
method DelegatingMap.putIfAbsent(K key, V ifAbsent()): V → method DelegatingMap.putIfAbsent(K key, V Function() ifAbsent): V - changed:
method DelegatingMap.remove(Object key): V → method DelegatingMap.remove(Object? key): V? - changed:
method DelegatingQueue.remove(Object object): bool → method DelegatingQueue.remove(Object? object): bool - changed:
method DelegatingQueue.removeWhere(bool test(E element)): void → method DelegatingQueue.removeWhere(bool Function(E) test): void - changed:
method DelegatingQueue.retainWhere(bool test(E element)): void → method DelegatingQueue.retainWhere(bool Function(E) test): void - changed:
method DelegatingSet.containsAll(Iterable<Object> other): bool → method DelegatingSet.containsAll(Iterable<Object?> other): bool - changed:
method DelegatingSet.difference(Set<E> other): Set<E> → method DelegatingSet.difference(Set<Object?> other): Set<E> - changed:
method DelegatingSet.intersection(Set<Object> other): Set<E> → method DelegatingSet.intersection(Set<Object?> other): Set<E> - changed:
method DelegatingSet.lookup(E element): E → method DelegatingSet.lookup(Object? element): E? - changed:
method DelegatingSet.remove(Object value): bool → method DelegatingSet.remove(Object? value): bool - changed:
method DelegatingSet.removeAll(Iterable<Object> elements): void → method DelegatingSet.removeAll(Iterable<Object?> elements): void - changed:
method DelegatingSet.removeWhere(bool test(E element)): void → method DelegatingSet.removeWhere(bool Function(E) test): void - changed:
method DelegatingSet.retainAll(Iterable<Object> elements): void → method DelegatingSet.retainAll(Iterable<Object?> elements): void - changed:
method DelegatingSet.retainWhere(bool test(E element)): void → method DelegatingSet.retainWhere(bool Function(E) test): void - changed:
method MapKeySet.contains(Object element): bool → method MapKeySet.contains(Object? element): bool - changed:
method MapKeySet.containsAll(Iterable<Object> other): bool → method MapKeySet.containsAll(Iterable<Object?> other): bool - changed:
method MapKeySet.difference(Set<E> other): Set<E> → method MapKeySet.difference(Set<Object?> other): Set<E> - changed:
method MapKeySet.intersection(Set<Object> other): Set<E> → method MapKeySet.intersection(Set<Object?> other): Set<E> - changed:
method MapKeySet.lookup(E element): E → method MapKeySet.lookup(Object? element): E - changed:
method MapValueSet.contains(Object element): bool → method MapValueSet.contains(Object? element): bool - changed:
method MapValueSet.containsAll(Iterable<Object> other): bool → method MapValueSet.containsAll(Iterable<Object?> other): bool - changed:
method MapValueSet.difference(Set<V> other): Set<V> → method MapValueSet.difference(Set<Object?> other): Set<V> - changed:
method MapValueSet.intersection(Set<Object> other): Set<V> → method MapValueSet.intersection(Set<Object?> other): Set<V> - changed:
method MapValueSet.lookup(V element): V → method MapValueSet.lookup(Object? element): V? - changed:
method MapValueSet.remove(Object value): bool → method MapValueSet.remove(Object? element): bool - changed:
method MapValueSet.removeAll(Iterable<Object> elements): void → method MapValueSet.removeAll(Iterable<Object?> elements): void - changed:
method MapValueSet.removeWhere(bool test(V element)): void → method MapValueSet.removeWhere(bool Function(V) test): void - changed:
method MapValueSet.retainAll(Iterable<Object> elements): void → method MapValueSet.retainAll(Iterable<Object?> elements): void - changed:
method MapValueSet.retainWhere(bool test(V element)): void → method MapValueSet.retainWhere(bool Function(V) test): void - changed:
method NonGrowableListMixin.remove(Object value): bool → method NonGrowableListMixin.remove(Object? value): bool - changed:
method NonGrowableListMixin.removeWhere(bool test(E element)): void → method NonGrowableListMixin.removeWhere(bool Function(E) test): void - changed:
method NonGrowableListMixin.retainWhere(bool test(E element)): void → method NonGrowableListMixin.retainWhere(bool Function(E) test): void - changed:
method UnmodifiableMapMixin.putIfAbsent(K key, V ifAbsent()): V → method UnmodifiableMapMixin.putIfAbsent(K key, V Function() ifAbsent): V - changed:
method UnmodifiableMapMixin.remove(K key): V → method UnmodifiableMapMixin.remove(Object? key): V - changed:
method UnmodifiableSetMixin.remove(Object value): bool → method UnmodifiableSetMixin.remove(Object? value): bool - changed:
method UnmodifiableSetMixin.removeWhere(bool test(E element)): void → method UnmodifiableSetMixin.removeWhere(bool Function(E) test): void - changed:
method UnmodifiableSetMixin.retainWhere(bool test(E element)): void → method UnmodifiableSetMixin.retainWhere(bool Function(E) test): void - added:
ctor CanonicalizedMap.fromEntries( Iterable<MapEntry<K, V>> entries, C Function(K key) canonicalize, {bool Function(K key)? isValidKey}) - added:
ctor UnmodifiableSetView.empty() - added:
field CanonicalizedMap.MapEntry<K: final - added:
get CanonicalizedMap.entries: Iterable<MapEntry<K, V>> - added:
get DelegatingMap.entries: Iterable<MapEntry<K, V>> - added:
method CanonicalizedMap.Function(K): C - added:
method CanonicalizedMap.Function(K): bool - added:
method CanonicalizedMap.addEntries(Iterable<MapEntry<K, V>> entries): void - added:
method CanonicalizedMap.cast<K2, V2>(): Map<K2, V2> - added:
method CanonicalizedMap.copy(): CanonicalizedMap<C, K, V> - added:
method CanonicalizedMap.map<K2, V2>(MapEntry<K2, V2> Function(K, V) transform): Map<K2, V2> - added:
method CanonicalizedMap.removeWhere(bool Function(K key, V value) test): void - added:
method CanonicalizedMap.retype<K2, V2>(): Map<K2, V2> - added:
method CanonicalizedMap.toMap(): Map<K, V> - added:
method CanonicalizedMap.toMapOfCanonicalKeys(): Map<C, V> - added:
method CanonicalizedMap.update(K key, V Function(V) update, {V Function()? ifAbsent}): V - added:
method CanonicalizedMap.updateAll(V Function(K key, V value) update): void - added:
method DelegatingList.cast<T>(): List<T> - added:
method DelegatingList.indexWhere(bool Function(E) test, [int start = …]): int - added:
method DelegatingList.lastIndexWhere(bool Function(E) test, [int? start]): int - added:
method DelegatingList.operator +(List<E> other): List<E> - added:
method DelegatingList.retype<T>(): List<T> - added:
method DelegatingMap.addEntries(Iterable<MapEntry<K, V>> entries): void - added:
method DelegatingMap.cast<K2, V2>(): Map<K2, V2> - added:
method DelegatingMap.map<K2, V2>(MapEntry<K2, V2> Function(K, V) transform): Map<K2, V2> - added:
method DelegatingMap.removeWhere(bool Function(K, V) test): void - added:
method DelegatingMap.retype<K2, V2>(): Map<K2, V2> - added:
method DelegatingMap.update(K key, V Function(V) update, {V Function()? ifAbsent}): V - added:
method DelegatingMap.updateAll(V Function(K, V) update): void - added:
method DelegatingQueue.cast<T>(): Queue<T> - added:
method DelegatingQueue.retype<T>(): Queue<T> - added:
method DelegatingSet.cast<T>(): Set<T> - added:
method DelegatingSet.retype<T>(): Set<T> - added:
method MapKeySet.cast<T>(): Set<T> - added:
method MapKeySet.retype<T>(): Set<T> - added:
method MapValueSet.Function(V): K - added:
method MapValueSet.cast<T>(): Set<T> - added:
method MapValueSet.retype<T>(): Set<T> - added:
set DelegatingList.first(E value) - added:
set DelegatingList.last(E value) - added:
set UnmodifiableMapMixin.first(_) - added:
set UnmodifiableMapMixin.last(_) - added:
static method DelegatingIterable.typed<E>(Iterable base): Iterable<E> - added:
static method DelegatingList.typed<E>(List base): List<E> - added:
static method DelegatingMap.typed<K, V>(Map base): Map<K, V> - added:
static method DelegatingQueue.typed<E>(Queue base): Queue<E> - added:
static method DelegatingSet.typed<E>(Set base): Set<E>