{"action":"created","issue":{"url":"https://api.github.com/repos/google/quiver-dart/issues/285","repository_url":"https://api.github.com/repos/google/quiver-dart","labels_url":"https://api.github.com/repos/google/quiver-dart/issues/285/labels{/name}","comments_url":"https://api.github.com/repos/google/quiver-dart/issues/285/comments","events_url":"https://api.github.com/repos/google/quiver-dart/issues/285/events","html_url":"https://github.com/google/quiver-dart/issues/285","id":141348980,"number":285,"title":"Strong-mode analysis errors prevent DDC compilation","user":{"login":"ochafik","id":273860,"avatar_url":"https://avatars.githubusercontent.com/u/273860?v=3","gravatar_id":"","url":"https://api.github.com/users/ochafik","html_url":"https://github.com/ochafik","followers_url":"https://api.github.com/users/ochafik/followers","following_url":"https://api.github.com/users/ochafik/following{/other_user}","gists_url":"https://api.github.com/users/ochafik/gists{/gist_id}","starred_url":"https://api.github.com/users/ochafik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ochafik/subscriptions","organizations_url":"https://api.github.com/users/ochafik/orgs","repos_url":"https://api.github.com/users/ochafik/repos","events_url":"https://api.github.com/users/ochafik/events{/privacy}","received_events_url":"https://api.github.com/users/ochafik/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-03-16T17:42:03Z","updated_at":"2016-03-22T07:10:27Z","closed_at":null,"body":"The following list of [strong-mode](https://github.com/dart-lang/dev_compiler/blob/master/STRONG_MODE.md) errors prevent code that depend on `package:quiver` from being compiled with [DDC](https://github.com/dart-lang/dev_compiler).\r\n\r\n(ran ```dartanalyzer --strong `find lib -name '*.dart'` | sort -u``` with SDK version `1.16.0-dev.0.0`)\r\n\r\n```\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.expand (((E) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<E>.expand (<T>((E) → Iterable<T>) → Iterable<T>). (./lib/src/collection/delegates/list.dart, line 29, col 34)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.expand (((E) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<E>.expand (<T>((E) → Iterable<T>) → Iterable<T>). (./lib/src/collection/delegates/queue.dart, line 29, col 35)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.expand (((E) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<E>.expand (<T>((E) → Iterable<T>) → Iterable<T>). (./lib/src/collection/delegates/set.dart, line 29, col 33)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.fold ((dynamic, (dynamic, E) → dynamic) → dynamic) is not a subtype of Iterable<E>.fold (<T>(T, (T, E) → T) → T). (./lib/src/collection/delegates/list.dart, line 29, col 34)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.fold ((dynamic, (dynamic, E) → dynamic) → dynamic) is not a subtype of Iterable<E>.fold (<T>(T, (T, E) → T) → T). (./lib/src/collection/delegates/queue.dart, line 29, col 35)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.fold ((dynamic, (dynamic, E) → dynamic) → dynamic) is not a subtype of Iterable<E>.fold (<T>(T, (T, E) → T) → T). (./lib/src/collection/delegates/set.dart, line 29, col 33)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.map (((E) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<E>.map (<T>((E) → T) → Iterable<T>). (./lib/src/collection/delegates/list.dart, line 29, col 34)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.map (((E) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<E>.map (<T>((E) → T) → Iterable<T>). (./lib/src/collection/delegates/queue.dart, line 29, col 35)\r\n[error] Base class introduces an invalid override. The type of DelegatingIterable.map (((E) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<E>.map (<T>((E) → T) → Iterable<T>). (./lib/src/collection/delegates/set.dart, line 29, col 33)\r\n[error] Base class introduces an invalid override. The type of _WrappedIterable.expand (((V) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<V>.expand (<T>((V) → Iterable<T>) → Iterable<T>). (./lib/src/collection/multimap.dart, line 531, col 26)\r\n[error] Base class introduces an invalid override. The type of _WrappedIterable.expand (((V) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<V>.expand (<T>((V) → Iterable<T>) → Iterable<T>). (./lib/src/collection/multimap.dart, line 684, col 25)\r\n[error] Base class introduces an invalid override. The type of _WrappedIterable.fold ((dynamic, (dynamic, V) → dynamic) → dynamic) is not a subtype of Iterable<V>.fold (<T>(T, (T, V) → T) → T). (./lib/src/collection/multimap.dart, line 531, col 26)\r\n[error] Base class introduces an invalid override. The type of _WrappedIterable.fold ((dynamic, (dynamic, V) → dynamic) → dynamic) is not a subtype of Iterable<V>.fold (<T>(T, (T, V) → T) → T). (./lib/src/collection/multimap.dart, line 684, col 25)\r\n[error] Base class introduces an invalid override. The type of _WrappedIterable.map (((V) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<V>.map (<T>((V) → T) → Iterable<T>). (./lib/src/collection/multimap.dart, line 531, col 26)\r\n[error] Base class introduces an invalid override. The type of _WrappedIterable.map (((V) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<V>.map (<T>((V) → T) → Iterable<T>). (./lib/src/collection/multimap.dart, line 684, col 25)\r\n[error] Invalid override. The type of DelegatingIterable.expand (((E) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<E>.expand (<T>((E) → Iterable<T>) → Iterable<T>). (./lib/src/collection/delegates/iterable.dart, line 41, col 3)\r\n[error] Invalid override. The type of DelegatingIterable.fold ((dynamic, (dynamic, E) → dynamic) → dynamic) is not a subtype of Iterable<E>.fold (<T>(T, (T, E) → T) → T). (./lib/src/collection/delegates/iterable.dart, line 48, col 3)\r\n[error] Invalid override. The type of DelegatingIterable.map (((E) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<E>.map (<T>((E) → T) → Iterable<T>). (./lib/src/collection/delegates/iterable.dart, line 68, col 3)\r\n[error] Invalid override. The type of InfiniteIterable.fold ((dynamic, (dynamic, T) → dynamic) → bool) is not a subtype of Iterable<T>.fold (<T₀>(T₀, (T₀, T) → T₀) → T₀). (./lib/src/iterables/infinite_iterable.dart, line 34, col 3)\r\n[error] Invalid override. The type of LinkedLruHashMap.[] ((K) → V) is not a subtype of Map<K, V>.[] ((Object) → V). (./lib/src/collection/lru_map.dart, line 196, col 3)\r\n[error] Invalid override. The type of LinkedLruHashMap.containsKey ((K) → bool) is not a subtype of Map<K, V>.containsKey ((Object) → bool). (./lib/src/collection/lru_map.dart, line 105, col 3)\r\n[error] Invalid override. The type of LinkedLruHashMap.containsValue ((V) → bool) is not a subtype of Map<K, V>.containsValue ((Object) → bool). (./lib/src/collection/lru_map.dart, line 108, col 3)\r\n[error] Invalid override. The type of LinkedLruHashMap.remove ((K) → V) is not a subtype of Map<K, V>.remove ((Object) → V). (./lib/src/collection/lru_map.dart, line 225, col 3)\r\n[error] Invalid override. The type of StreamBuffer.addStream ((Stream<T>) → Future<dynamic>) is not a subtype of StreamConsumer<dynamic>.addStream ((Stream<dynamic>) → Future<dynamic>). (./lib/src/async/stream_buffer.dart, line 142, col 3)\r\n[error] Invalid override. The type of _WrappedIterable.expand (((V) → Iterable<dynamic>) → Iterable<dynamic>) is not a subtype of Iterable<V>.expand (<T>((V) → Iterable<T>) → Iterable<T>). (./lib/src/collection/multimap.dart, line 410, col 3)\r\n[error] Invalid override. The type of _WrappedIterable.fold ((dynamic, (dynamic, V) → dynamic) → dynamic) is not a subtype of Iterable<V>.fold (<T>(T, (T, V) → T) → T). (./lib/src/collection/multimap.dart, line 425, col 3)\r\n[error] Invalid override. The type of _WrappedIterable.map (((V) → dynamic) → Iterable<dynamic>) is not a subtype of Iterable<V>.map (<T>((V) → T) → Iterable<T>). (./lib/src/collection/multimap.dart, line 470, col 3)\r\n[error] Type check failed: _id ((dynamic) → dynamic) is not of type (dynamic) → K (./lib/src/collection/multimap.dart, line 161, col 13)\r\n[error] Type check failed: _id ((dynamic) → dynamic) is not of type (dynamic) → V (./lib/src/collection/multimap.dart, line 162, col 15)\r\n[hint] 'FakeTimer' is deprecated (./lib/testing/src/async/async.dart, line 36, col 3)\r\n[hint] 'padLeft' is deprecated (./lib/strings.dart, line 244, col 19)\r\n[hint] 'padRight' is deprecated (./lib/strings.dart, line 244, col 10)\r\n[hint] The value of the local variable 'run' is not used (./lib/testing/src/equality/equality.dart, line 97, col 14)\r\n[hint] The value of the local variable 'string' is not used (./lib/testing/src/runtime/checked_mode.dart, line 36, col 12)\r\n[warning] Missing concrete implementation of 'Iterable.expand', 'Iterable.fold' and 'Iterable.map' (./lib/src/collection/multimap.dart, line 531, col 7)\r\n[warning] Missing concrete implementation of 'Iterable.expand', 'Iterable.fold' and 'Iterable.map' (./lib/src/collection/multimap.dart, line 684, col 7)\r\n[warning] The getter '_left' is not defined for the class '_TreeNode<V>'. (./lib/src/collection/treeset.dart, line 151, col 47)\r\n[warning] The getter 'length' is not defined for the class 'Object'. (./lib/src/async/stream_buffer.dart, line 152, col 41)\r\n[warning] The method 'add' is not defined for the class 'Object'. (./lib/src/async/stream_router.dart, line 72, col 16)\r\n[warning] The method 'compareTo' is not defined for the class 'Object'. (./lib/src/collection/treeset.dart, line 32, col 32)\r\n[warning] The redirected constructor '({maximumSize: int}) → LinkedLruHashMap<dynamic, dynamic>' has incompatible parameters with '({maximumSize: int}) → LruMap<K, V>' (./lib/src/collection/lru_map.dart, line 32, col 39)\r\n[warning] The return type 'bool' is not assignable to 'T' as required by the method it is overriding from 'Iterable' (./lib/src/iterables/infinite_iterable.dart, line 34, col 8)\r\n[warning] Unsound implicit cast from (K, C) → void to (K, Iterable<V>) → void (./lib/src/collection/multimap.dart, line 352, col 64)\r\n[warning] Unsound implicit cast from (dynamic) → void to (Timer) → void (./lib/async.dart, line 53, col 34)\r\n[warning] Unsound implicit cast from Completer<dynamic> to Completer<List<T>> (./lib/src/async/stream_buffer.dart, line 137, col 54)\r\n[warning] Unsound implicit cast from Converter<List<int>, String> to StreamTransformer<List<int>, dynamic> (./lib/io.dart, line 28, col 27)\r\n[warning] Unsound implicit cast from Future<dynamic> to Future<List<T>> (./lib/src/async/stream_buffer.dart, line 138, col 12)\r\n[warning] Unsound implicit cast from Future<dynamic> to Future<Stream<T>> (./lib/src/async/future_stream.dart, line 42, col 15)\r\n[warning] Unsound implicit cast from List<dynamic> to List<T> (./lib/src/async/stream_buffer.dart, line 118, col 12)\r\n[warning] Unsound implicit cast from Map<K, Iterable<V>> to Map<dynamic, List<V>> (./lib/src/collection/multimap.dart, line 280, col 24)\r\n[warning] Unsound implicit cast from Map<dynamic, dynamic> to Map<String, List<dynamic>> (./lib/testing/src/equality/equality.dart, line 98, col 27)\r\n[warning] Unsound implicit cast from Map<dynamic, dynamic> to Map<String, List<dynamic>> (./lib/testing/src/equality/equality.dart, line 99, col 32)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 441, col 29)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 633, col 20)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 693, col 28)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 954, col 38)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 960, col 51)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 968, col 38)\r\n[warning] Unsound implicit cast from Object to V (./lib/src/collection/treeset.dart, line 974, col 51)\r\n[warning] Unsound implicit cast from StreamSubscription<dynamic> to StreamSubscription<DateTime> (./lib/src/async/metronome.dart, line 89, col 7)\r\n[warning] Unsound implicit cast from dynamic to (T) → T (./lib/src/iterables/generating_iterable.dart, line 57, col 66)\r\n[warning] Unsound implicit cast from dynamic to Iterable<Match> (./lib/pattern.dart, line 67, col 38)\r\n[warning] Unsound implicit cast from dynamic to Iterable<T> (./lib/src/iterables/cycle.dart, line 42, col 21)\r\n[warning] Unsound implicit cast from dynamic to Iterable<V> (./lib/src/collection/multimap.dart, line 225, col 12)\r\n[warning] Unsound implicit cast from dynamic to Iterator<T> (./lib/src/iterables/cycle.dart, line 43, col 21)\r\n[warning] Unsound implicit cast from dynamic to T (./lib/src/iterables/generating_iterable.dart, line 57, col 55)\r\n[warning] Unsound implicit cast from dynamic to T (./lib/src/iterables/generating_iterable.dart, line 74, col 16)\r\n[warning] Unsound implicit cast from dynamic to V (./lib/src/cache/map_cache.dart, line 41, col 23)\r\n[warning] Unsound implicit cast from dynamic to V (./lib/src/cache/map_cache.dart, line 42, col 18)\r\n[warning] Unsound implicit cast from dynamic to V (./lib/src/cache/map_cache.dart, line 45, col 21)\r\n[warning] Unsound implicit cast from dynamic to V (./lib/src/collection/treeset.dart, line 802, col 40)\r\n```"},"comment":{"url":"https://api.github.com/repos/google/quiver-dart/issues/comments/199670653","html_url":"https://github.com/google/quiver-dart/issues/285#issuecomment-199670653","issue_url":"https://api.github.com/repos/google/quiver-dart/issues/285","id":199670653,"user":{"login":"emesx","id":7759044,"avatar_url":"https://avatars.githubusercontent.com/u/7759044?v=3","gravatar_id":"","url":"https://api.github.com/users/emesx","html_url":"https://github.com/emesx","followers_url":"https://api.github.com/users/emesx/followers","following_url":"https://api.github.com/users/emesx/following{/other_user}","gists_url":"https://api.github.com/users/emesx/gists{/gist_id}","starred_url":"https://api.github.com/users/emesx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emesx/subscriptions","organizations_url":"https://api.github.com/users/emesx/orgs","repos_url":"https://api.github.com/users/emesx/repos","events_url":"https://api.github.com/users/emesx/events{/privacy}","received_events_url":"https://api.github.com/users/emesx/received_events","type":"User","site_admin":false},"created_at":"2016-03-22T07:10:27Z","updated_at":"2016-03-22T07:10:27Z","body":"@yjbanov @kevmoo - need your opinion on this."}}