)]}'
{
  "commit": "650710a74498e798077883ef87046db5e74171f0",
  "tree": "ccebeb85446a71d6a48d92815746c1b0293d1793",
  "parents": [
    "054803603e8d4fe371929499956d7996712a6037"
  ],
  "author": {
    "name": "Andrew Grieve",
    "email": "agrieve@google.com",
    "time": "Fri Jan 31 11:16:39 2025 -0500"
  },
  "committer": {
    "name": "Andrew Grieve",
    "email": "agrieve@google.com",
    "time": "Mon Feb 03 06:47:58 2025 -0800"
  },
  "message": "Add experimental option to trace enum usage in Android serialization APIs\n\nEnabled by system property:\n  com.android.tools.r8.experimentalTraceAndroidEnumSerialization\n\nThe APIs that are looked for:\n * Bundle.getSerializable()\n * Parcel.readSerializable()\n * Intent.getSerializableExtra()\n\nSome limitations:\n * For the overloads that accept a Class, it must be a const-class\n * For other overloads, the return value must be directly used by a\n   checked-cast of the Enum type.\n\nReorganizes enum tracing into two helper classes:\n * EnqueuerEnumReflectionSupportAndroid\n * EnqueuerEnumReflectionSupportJava\n\nAdds support for tracing to recognize enum subclasses.\n\nBug: b/204939965\nChange-Id: I7db7a73a63e611fd0465a0c6888f6416b4c1ef05",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "27f31fa88ddb4c00c0bd33c83d8ab1447340538e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/DexItemFactory.java",
      "new_id": "1dda2a0f9f85f23236cb4140bedcf9d4db3c6988",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/DexItemFactory.java"
    },
    {
      "type": "modify",
      "old_id": "babfa95c07113021557bcc05e3f26ea067e29c32",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/analysis/EnqueuerAnalysisCollection.java",
      "new_id": "f1320a44a4488bd39f1ed2d56373d29e3de45288",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/analysis/EnqueuerAnalysisCollection.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "494011864728b96b4dce21155c44544bdbe4d347",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/analysis/IrBasedEnqueuerAnalysis.java"
    },
    {
      "type": "modify",
      "old_id": "fdc7fb5d2f561ae28310dc2070ad01a227188340",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/shaking/Enqueuer.java",
      "new_id": "626bc31d797a84187dc378b0bbf2743eb42460a4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/Enqueuer.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e7735a5e0c6f5982a9366575e565d4e9b03c8de",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/EnqueuerEnumReflectionAnalysisAndroid.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "237959c9683454a7ba72c86d98ec815743fe5def",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/EnqueuerEnumReflectionAnalysisBase.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d528fbb962963e513bf9e9dad4fbe54a88750f5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/EnqueuerEnumReflectionAnalysisJava.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6b1ae5262ab56d35a2b85f96f4111a367816c4de",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/EnqueuerMockitoAnalysis.java"
    },
    {
      "type": "delete",
      "old_id": "19be910dac06b56ddd399c37e3f85b137deef0f3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/shaking/EnqueuerMockitoSupport.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "64de8642d4c2ab7a4e15283fcf0b269f401f90c1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/utils/InternalOptions.java",
      "new_id": "b408a09a535251aab2d5c9c9b286172706cf939b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/utils/InternalOptions.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83921be6d424a7866c90a885f7d4b28d763f8b77",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/enums/EnumReflectionAndroidTest.java"
    },
    {
      "type": "rename",
      "old_id": "2a9872c55c4198c7a93561b0aac7bc203edb9531",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/shaking/enums/EnumCollectionsTest.java",
      "new_id": "9c8f0cd1988ca653fa03c00cedefd6c2c7f82cb9",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/enums/EnumReflectionJavaTest.java",
      "score": 72
    }
  ]
}
