)]}'
{
  "commit": "c2713ca752d7e222e46f78c5bbbaea4dfeefad22",
  "tree": "c01cb7ad442cb3dcca52bab1018e70e7306d147d",
  "parents": [
    "5c5f4ef65ecb63b556668b5b909b4b15d4ebc793"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Tue Apr 04 03:29:39 2023 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Apr 04 03:29:39 2023 +0000"
  },
  "message": "Patterns parsing: improve error recovery for switch expressions.\n\nIf the parser gets lost during a switch expression, it now attempts to\npick back up at the next `,` in between the curly braces (ignoring\nmore deeply nested commas).  This allows much better error recovery in\nthe case where an illegal function expression appears in a guard.\n\nFixes #51906.\n\nBug: https://github.com/dart-lang/sdk/issues/51906\nChange-Id: I1cb43857ccc04f0e4146c23c9e07acb02a80d405\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/293083\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "251bfaac619fd0f149ff49d735dc22eecd80aad1",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart",
      "new_id": "6af5eb2895d0b0071e0808f87248fda39ad095d7",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart"
    },
    {
      "type": "modify",
      "old_id": "6c5391fd29e9510611ff75934d272c12ec77e48b",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/generated/patterns_parser_test.dart",
      "new_id": "d8fb2eea3815652e338a5af48d43124888ae85cf",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/generated/patterns_parser_test.dart"
    },
    {
      "type": "modify",
      "old_id": "9e02b3175497e3d0c599569e156f6d113b1e541e",
      "old_mode": 33188,
      "old_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase.dart.intertwined.expect",
      "new_id": "98531ed9850e67ee5aa2a19fa4ce95932728ac06",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase.dart.intertwined.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d737c204144023b88a231e1b8665d3cbc07d7cb7",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_laterComma.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48bcc2abfde3d1b87ad85aadc0e8ebc823b4b4f5",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_laterComma.dart.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c3d45bfccee7b0398bcf6ada17f11e12623ffc2",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_laterComma.dart.intertwined.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87f17688afe179c70c3d3941f4fa50fc3723380b",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_laterComma.dart.parser.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87f17688afe179c70c3d3941f4fa50fc3723380b",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_laterComma.dart.scanner.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f6139968ad197c7e429b04274036fdf14907510",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_nestedComma.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cc1497d01b65a4482cfc723bee843417ee93fdcb",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_nestedComma.dart.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98531ed9850e67ee5aa2a19fa4ce95932728ac06",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_nestedComma.dart.intertwined.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ac4e81dee88811d5c22f97c7fc846f7916235af",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_nestedComma.dart.parser.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ac4e81dee88811d5c22f97c7fc846f7916235af",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_bogusTokensAfterCase_nestedComma.dart.scanner.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16af06d4a674999c3385575cc42bf79a01381af7",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_illegalFunctionExpressionInGuard.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0edbaee2c0afcc140ca362a34c9d6f37ac55e456",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_illegalFunctionExpressionInGuard.dart.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f4da76f5007727480549d827cc17059e10a6662",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_illegalFunctionExpressionInGuard.dart.intertwined.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9c8d2985d6b61b412e0f546aba4defd4d11ae73",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_illegalFunctionExpressionInGuard.dart.parser.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9c8d2985d6b61b412e0f546aba4defd4d11ae73",
      "new_mode": 33188,
      "new_path": "pkg/front_end/parser_testcases/patterns/switchExpression_recovery_illegalFunctionExpressionInGuard.dart.scanner.expect"
    },
    {
      "type": "modify",
      "old_id": "d38c2e2cebfcd81c636cf8961967946b6bd6f372",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/parser_test_parser.dart",
      "new_id": "23a6aa15989b036c567a2bdefe27098bad6808f1",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/parser_test_parser.dart"
    },
    {
      "type": "modify",
      "old_id": "fc1a45e78364fe7ff09afdfe3c1ddba5020db439",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/spell_checking_list_code.txt",
      "new_id": "b22e66773573ad10678fef00de965aa00caa236d",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/spell_checking_list_code.txt"
    }
  ]
}
