)]}'
{
  "commit": "2ab7f3cbc5fb8d9f07593f3a44bd0e66940f42c8",
  "tree": "e02c41adb7894e40c4e837552937813d184cce57",
  "parents": [
    "faecfb24eb49257c532cd7c17aa050b826e67db7"
  ],
  "author": {
    "name": "Hongxiang Jiang",
    "email": "hxjiang@golang.org",
    "time": "Thu Oct 08 16:42:12 2026 -0400"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Tue Oct 13 14:31:13 2026 -0700"
  },
  "message": "apidiff: refactor the first two pass for package checking\n\nold:           new:\ntype A \u003d B     type A B\ntype B int     type B int\n\nThe existence of the two for loop is to prevent type match\naccidentally unalias the old A as B and map the old B to\nthe new A.\n\nSo the first loop will strictly perform exact name match\non exported non-alias type, i.e. when apidiff find a non-alias\ntype X, find the X in the new package.\n\n(This first loop make sure the Unalias will be no op inside\nof the checkObjects.)\n\nThen the second loop can safely assume the name matches are\nall found and loop over the rest of the exported type.\n\nChange-Id: I6fadc2c1543da5600a89a22585344feda4ab505d\nReviewed-on: https://go-review.googlesource.com/c/exp/+/847525\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b807541b736f572d7e723072249318b4e8f800e4",
      "old_mode": 33188,
      "old_path": "apidiff/apidiff.go",
      "new_id": "97b08f27868e0ac89c12637037339f994d72687d",
      "new_mode": 33188,
      "new_path": "apidiff/apidiff.go"
    }
  ]
}
