Update with Dart 2.0 core library unimplemented implementations (#406)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 157d52b..7faf3b8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
#### 0.27.0-dev
+ * BREAKING CHANGE: all classes that implement `Iterable`, `List`, `Map`,
+ `Queue`, `Set`, or `Timer` 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`, and `AvlTreeSet`.
* Fix: Use FIFO ordering in `FakeAsync`. PR
[#265](https://github.com/google/quiver-dart/pull/265)
diff --git a/lib/src/collection/bimap.dart b/lib/src/collection/bimap.dart
index ece246b..8ff32c7 100644
--- a/lib/src/collection/bimap.dart
+++ b/lib/src/collection/bimap.dart
@@ -70,6 +70,31 @@
int get length => _map.length;
Iterable<V> get values => _inverse.keys;
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void addEntries(Iterable<Object> entries) {
+ // Change Iterable<Object> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("addEntries");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> cast<K2, V2>() {
+ throw new UnimplementedError("cast");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_getter
+ Iterable<Null> get entries {
+ // Change Iterable<Null> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("entries");
+ }
+
BiMap<V, K> get inverse {
if (_cached == null) {
_cached = new HashBiMap._from(_inverse, _map);
@@ -77,6 +102,15 @@
return _cached;
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> map<K2, V2>(Object transform(K key, V value)) {
+ // Change Object to MapEntry<K2, V2> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("map");
+ }
+
V putIfAbsent(K key, V ifAbsent()) {
var value = _map[key];
if (value != null) return value;
@@ -89,6 +123,34 @@
return _map.remove(key);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void removeWhere(bool test(K key, V value)) {
+ throw new UnimplementedError("removeWhere");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> retype<K2, V2>() {
+ throw new UnimplementedError("retype");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ V update(K key, V update(V value), {V ifAbsent()}) {
+ throw new UnimplementedError("update");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void updateAll(V update(K key, V value)) {
+ throw new UnimplementedError("updateAll");
+ }
+
void clear() {
_map.clear();
_inverse.clear();
diff --git a/lib/src/collection/delegates/iterable.dart b/lib/src/collection/delegates/iterable.dart
index 3eb508d..5fc1e8b 100644
--- a/lib/src/collection/delegates/iterable.dart
+++ b/lib/src/collection/delegates/iterable.dart
@@ -29,6 +29,13 @@
bool any(bool test(E element)) => delegate.any(test);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
bool contains(Object element) => delegate.contains(element);
E elementAt(int index) => delegate.elementAt(index);
@@ -45,6 +52,13 @@
T fold<T>(T initialValue, T combine(T previousValue, E element)) =>
delegate.fold(initialValue, combine);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<E> followedBy(Iterable<E> other) {
+ throw new UnimplementedError("followedBy");
+ }
+
void forEach(void f(E element)) => delegate.forEach(f);
bool get isEmpty => delegate.isEmpty;
@@ -66,9 +80,19 @@
E reduce(E combine(E value, E element)) => delegate.reduce(combine);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
E get single => delegate.single;
- E singleWhere(bool test(E element)) => delegate.singleWhere(test);
+ E singleWhere(bool test(E element), {E orElse()}) {
+ if (orElse != null) throw new UnimplementedError("singleWhere:orElse");
+ return delegate.singleWhere(test);
+ }
Iterable<E> skip(int n) => delegate.skip(n);
@@ -83,4 +107,11 @@
Set<E> toSet() => delegate.toSet();
Iterable<E> where(bool test(E element)) => delegate.where(test);
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<T> whereType<T>() {
+ throw new UnimplementedError("whereType");
+ }
}
diff --git a/lib/src/collection/delegates/list.dart b/lib/src/collection/delegates/list.dart
index 864ff86..38fdae7 100644
--- a/lib/src/collection/delegates/list.dart
+++ b/lib/src/collection/delegates/list.dart
@@ -34,29 +34,80 @@
delegate[index] = value;
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ List<E> operator +(List<E> other) {
+ throw new UnimplementedError("+");
+ }
+
void add(E value) => delegate.add(value);
void addAll(Iterable<E> iterable) => delegate.addAll(iterable);
Map<int, E> asMap() => delegate.asMap();
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ DelegatingList<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ DelegatingList<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
void clear() => delegate.clear();
void fillRange(int start, int end, [E fillValue]) =>
delegate.fillRange(start, end, fillValue);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_setter
+ void set first(E element) {
+ if (this.isEmpty) throw new RangeError.index(0, this);
+ this[0] = element;
+ }
+
Iterable<E> getRange(int start, int end) => delegate.getRange(start, end);
int indexOf(E element, [int start = 0]) => delegate.indexOf(element, start);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ int indexWhere(bool test(E element), [int start = 0]) {
+ throw new UnimplementedError("indexWhere");
+ }
+
void insert(int index, E element) => delegate.insert(index, element);
void insertAll(int index, Iterable<E> iterable) =>
delegate.insertAll(index, iterable);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_setter
+ void set last(E element) {
+ if (this.isEmpty) throw new RangeError.index(0, this);
+ this[this.length - 1] = element;
+ }
+
int lastIndexOf(E element, [int start]) =>
delegate.lastIndexOf(element, start);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ int lastIndexWhere(bool test(E element), [int start]) {
+ throw new UnimplementedError("lastIndexWhere");
+ }
+
void set length(int newLength) {
delegate.length = newLength;
}
diff --git a/lib/src/collection/delegates/map.dart b/lib/src/collection/delegates/map.dart
index 1e66c59..8bf04a1 100644
--- a/lib/src/collection/delegates/map.dart
+++ b/lib/src/collection/delegates/map.dart
@@ -35,12 +35,37 @@
void addAll(Map<K, V> other) => delegate.addAll(other);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void addEntries(Iterable<Object> entries) {
+ // Change Iterable<Object> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("addEntries");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> cast<K2, V2>() {
+ throw new UnimplementedError("cast");
+ }
+
void clear() => delegate.clear();
bool containsKey(Object key) => delegate.containsKey(key);
bool containsValue(Object value) => delegate.containsValue(value);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_getter
+ Iterable<Null> get entries {
+ // Change Iterable<Null> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("entries");
+ }
+
void forEach(void f(K key, V value)) => delegate.forEach(f);
bool get isEmpty => delegate.isEmpty;
@@ -51,9 +76,46 @@
int get length => delegate.length;
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> map<K2, V2>(Object transform(K key, V value)) {
+ // Change Object to MapEntry<K2, V2> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("map");
+ }
+
V putIfAbsent(K key, V ifAbsent()) => delegate.putIfAbsent(key, ifAbsent);
V remove(Object key) => delegate.remove(key);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void removeWhere(bool test(K key, V value)) {
+ throw new UnimplementedError("removeWhere");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> retype<K2, V2>() {
+ throw new UnimplementedError("retype");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ V update(K key, V update(V value), {V ifAbsent()}) {
+ throw new UnimplementedError("update");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void updateAll(V update(K key, V value)) {
+ throw new UnimplementedError("updateAll");
+ }
+
Iterable<V> get values => delegate.values;
}
diff --git a/lib/src/collection/delegates/queue.dart b/lib/src/collection/delegates/queue.dart
index 58688f7..ddf1058 100644
--- a/lib/src/collection/delegates/queue.dart
+++ b/lib/src/collection/delegates/queue.dart
@@ -36,6 +36,13 @@
void addLast(E value) => delegate.addLast(value);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ DelegatingQueue<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
void clear() => delegate.clear();
bool remove(Object object) => delegate.remove(object);
@@ -47,4 +54,11 @@
void removeWhere(bool test(E element)) => delegate.removeWhere(test);
void retainWhere(bool test(E element)) => delegate.retainWhere(test);
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ DelegatingQueue<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
}
diff --git a/lib/src/collection/delegates/set.dart b/lib/src/collection/delegates/set.dart
index 9362e80..08fb4b8 100644
--- a/lib/src/collection/delegates/set.dart
+++ b/lib/src/collection/delegates/set.dart
@@ -32,6 +32,20 @@
void addAll(Iterable<E> elements) => delegate.addAll(elements);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ DelegatingSet<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ DelegatingSet<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
void clear() => delegate.clear();
bool containsAll(Iterable<Object> other) => delegate.containsAll(other);
diff --git a/lib/src/collection/lru_map.dart b/lib/src/collection/lru_map.dart
index 237d098..a4ec5a7 100644
--- a/lib/src/collection/lru_map.dart
+++ b/lib/src/collection/lru_map.dart
@@ -80,6 +80,22 @@
void addAll(Map<K, V> other) => other.forEach((k, v) => this[k] = v);
@override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void addEntries(Iterable<Object> entries) {
+ // Change Iterable<Object> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("addEntries");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ LinkedLruHashMap<K2, V2> cast<K2, V2>() {
+ throw new UnimplementedError("cast");
+ }
+
+ @override
void clear() {
_entries.clear();
_head = _tail = null;
@@ -91,6 +107,15 @@
@override
bool containsValue(Object value) => values.contains(value);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_getter
+ Iterable<Null> get entries {
+ // Change Iterable<Null> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("entries");
+ }
+
/// Applies [action] to each key-value pair of the map in order of MRU to
/// LRU.
///
@@ -132,6 +157,15 @@
Iterable<V> get values => _iterable().map((e) => e.value);
@override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> map<K2, V2>(Object transform(K key, V value)) {
+ // Change Object to MapEntry<K2, V2> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("map");
+ }
+
+ @override
int get maximumSize => _maximumSize;
@override
@@ -213,8 +247,36 @@
}
@override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void removeWhere(bool test(K key, V value)) {
+ throw new UnimplementedError("removeWhere");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ LinkedLruHashMap<K2, V2> retype<K2, V2>() {
+ throw new UnimplementedError("retype");
+ }
+
+ @override
String toString() => Maps.mapToString(this);
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ V update(K key, V update(V value), {V ifAbsent()}) {
+ throw new UnimplementedError("update");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void updateAll(V update(K key, V value)) {
+ throw new UnimplementedError("updateAll");
+ }
+
/// Moves [entry] to the MRU position, shifting the linked list if necessary.
void _promoteEntry(_LinkedEntry<K, V> entry) {
// If this entry is already in the MRU position we are done.
diff --git a/lib/src/collection/multimap.dart b/lib/src/collection/multimap.dart
index 4046a49..3b6271f 100644
--- a/lib/src/collection/multimap.dart
+++ b/lib/src/collection/multimap.dart
@@ -293,6 +293,68 @@
int get length => _multimap.length;
C remove(Object key) => _multimap.removeAll(key);
Iterable<C> get values => _multimap._groupedValues;
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> cast<K2, V2>() {
+ throw new UnimplementedError("cast");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> retype<K2, V2>() {
+ throw new UnimplementedError("retype");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_getter
+ Iterable<Null> get entries {
+ // Change Iterable<Null> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("entries");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void addEntries(Iterable<Object> entries) {
+ // Change Iterable<Object> to Iterable<MapEntry<K, V>> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("addEntries");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Map<K2, V2> map<K2, V2>(Object transform(K key, C value)) {
+ // Change Object to MapEntry<K2, V2> when
+ // the MapEntry class has been added.
+ throw new UnimplementedError("map");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ V update(K key, C update(C value), {C ifAbsent()}) {
+ throw new UnimplementedError("update");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void updateAll(C update(K key, C value)) {
+ throw new UnimplementedError("updateAll");
+ }
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ void removeWhere(bool test(K key, C value)) {
+ throw new UnimplementedError("removeWhere");
+ }
}
/// Iterable wrapper that syncs to an underlying map.
@@ -325,6 +387,13 @@
return _delegate.any(test);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
bool contains(Object element) {
_syncDelegate();
return _delegate.contains(element);
@@ -360,6 +429,13 @@
return _delegate.fold(initialValue, combine);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<V> followedBy(Iterable<V> other) {
+ throw new UnimplementedError("followedBy");
+ }
+
void forEach(void f(V element)) {
_syncDelegate();
_delegate.forEach(f);
@@ -410,12 +486,20 @@
return _delegate.reduce(combine);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
V get single {
_syncDelegate();
return _delegate.single;
}
- V singleWhere(bool test(V element)) {
+ V singleWhere(bool test(V element), {V orElse()}) {
+ if (orElse != null) throw new UnimplementedError("singleWhere:orElse");
_syncDelegate();
return _delegate.singleWhere(test);
}
@@ -459,6 +543,13 @@
_syncDelegate();
return _delegate.where(test);
}
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Iterable<T> whereType<T>() {
+ throw new UnimplementedError("whereType");
+ }
}
class _WrappedList<K, V> extends _WrappedIterable<K, V, List<V>>
@@ -473,6 +564,13 @@
_delegate[index] = value;
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ List<V> operator +(List<V> other) {
+ throw new UnimplementedError("+");
+ }
+
void add(V value) {
_syncDelegate();
var wasEmpty = _delegate.isEmpty;
@@ -492,6 +590,13 @@
return _delegate.asMap();
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ List<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
void clear() {
_syncDelegate();
_delegate.clear();
@@ -503,6 +608,14 @@
_delegate.fillRange(start, end, fillValue);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_setter
+ void set first(V value) {
+ if (this.isEmpty) throw new RangeError.index(0, this);
+ this[0] = value;
+ }
+
Iterable<V> getRange(int start, int end) {
_syncDelegate();
return _delegate.getRange(start, end);
@@ -513,6 +626,13 @@
return _delegate.indexOf(element, start);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ int indexWhere(bool test(V element), [int start = 0]) {
+ throw new UnimplementedError("indexWhere");
+ }
+
void insert(int index, V element) {
_syncDelegate();
var wasEmpty = _delegate.isEmpty;
@@ -527,11 +647,26 @@
if (wasEmpty) _addToMap();
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_setter
+ void set last(V value) {
+ if (this.isEmpty) throw new RangeError.index(0, this);
+ this[this.length - 1] = value;
+ }
+
int lastIndexOf(V element, [int start]) {
_syncDelegate();
return _delegate.lastIndexOf(element, start);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ int lastIndexWhere(bool test(V element), [int start]) {
+ throw new UnimplementedError("lastIndexWhere");
+ }
+
void set length(int newLength) {
_syncDelegate();
var wasEmpty = _delegate.isEmpty;
@@ -584,6 +719,13 @@
if (_delegate.isEmpty) _map.remove(_key);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ List<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
Iterable<V> get reversed {
_syncDelegate();
return _delegate.reversed;
@@ -634,6 +776,13 @@
if (wasEmpty) _addToMap();
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Set<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
void clear() {
_syncDelegate();
_delegate.clear();
@@ -691,6 +840,13 @@
if (_delegate.isEmpty) _map.remove(_key);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Set<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
Set<V> union(Set<V> other) {
_syncDelegate();
return _delegate.union(other);
diff --git a/lib/src/collection/treeset.dart b/lib/src/collection/treeset.dart
index 6375a21..6181865 100644
--- a/lib/src/collection/treeset.dart
+++ b/lib/src/collection/treeset.dart
@@ -51,6 +51,14 @@
/// if missing. See [TreeSearch].
V nearest(V object, {TreeSearch nearestOption: TreeSearch.NEAREST});
+ @override
+ // ignore: override_on_non_overriding_method
+ Set<T> cast<T>();
+
+ @override
+ // ignore: override_on_non_overriding_method
+ Set<T> retype<T>();
+
// TODO: toString or not toString, that is the question.
}
@@ -376,6 +384,13 @@
return modified;
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ AvlTreeSet<T> cast<T>() {
+ throw new UnimplementedError("cast");
+ }
+
void clear() {
_length = 0;
_root = null;
@@ -599,6 +614,13 @@
addAll(chosen);
}
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_method
+ Set<T> retype<T>() {
+ throw new UnimplementedError("retype");
+ }
+
/// See [Set.removeWhere]
void removeWhere(bool test(V element)) {
List<V> damned = [];
diff --git a/lib/testing/src/async/fake_async.dart b/lib/testing/src/async/fake_async.dart
index afa6dda..c25aad8 100644
--- a/lib/testing/src/async/fake_async.dart
+++ b/lib/testing/src/async/fake_async.dart
@@ -285,4 +285,11 @@
bool get isActive => _time._hasTimer(this);
cancel() => _time._cancelTimer(this);
+
+ @override
+ // TODO: Dart 2.0 requires this method to be implemented.
+ // ignore: override_on_non_overriding_getter
+ int get tick {
+ throw new UnimplementedError("tick");
+ }
}