)]}'
{
  "commit": "f213b3dcbadb773608a7d9d835ee4ce00d2e5b85",
  "tree": "8e66d7778bec91d0a5d09d269e7f8827a5fce857",
  "parents": [
    "e2331d536802a45192f74205546c23a8aff0dd09"
  ],
  "author": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Fri Jun 27 09:09:06 2025 +0200"
  },
  "committer": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Fri Jun 27 02:55:14 2025 -0700"
  },
  "message": "Support for finalizing synthetics more than once\n\nThe synthetic items currently track pending and committed items. At the point of finalization, there can be no pending synthetics and all committed items are finalized. It is an error to add any new synthetics after finalization.\n\nThis splits the committed items into two, the committed items that have not been finalized and the finalized committed items. This is used to support finalizing synthetics more than once. Synthetic finalization then finalizes all the non-finalized committed items and merges this into the finalized committed items.\n\nOne disadvantage is that synthetics introduced after the first synthetic finalization will not be subject to horizontal class merging if they end up being finalized after class merging.\n\nChange-Id: I1d5093ed85b85d53f6068756cf170ded3f519914",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e96a434b68729d0fda8d8974229fcf2e4e34ce2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/PrunedItems.java",
      "new_id": "00a3744af8896901082e63c3aeb12ccdd03113a9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/PrunedItems.java"
    },
    {
      "type": "modify",
      "old_id": "889c466020e43f408018b32c00adb1afa850709d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/shaking/MainDexInfo.java",
      "new_id": "7df2ab5c3e8c5213729e787f13cb3025c6928dc7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/MainDexInfo.java"
    },
    {
      "type": "modify",
      "old_id": "ea5a020f0383e89c5294845b75e392dc2e0e2e79",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/CommittedItems.java",
      "new_id": "5ce9d4980166ac7fb0f16571fb6f31b4ca727502",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/CommittedItems.java"
    },
    {
      "type": "modify",
      "old_id": "8663f34809afb529e70fdcd248ce45db5296f0bd",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/CommittedSyntheticsCollection.java",
      "new_id": "fa6cff036ce5ba13072390db75b2ecb3255f1238",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/CommittedSyntheticsCollection.java"
    },
    {
      "type": "modify",
      "old_id": "d1db8ba2946bc59428b10ee670128795fa90eb55",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticFinalization.java",
      "new_id": "f7cc1e5f2b2e6a063d50a6e628a608e9bb432a4a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticFinalization.java"
    },
    {
      "type": "modify",
      "old_id": "2f4e34864b755efc24cfedf1fe550d091e53a70d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java",
      "new_id": "942465bdb525479e578c8aec63023ba87012d063",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java"
    },
    {
      "type": "modify",
      "old_id": "edfdb92dc672dd5ac82cbceab0dc6d2a638c8534",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticMethodDefinition.java",
      "new_id": "fb1b1097d87144b2036a90c2e16e55dfb342b53c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticMethodDefinition.java"
    },
    {
      "type": "modify",
      "old_id": "e649f480a485297c314483eb9958bf6816614849",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticMethodReference.java",
      "new_id": "e6b6760d0891894ccbbb99277ca629c253292c9a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticMethodReference.java"
    },
    {
      "type": "modify",
      "old_id": "83beafffbc6f589fe56e04b1a81ccf4871eaffc0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticNaming.java",
      "new_id": "676989f123f6fa3923a63652405cd3ec7d4d1dfd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticNaming.java"
    }
  ]
}
