)]}'
{
  "commit": "bd2d261bc6a82ae2bece034d4aba2cbc4e14c178",
  "tree": "666a33f9dcca527f96084761b43a4ae07f13bde6",
  "parents": [
    "ac86c134e9d58f5ec5a92a0f69622d7a4be3c191"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Mon Aug 29 03:27:53 2022 +0000"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Mon Aug 29 03:27:53 2022 +0000"
  },
  "message": "Shared type analysis: add support for `when` clauses and fix label support.\n\nSupport for `when` clauses requires flow analysis integration, so that\n`when` clauses can promote variables, e.g.:\n\n    f(int x, String? y) {\n      switch (x) {\n        case 0 when y !\u003d null:\n          // y is known to be non-null here\n      }\n    }\n\nSupport for labels in switch statements had a small flaw: we weren\u0027t\nreporting an error in the case where a label shared a case body with a\npattern that tried to bind a variable, e.g.:\n\n    f(int x) {\n      switch (x) {\n\n        L: // Error: does not mind the variable `y`\n        case var y:\n          ...\n      }\n    }\nChange-Id: I0b2bb4721a6b3a8f7898df682b24b75ddb6e44ae\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/256605\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7d88b79d1487a13ca516061c3de9cfa5fd7f818",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart",
      "new_id": "e315ad9842608322893c5919ed7c51eebff0d463",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart"
    },
    {
      "type": "modify",
      "old_id": "cdec2a3aad71bf67a2bc0874a254395dbcdbde55",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer.dart",
      "new_id": "a84e2dc19a0971abac3531271d2486192dd17042",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer.dart"
    },
    {
      "type": "modify",
      "old_id": "35d1050aa5a58a4101c143fe4fea3d6c93b96acc",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart",
      "new_id": "7a806c425f1c70b6f60eed7104766ad9351b5516",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart"
    },
    {
      "type": "modify",
      "old_id": "5fe88dd531807719167415769577532945e4e728",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart",
      "new_id": "5cbd24302c7961d7280a43e5d83b17010b343736",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart"
    },
    {
      "type": "modify",
      "old_id": "c539b43cd92407d887d9599e1fb47fe74b7cd29f",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart",
      "new_id": "241f8f5e99d7c2081ebc110e9c5bbea628fa8a14",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart"
    },
    {
      "type": "modify",
      "old_id": "012784ca27dae38ed6638bd65b7eefa1dd68359d",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/spell_checking_list_code.txt",
      "new_id": "c3e7532f3b63a5d1f2586cc86b5dff51ea136b8e",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/spell_checking_list_code.txt"
    }
  ]
}
