)]}'
{
  "commit": "25b9794d895caba0212f7eda30d7b4de3eb04e23",
  "tree": "64dd5ad336b78cefa3427576c44daaf154cdde68",
  "parents": [
    "882d59adaafe47a9393cd5a5b2927cb4ffa50310"
  ],
  "author": {
    "name": "lberki",
    "email": "lberki@google.com",
    "time": "Wed Oct 28 11:52:59 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Oct 28 11:54:27 2026 -0700"
  },
  "message": "Deduplicate MergedConfiguredTarget instances across dependency edges.\n\n`AbstractConfiguredTarget` overrides `hashCode()` based on target label and configuration key so that `ConfiguredTarget` instances placed in Starlark dicts have deterministic hash codes, while leaving `equals()` as reference equality (`Object.equals`). Because `MergedConfiguredTarget` is created freshly for every incoming dependency edge during aspect propagation, placing aspect-decorated dependencies into a Starlark `depset` or `dict` fails to deduplicate across edges and causes all incoming edges for the same target to collide in the same hash bucket during `depset.to_list()`.\n\nOverriding `equals()` on `MergedConfiguredTarget` to compare the underlying base target and attached aspects (while retaining `AbstractConfiguredTarget`\u0027s deterministic `hashCode()`) allows Starlark `depset`s and `dict`s to deduplicate aspect-decorated targets across edges in O(1) time without regressing hash determinism.\n\nRELNOTES: None.\nPiperOrigin-RevId: 1009072109\nChange-Id: Ied88e64c4a508fe1b53cff851acec4c6280d3019\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cfe195ad734f8bb0035f975ee170db1b676c222d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java",
      "new_id": "5eacf3dbdf42cb31dc767b06c2c22b8dc728a7ff",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java"
    },
    {
      "type": "modify",
      "old_id": "4841170fba967813f2ac9a023f9d8bc57459b40c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/starlark/StarlarkDefinedAspectsTest.java",
      "new_id": "726779f7f21035f2d40d582d0be4052381555fff",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/starlark/StarlarkDefinedAspectsTest.java"
    }
  ]
}
