- Updated Dart SDK constraint to >=2.0.0-dev.61 < 3.0.0.
- BREAKING CHANGE: This version requires Dart SDK 2.0.0-dev.61 or later.
- BREAKING CHANGE: StreamBuffer has been changed from implementing
StreamConsumer<T>
toStreamConsumer<List<T>>
. Users ofStreamBuffer<List<T>>
can simply change declarations toStreamBuffer<T>
. In cases where the generic type is already not a list type, inputs to the list may need to be wrapped in a list.
- BREAKING CHANGE: This version requires Dart SDK 2.0.0-dev.30 or later. Bugfixes will be backported to the 0.28.x series for Dart 1 users.
- New: BiMap now includes a real implementation of
addEntries
,get entries
,map
,removeWhere
,update
, andupdateAll
. - New: DelegatingIterable now includes a real implementation of
followedBy
, and accepts theorElse
parameter onsingleWhere
. - New: DelegatingList now includes real implementations of
operator +
,indexWhere
, andlastIndexWhere
. - New: LruMap now includes a real implementation of
addEntries
,get entries
,removeWhere
,update
, andupdateAll
. - New: The map returned by
Multimap.asMap()
now includes real implementations ofget entries
andremoveWhere
. This class also has "real" implementations ofaddEntries
,map
,update
, andupdateAll
, which just throw anUnsupportedError
, as inserts and updates are not allowed on map views. - New: The list keys of
ListMultimap
now include real implementations ofoperator +
,indexWhere
, andlastIndexWhere
. - New: The iterable keys of
ListMultimap
andSetMultimap
now include a real implementation offollowedBy
, and accept theorElse
parameter onsingleWhere
.
- BREAKING CHANGE: Deleted
createTimer
andcreateTimerPeriodic
, which were deprecated in 0.26.0. - BREAKING CHANGE: Deleted
reverse
, which was deprecated in 0.25.0. - BREAKING CHANGE: Deleted
FutureGroup
, which was deprecated in 0.25.0. - BREAKING CHANGE:
InfiniteIterable.singleWhere
now throwsUnsupportedError
.
- Fix: Eliminate a bug where
LruMap
linkage is incorrectly preserved when items are removed.
- Remove use of
Maps.mapToString
inLruMap
. - Add
@visibleForTesting
annotation inAvlTreeSet
.
- BREAKING CHANGE: The signature of
MultiMap
'supdate
stub has changed fromV update(K key, C update(C value), {C ifAbsent()})
toC update(K key, C update(C value), {C ifAbsent()})
.
- BREAKING CHANGE: all classes that implement
Iterable
,List
,Map
,Queue
,Set
, orTimer
now implement stubs of upcoming Dart 2.0 methods. Any class that reimplements these classes also needs new method implementations. The classes with these breaking changes include:HashBiMap
,DelegatingIterable
,DelegatingList
,DelegatingMap
,DelegatingQueue
,DelegatingSet
,LinkedLruHashMap
,TreeSet
, andAvlTreeSet
. - Fix: Use FIFO ordering in
FakeAsync
. PR #265
- Fix: re-adding the most-recently-used entry to a
LinkedLruHashMap
previously introduced a loop in the internal linked list. - Fix: when removing an entry in the middle of the
LinkedLruHashMap
, the recency list was not correctly re-linked.
- Fix: when removing the last item,
LinkedLruHashMap
was put into a state such that the next cache eviction could cause a null-pointer exception. Issue #385. - Fix: strong mode fix when calling
merge
on the empty set of iterables. PR #384.
- BREAKING CHANGE: eliminated deprecated
flip
. Replaced byreverse
in 0.25.0. - BREAKING CHANGE: eliminated deprecated
repeat
. Deprecated in 0.25.0. Callers should useString
's*
operator. - BREAKING CHANGE:
collect
,concat
,doWhileAsync
,enumerate
,extent
,forEachAsync
,max
,merge
,min
,reduceAsync
, andzip
are now type parameterized. Depending on the inferred value of each type parameter, the return type of each function may change in existing code. - BREAKING CHANGE:
Optional
's==
operator now takes into accountT
, the type of the value. This changes, e.g.Optional<int>.absent()
to no longer be equal toOptional<String>.absent()
. - BREAKING CHANGE: stronger generics added in
Cache
andMapCache
. - Deprecated:
reverse
in thestrings
library. No replacement is provided. - Deprecated:
createTimer
,createTimerPeriodic
in theasync
library. These were originally written to support FakeTimer, which is superseded by FakeAsync. - New: Added
isLeapYear
,daysInMonth
,clampDayOfMonth
APIs in thetime
library. - Multimap is now backed by a LinkedHashMap rather than HashMap.
- Multimap: added
contains
to know if an association key/value exists.
- BREAKING CHANGE: minimum SDK constraint increased to 1.21.0. This allows use of async-await and generic function in Quiver.
- BREAKING CHANGE: eliminated deprecated
FakeTimer
. - BREAKING CHANGE:
StreamBuffer<T>
now implementsStreamConsumer<T>
as opposed toStreamConsumer<T|List<T>>
. - Deprecated:
FutureGroup
. Use the replacement inpackage:async
which requires aclose()
call to trigger auto-completion when the count of pending tasks drops to 0. - Deprecated:
repeat
in thestrings
library. Use the*
operator on the String class. - Deprecated: in the strings library,
flip
has been renamedreverse
.flip
is deprecated and will be removed in the next release. - Iterables:
enumerate
is now generic. - Collection: added
indexOf
.
- BREAKING CHANGE: eliminated deprecated
nullToEmpty
,emptyToNull
. - Fix: Strong mode: As of Dart SDK 1.21.0,
Set.difference
takes aSet<Object>
parameter.
- Strings:
nullToEmpty
,emptyToNull
deprecated. Removal in 0.24.0. - BREAKING CHANGE: eliminated deprecated multimap
toMap
. - BREAKING CHANGE: eliminated deprecated
pad*
,trim*
string functions.
- BREAKING CHANGE:
streams
andasync
libraries have been merged into oneasync
library - BREAKING CHANGE: Pre-1.8.0 SDKs are no longer supported.
- Quiver is now strong mode compliant
- New:
Optional
now implementsIterable
and its methods are generic (using temporary syntax) - New:
isNotEmpty
andisDigit
instrings.dart
- New:
Multimap.fromIterable
- Fix: Change
TreeSearch
fromclass
toenum
. - Fix:
fake_async.dart
timers are now active while executing the callback
- Add stats reporting for fake async tests. You can query the number of
pending microtasks and timers via
microtaskCount
,periodicTimerCount
,nonPeriodicTimerCount
.
- Switch from unittest to test.
- Bugfix: fixed return type on some methods (e.g.
where
ofIterable
s returned by Multimap.
- Bugfix: fix drifting times in
Metronome
. - Add
LruMap
to quiver/collection. - Un-deprecate Glob; feedback was that package:glob was not a suitable replacement in many cases. Key reasons: dependency on dart:io and significantly poorer performance.
- Add optional start param to
Glob.allMatches()
to match superclass method signature. - Add optional start param to
Pattern
returned bymatchesAny()
to match superclass method signature. - Deprecate Glob. Use package:glob. Will be removed in 0.22.0.
- Travis CI integration support added.
- Document that the deprecated functions
padLeft
,padRight
,trimLeft
,trimRight
will be removed in 0.22.0.
- Fix hanging
FakeAsync
unit test.
- Replace
equalsTester
dependency onunittest
with finer-grained dependency onmatcher
. path
is now a dev dependency.
- Multimap:
toMap()
is deprecated and replaced withasMap()
.toMap()
will be removed in v0.22.0. - Cleanup method signatures that were inconsistent with the core library.
- Added
areEqualityGroups
matcher for testingoperator==
andhashCode
. - CONTRIBUTING.md added.
- Multimap: better
toString()
on returned collections. - Multimap: Bugfix: support edits on empty value collections.
- Multimap: Added missing return statment in
fold
. - Added isEmpty() in
strings
. - Added max SDK constraint <2.0.0
- Minor updates to README.md.
- CHANGELOG.md added
- Corrected version constraint suggestion in README.md.