)]}'
{
  "commit": "882941caf45e7b4fc7080f6dc4ce51cd74716e07",
  "tree": "d1c6637d022a9eb68c1154aed7b11bca942ec856",
  "parents": [
    "999c9b5e193d3f34624f8d29b6392fc1de81b69a"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Fri Dec 02 13:50:38 2022 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Dec 02 13:50:38 2022 +0000"
  },
  "message": "_fe_analyzer_shared: add support for rest patterns with subpatterns in maps.\n\nThe parser now handles maps that contain rest patterns with\nsubpatterns (e.g. `{\u0027foo\u0027: _, ...var rest}`).  Even though this is\ninvalid Dart, it still makes sense for the parser to handle it so that\nwe can generate higher quality error messages.\n\nThe shared type analyzer now generates an error,\n`restPatternWithSubPatternInMap`, if it encounters this error\ncondition.\n\nChange-Id: I7f447bde28e646593aa432e3e5ad1f5e415bdd30\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/273283\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Jens Johansen \u003cjensj@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b803fa19e4dc6126a683d9e31efdb04e7cb8171",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart",
      "new_id": "dff577aee4b1678b05f0c258f3d9f3bbb4fbe3ef",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart"
    },
    {
      "type": "modify",
      "old_id": "e24d463420d23ff6306c9c01e42787b5cc03a78e",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer.dart",
      "new_id": "9c41d14a85540d3fdfa43c4ef59718b52c6b6222",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer.dart"
    },
    {
      "type": "modify",
      "old_id": "653b5aeee66efd950145327c076d5906a7d2b64a",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart",
      "new_id": "7dc2a89689d87fb726916252af024c08b22a5bb4",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart"
    },
    {
      "type": "modify",
      "old_id": "ecf0dd1444a748cf8d04e1b4e421e3ab7c3db862",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart",
      "new_id": "49843cb27da8b31381cbb2e6780b6dcf260af75c",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart"
    },
    {
      "type": "modify",
      "old_id": "04d9eb699e648e8960bbed24739eee7b3430f105",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/shared_type_analyzer.dart",
      "new_id": "75d6b6f3439701775f70d107ab3cc1fadb06ce6d",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/shared_type_analyzer.dart"
    },
    {
      "type": "modify",
      "old_id": "e4ff75651eba789f1b26ae233efea4d1eb8e2ead",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/generated/patterns_parser_test.dart",
      "new_id": "93d86247e15e68832050b8c603a8fe162ad0e8e1",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/generated/patterns_parser_test.dart"
    },
    {
      "type": "modify",
      "old_id": "987b30e12d1e55a7963bbc3f70117907b2116eb9",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/type_inference/shared_type_analyzer.dart",
      "new_id": "a9f0f64a4605a289472ebda19c3d2ffc8559eaf3",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/type_inference/shared_type_analyzer.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8068e1af0a9cd4ae060a63a67f612761bccc78e6",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "19fc18ba742176875b01170d0798eaa154089f30",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac157365c04d0926d066842636c69ce6c5d2d7ef",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.intertwined.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c473261a29b8406ef2d632e8aef6aa33b453c90",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.parser.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c473261a29b8406ef2d632e8aef6aa33b453c90",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.scanner.expect"
    }
  ]
}
