Fix places awaiting void, for dart 2.
Looks like cache.invalidate does do some asynchronous stuff
(`splitter.close()`, but notably not `_stale.close()` which returns void).
Return the future for that stuff without changing its order of
operations.
Also some place awaiting `expect()` which appeared to be intended to be
awaiting `cancel()`, switching those still passes tests.
diff --git a/lib/src/async_cache.dart b/lib/src/async_cache.dart
index 8c25267..c2d7c01 100644
--- a/lib/src/async_cache.dart
+++ b/lib/src/async_cache.dart
@@ -89,12 +89,13 @@
}
/// Removes any cached value.
- void invalidate() {
+ Future invalidate() {
_cachedValueFuture = null;
- _cachedStreamSplitter?.close();
+ Future invalidate = _cachedStreamSplitter?.close();
_cachedStreamSplitter = null;
_stale?.cancel();
_stale = null;
+ return invalidate;
}
void _startStaleTimer() {
diff --git a/test/async_cache_test.dart b/test/async_cache_test.dart
index 747835b..0a5e0f0 100644
--- a/test/async_cache_test.dart
+++ b/test/async_cache_test.dart
@@ -32,7 +32,7 @@
var completer = new Completer<String>();
expect(cache.fetch(() => completer.future), completion('Expensive'));
expect(cache.fetch(expectAsync0(() {}, count: 0)), completion('Expensive'));
- await completer.complete('Expensive');
+ completer.complete('Expensive');
});
test('should fetch via a callback again when cache expires', () {
diff --git a/test/stream_queue_test.dart b/test/stream_queue_test.dart
index 32cc505..37dedb9 100644
--- a/test/stream_queue_test.dart
+++ b/test/stream_queue_test.dart
@@ -517,8 +517,8 @@
expect(await events.next, 1);
expect(controller.hasListener, isTrue);
- events.cancel(immediate: true);
- await expect(controller.hasListener, isFalse);
+ await events.cancel(immediate: true);
+ expect(controller.hasListener, isFalse);
});
test("cancels the underlying subscription when called before any event",