tree 4eb4d0c1260cad0dba9221e17f8b492de4781bbe
parent 53e002aee859698e9d2da329ef1d8ec075de63c0
author Sam Rawlins <srawlins@google.com> 1608660836 -0800
committer Sam Rawlins <srawlins@google.com> 1608660836 -0800

Return valid type from Future.catchError.

An upcoming feature to the Dart analyzer [0] will report Future.catchError [1]
`onError` handlers which return values of invalid type. Currently this is not
reported because the `onError` handler function type cannot be accurately
expressed. An `onError` handler for `Future<T>.catchError` must be either
`FutureOr<T> Function(dynamic)` or `FutureOr<T> Function(dynamic, StackTrace)`.
In either case, the return type of the function is `FutureOr<T>`.

This CL corrects `onError` handler(s) to return a value of a valid type (typically `null`).

[0]: https://github.com/dart-lang/sdk/issues/35825
[1]: https://api.dart.dev/dev/2.12.0-149.0.dev/dart-async/Future/catchError.html
