)]}'
{
  "commit": "a7d5560ede228f6df3285cf35a62b50aa0d709b1",
  "tree": "f20887a1c1a4ac1046ff49129958c4ace9e0b6d8",
  "parents": [
    "2fe60769d32a44617743f0847d1780271d444cd4"
  ],
  "author": {
    "name": "Johnni Winther",
    "email": "johnniwinther@google.com",
    "time": "Thu Mar 14 08:36:28 2024 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Mar 14 08:36:28 2024 +0000"
  },
  "message": "[_fe_analyzer_shared] Compute multiple witnesses\n\nThis updates the exhaustive checking algorithm to produce a list of\nwitnesses instead of a single witness in case of a non-exhaustive error.\n\nThis is used to create a witness for each missing subtype when checking\n\"sealed static types\", for instance enums and sealed classes.\n\nThe current error reporting isn\u0027t changed and only reports the first\nwitness. Use of the multiple witnesses in error messages and/or lints\nmust be done in the CFE and analyzer.\n\nChange-Id: I950816f6a9eca16773f182d5d820929bdcb39684\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/357160\nReviewed-by: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Johnni Winther \u003cjohnniwinther@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fc94c445893069a8a242b8deeee9818d6913e433",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/exhaustiveness/exhaustive.dart",
      "new_id": "3ae7c4d277328b3e8c483dae8d31e8559e8f421b",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/exhaustiveness/exhaustive.dart"
    },
    {
      "type": "modify",
      "old_id": "b9bec2ae0377ea120b9c1305f1fc5d66ec9d574f",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/exhaustiveness/test_helper.dart",
      "new_id": "d6fec5105e12e02c6b130aaf288b82265d9f1be8",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/exhaustiveness/test_helper.dart"
    },
    {
      "type": "modify",
      "old_id": "d9c6876657faa07c6f0e530b8df7bf7baecbb1bf",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/cast_nullable.dart",
      "new_id": "686e397f08fe2675c41353a7578360ad0d29d7ad",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/cast_nullable.dart"
    },
    {
      "type": "modify",
      "old_id": "5744bdf393b9db1abd5095750a41b0015cc45e4c",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/dynamic_members.dart",
      "new_id": "340436f8b9f665446bd3e01a86b683445480d326",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/dynamic_members.dart"
    },
    {
      "type": "modify",
      "old_id": "6bb82b26868c87108b10043ff98e1879d36022a9",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/empty.dart",
      "new_id": "94eb386059535474da254fc7ff96d6ab71300eab",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/empty.dart"
    },
    {
      "type": "modify",
      "old_id": "cab75190e93c914b8520c9990a4bed70e34f50f6",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/enum.dart",
      "new_id": "6a06973984f97eb4ceb5fb14ff81855b2f449c29",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/enum.dart"
    },
    {
      "type": "modify",
      "old_id": "63c7e3b9d0d7b21a27ddddb9ab3111b01bdee373",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/enum_members.dart",
      "new_id": "64d8e5b7aa35a9b9e143a3533b75f23fc4ad65a4",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/enum_members.dart"
    },
    {
      "type": "modify",
      "old_id": "c982e568c540c7d08dacbd830aad3626040c869d",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/f_bounded.dart",
      "new_id": "74094cffe7202d618c899740bd89aea8a2652be4",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/f_bounded.dart"
    },
    {
      "type": "modify",
      "old_id": "eb3be05faf267537ddc5ba97f1e0f11023589eaf",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/future_or.dart",
      "new_id": "b087dade0c2a92a5df7dbf8fb23f0256ca92431e",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/future_or.dart"
    },
    {
      "type": "modify",
      "old_id": "fffcf1ac5e97b08f59ee3c26a0af30a9f667782c",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/future_or_members.dart",
      "new_id": "53ff45fc381dbae798e459c5b6732fc18654ad76",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/future_or_members.dart"
    },
    {
      "type": "modify",
      "old_id": "1615b5deb4a813ba2098bd0ab1cf88ac552a467c",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/generic_nested_sealed_classes.dart",
      "new_id": "b8ba7374c58d4e1b9a03f587be1d285a5bb15752",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/generic_nested_sealed_classes.dart"
    },
    {
      "type": "modify",
      "old_id": "0cce05bfefc7e0c5cce9edcdc5eb68a7250fb864",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/generic_sealed_class.dart",
      "new_id": "e2fa7b2af457766587e13606b66b136361c5eed7",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/generic_sealed_class.dart"
    },
    {
      "type": "modify",
      "old_id": "a6a39a8ff61d23bf6e5646d5058575ff04ddbd12",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/intersect.dart",
      "new_id": "20c82bd8fa153cc10d2694afedac523f838f6c39",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/intersect.dart"
    },
    {
      "type": "modify",
      "old_id": "778f5d5765de45f0cfbf051b2920fa3cd918036c",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/issue51973.dart",
      "new_id": "64a008f60891d6dc364c28813549ea874368909d",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/issue51973.dart"
    },
    {
      "type": "modify",
      "old_id": "72e23570925d67466ec735eeb8e979cd33856b80",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/list.dart",
      "new_id": "a19c622773bcef82b33ecd7145749f8c9b0ec7ac",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/list.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13f6185f79b1eefbde43898e1ce3262a65cce636",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/multiple.dart"
    },
    {
      "type": "modify",
      "old_id": "f0be6d621a2264c2eb15e39156b3972a1e680c81",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/nullable_members.dart",
      "new_id": "8bfd33fbc861c3fb08fea242a1d416f15aa05b52",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/nullable_members.dart"
    },
    {
      "type": "modify",
      "old_id": "3c0917d7efd2ca46f174faecd7f0b3a86f7afd82",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/relational.dart",
      "new_id": "04218987e332210eb1bd137e966ef0d051750ffc",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/relational.dart"
    },
    {
      "type": "modify",
      "old_id": "780218d3e900fb38b4a7fe72ffef3a5dd62d3e53",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/restrictive_cast.dart",
      "new_id": "62d6f3d891ca3fabb0c42c9b3bf00d8373c21d03",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/restrictive_cast.dart"
    },
    {
      "type": "modify",
      "old_id": "4572efdbc1d0b9466dde22b0a9446a6809722e30",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/type_variable.dart",
      "new_id": "5146f833bbd8e2500f69eae3469bb6d8f1a09f86",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/type_variable.dart"
    },
    {
      "type": "modify",
      "old_id": "47ae366a94f48ba3fcc9d538c656960e0bc74afe",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/type_variable_members.dart",
      "new_id": "118b921351de0ff944ee3b285416e8960dd7353d",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/type_variable_members.dart"
    },
    {
      "type": "modify",
      "old_id": "e8b69c44289865df831a6c0d7b335fa3f405583f",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/unsound_cast.dart",
      "new_id": "102d5730b3011676113f30e8d75f2e30a54f4ace",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/unsound_cast.dart"
    },
    {
      "type": "modify",
      "old_id": "6edb5d6c973a197c51833f8d3ba433445fc0ad8e",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/void_members.dart",
      "new_id": "0520ef240ef2ec4a5deec4df451babfa206e4f23",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/data/void_members.dart"
    },
    {
      "type": "modify",
      "old_id": "ba4d9004fd931ff1481ab157653907030b914c32",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/report_errors_test.dart",
      "new_id": "d7038ca0333cda6e1ebb31d2cd5793a1a71beb3b",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/exhaustiveness/report_errors_test.dart"
    },
    {
      "type": "modify",
      "old_id": "a3dd78385d8da66171fcfa926803207d511e76ce",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/constant/constant_verifier.dart",
      "new_id": "da84e6f557fdfd94aab3d6005d58a699ef20d98a",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/constant/constant_verifier.dart"
    },
    {
      "type": "modify",
      "old_id": "f5ed87bb8ff34e32235d120fe2f7c129d19bee86",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart",
      "new_id": "00a1e6f39a4ad2d6a8fd1e4c0747e737bbc87d26",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart"
    },
    {
      "type": "modify",
      "old_id": "e157ad62e89f2b56f94b453219db2d2359ea2ed1",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/spell_checking_list_code.txt",
      "new_id": "06acca707bf215c2d0dd18dde4e63d458a4b58c1",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/spell_checking_list_code.txt"
    }
  ]
}
