)]}'
{
  "commit": "36af3bcbdfebbc4d248caac697358509b7782979",
  "tree": "1d521fff9d4a2ae1ae75a75c1a07f5e898a02ba4",
  "parents": [
    "a6004259f06c59265cca82cac2d443070083f232"
  ],
  "author": {
    "name": "Clément Béra",
    "email": "clementbera@google.com",
    "time": "Tue Oct 06 13:24:28 2026 +0200"
  },
  "committer": {
    "name": "r8-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "r8-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Oct 08 00:41:45 2026 -0700"
  },
  "message": "Emit string switch in TypeSwitch desugaring\n\nWhen the switch is not restartable and the bootstrap arguments of a\ntypeSwitch start with strings, emit an instanceof String check and a\nlookupSwitch on String.hashCode() followed by String.equals() checks\nfor the leading string cases, instead of a linear sequence of equals()\nchecks.\n\nThis gives the desugared pattern-matching string switch a hash-based\ndispatch similar to the one javac emits for regular string switches.\n\nBug: b/399808482\nChange-Id: Ibf48ed4df12a0404f8e8ba27b03b015c15641fe1\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "213be3c033fac43bb1c09d35544d93501b0eeeb3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/synthetic/TypeSwitchSyntheticCfCodeProvider.java",
      "new_id": "114892de56d6c2e77aac360de1184f335dd06033",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/synthetic/TypeSwitchSyntheticCfCodeProvider.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c9fda293ab1de9c1b28433198119e22a4f7b19ef",
      "new_mode": 33188,
      "new_path": "src/test/java21/com/android/tools/r8/jdk21/switchpatternmatching/TypeSwitchStringSwitchTest.java"
    }
  ]
}
