)]}'
{
  "commit": "64dc71c863a3db0636692b813334fdd5699d5e6b",
  "tree": "c81593fa5c522a89c36eb8c7eb3e02338aada2a2",
  "parents": [
    "376d418b1b535030fbe3369938d2ffdbb0340a77"
  ],
  "author": {
    "name": "Nate Bosch",
    "email": "nbosch@google.com",
    "time": "Tue Mar 02 15:40:08 2021 -0800"
  },
  "committer": {
    "name": "Nate Bosch",
    "email": "nbosch@google.com",
    "time": "Tue Mar 02 16:11:18 2021 -0800"
  },
  "message": "Use onError over catchError\n\n`Future.catchError` is more error prone in null safe dart than `onError`\nbecause return type of the `Function` callback is not statically\nenforced and `null` was a common default value which no longer works.\n\nMigrate all calls from `catchError` to `onError` to demonstrate best\npractices. The other usages in this package are mostly on\n`Future\u003cdynamic\u003e` and mostly look safe, though I can\u0027t rule out a type\nerror in unusual situations.\n\nThere was at least one mistake made in the migration of this library -\nthe code to ignore errors when completing a `CancelableOperation` as an\nerror after it was already canceled would instead cause a type error to\nsurface. Fix this and add a test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d43d7176a4f1f2fef792f48ff214d17da6b42ae2",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "0041245260b98f650eb6701ea33baddd0679af67",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "c321078728a0db29db69e59d6e136eb70aa26396",
      "old_mode": 33188,
      "old_path": "lib/src/cancelable_operation.dart",
      "new_id": "b1cac55d22969b1bd39812379368471ccf6d70db",
      "new_mode": 33188,
      "new_path": "lib/src/cancelable_operation.dart"
    },
    {
      "type": "modify",
      "old_id": "3a6291fd3df8fc29bd39e5dbda72ab3968e691fa",
      "old_mode": 33188,
      "old_path": "lib/src/future_group.dart",
      "new_id": "2968b0ba7e02baadece55c6dff0314585e5437b6",
      "new_mode": 33188,
      "new_path": "lib/src/future_group.dart"
    },
    {
      "type": "modify",
      "old_id": "34b100bb74e49296b5cf2caba75520066ea8daf9",
      "old_mode": 33188,
      "old_path": "lib/src/null_stream_sink.dart",
      "new_id": "b61b2bc219f706829fd8d6e75639f4be42c9f254",
      "new_mode": 33188,
      "new_path": "lib/src/null_stream_sink.dart"
    },
    {
      "type": "modify",
      "old_id": "10e549d883d539cd6795110fbd1c34882049c477",
      "old_mode": 33188,
      "old_path": "lib/src/stream_sink_completer.dart",
      "new_id": "c5a098c3ae524a9006319ca8de380c0c22bd8c97",
      "new_mode": 33188,
      "new_path": "lib/src/stream_sink_completer.dart"
    },
    {
      "type": "modify",
      "old_id": "d6f188ec0f45a5b0356fd3631aa53913775f0edd",
      "old_mode": 33188,
      "old_path": "lib/src/stream_sink_transformer/handler_transformer.dart",
      "new_id": "5f9e0b402a0e8c3dee8406cbb4501133a5b70cf9",
      "new_mode": 33188,
      "new_path": "lib/src/stream_sink_transformer/handler_transformer.dart"
    },
    {
      "type": "modify",
      "old_id": "2afcbff81da06b592f3d4437e9b3ab5614e33c3c",
      "old_mode": 33188,
      "old_path": "lib/src/stream_sink_transformer/stream_transformer_wrapper.dart",
      "new_id": "373a65070a2cfa8aa4bfe5ff341db548d706b211",
      "new_mode": 33188,
      "new_path": "lib/src/stream_sink_transformer/stream_transformer_wrapper.dart"
    },
    {
      "type": "modify",
      "old_id": "3c8dd95b04bc70d4b70e5dfcc2dcbdc595bae76d",
      "old_mode": 33188,
      "old_path": "pubspec.yaml",
      "new_id": "47c653f2ce8bf0545088f16b738d56de95c63e5e",
      "new_mode": 33188,
      "new_path": "pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "0e8d8d49df89b51760a3a0d9a0eb05fc08f789a0",
      "old_mode": 33188,
      "old_path": "test/cancelable_operation_test.dart",
      "new_id": "ebb8f49686d96067e5934abf56c674a07f5021c3",
      "new_mode": 33188,
      "new_path": "test/cancelable_operation_test.dart"
    },
    {
      "type": "modify",
      "old_id": "71710054c27a2e2eaabae5c346a7cf714b543c4a",
      "old_mode": 33188,
      "old_path": "test/result/result_future_test.dart",
      "new_id": "d211dcac3abb9cac0cd7a26af95bb6ced6084313",
      "new_mode": 33188,
      "new_path": "test/result/result_future_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e5f6baa1c10f482c42e0b2212d1fb801f02f47bd",
      "old_mode": 33188,
      "old_path": "test/stream_sink_transformer_test.dart",
      "new_id": "20dda61bd4022e25bcea80c36dde6b2a5e6f5ebf",
      "new_mode": 33188,
      "new_path": "test/stream_sink_transformer_test.dart"
    }
  ]
}
