)]}'
{
  "commit": "eae54cf02ca9b5cbdedf4e315de3f0cbc5d5dd28",
  "tree": "a01267399fbb78d237efe52012c48094b35e05f2",
  "parents": [
    "e653358a6c33f563bc0986d1d963ea8e97d0c7f5"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Tue Jul 21 18:56:25 2020 +0000"
  },
  "committer": {
    "name": "commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue Jul 21 18:56:25 2020 +0000"
  },
  "message": "Fix reachability logic for expression types.\n\nPreviously, we considered an expression unreachable if its type was\nexactly `Never`.  This CL switches to using TypeSystem.isBottom, which\ncorrectly handles types like `T extends Never`.\n\nChange-Id: Ia6ce580caab6bc7ce7cceb1d0097b50f1da88f8a\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/154746\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da2e57c32728ff8b4266b0d4a8a802a59845b0e9",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart",
      "new_id": "29e89fe6c7ecb35d1c67b59f7e220a1877f0616b",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart"
    },
    {
      "type": "modify",
      "old_id": "eafa02854f6e46ba0b4ad94d9e49840e308212f7",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/generated/static_type_analyzer.dart",
      "new_id": "4c605a3393d185b751ee4284e20d767f6b9ed075",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/generated/static_type_analyzer.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe6c7dba55936cf811845e93be5e7bab4de8ac1a",
      "new_mode": 33188,
      "new_path": "tests/language/nnbd/flow_analysis/unreachable_via_getter_get_error_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af541803ce8777f24d4099a0afe312db0ab9c444",
      "new_mode": 33188,
      "new_path": "tests/language/nnbd/flow_analysis/unreachable_via_getter_get_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e5b9c32cba423ecd03eff843e1026bba5c25f868",
      "new_mode": 33188,
      "new_path": "tests/language/nnbd/flow_analysis/unreachable_via_invocation_error_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d059c4da54c0a61c180222bfbf06ced44edbda15",
      "new_mode": 33188,
      "new_path": "tests/language/nnbd/flow_analysis/unreachable_via_invocation_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f7e6902117fd9e011086144c374996445f0867d",
      "new_mode": 33188,
      "new_path": "tests/language/nnbd/flow_analysis/unreachable_via_variable_get_error_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "333029278e109bc33101564baa14ce11460a9e00",
      "new_mode": 33188,
      "new_path": "tests/language/nnbd/flow_analysis/unreachable_via_variable_get_test.dart"
    }
  ]
}
