)]}'
{
  "commit": "34adff9928e2759e308450655de32be7f1983eda",
  "tree": "439f1f04e95a9f0fe8293dc9e64af42e1e4a352e",
  "parents": [
    "d39ec7236934dd3eec2d0c56f80d69e3e4b679a6"
  ],
  "author": {
    "name": "Graham Rogers",
    "email": "graham@rogers.me.uk",
    "time": "Tue Mar 26 00:31:35 2019 +0000"
  },
  "committer": {
    "name": "Nate Bosch",
    "email": "nbosch1@gmail.com",
    "time": "Mon Mar 25 17:31:35 2019 -0700"
  },
  "message": "Make tap\u0027s onError arguments have specific types (dart-lang/stream_transform#75)\n\nCurrently onError has type void Function(dynamic, dynamic).\r\n\r\nThis causes a problem with something like:\r\n\r\nvoid myOnError(Object error, StackTrace stackTrace) {}\r\nstream.transform(tap(null, onError: myOnError)).listen(null);\r\n\r\nAs that causes an error:\r\ntype \u0027(Object, StackTrace) \u003d\u003e void\u0027 is not a subtype of type \u0027(dynamic, dynamic) \u003d\u003e void\u0027\r\n\r\nNote that (dynamic, dynamic) \u003d\u003e void is a subtype of (Object, StackTrace) \u003d\u003e void, so any function that can be passed to the old version can also be passed to the new one.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bfed97ceb2f5b3588a7dc80c0f4685110c4b5143",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/lib/src/tap.dart",
      "new_id": "1b799fa4c443166ad094c0490cd421ce36535d0b",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/lib/src/tap.dart"
    }
  ]
}
