)]}'
{
  "commit": "f0251eb4aa3edefb2e1c158e57af104ae2de221a",
  "tree": "80536e9e93606aac28aea47783a16d9d1c2d98ed",
  "parents": [
    "2ab7f3cbc5fb8d9f07593f3a44bd0e66940f42c8"
  ],
  "author": {
    "name": "Jonathan Amsterdam",
    "email": "jba@google.com",
    "time": "Sun Sep 20 19:30:00 2026 -0400"
  },
  "committer": {
    "name": "Jonathan Amsterdam",
    "email": "jba@google.com",
    "time": "Wed Oct 14 07:36:41 2026 -0700"
  },
  "message": "apidiff: require exported old types to match same-named type in new\n\nPreviously, correspondence was sometimes established between completely\nunrelated types. This CL tightens the requirements for two exported types\nto correspond: the only possibilities are that they have the same name,\nor the new type is an alias for the old.\n\nExamples:\n\told: type T int    new: type T int\n\tsame name: the T\u0027s correspond\n\n\told: type T int    new: type T \u003d U; type U int\n\tdifferent name, but T is an alias for U.\n\nThis might seem to exclude another case:\n\n\told: type T \u003d U; type U int\t\tnew: type U int\n\nIt seems that T should correspond to U even though the above conditions\naren\u0027t met. But in fact U corresponds to U here, not T. Correspondence\nis 1:1; we pick the closest match.\n\nThis may seem unrelated to the new test case, which reports that two\nstruct fields are incompatible instead of just one. But the reason that\nthe old code didn\u0027t report one of the fields is that it established a\ncorrespondence between the fields\u0027 types, despite their being completely\nunrelated.\n\nFixes golang/go#81523.\n\nChange-Id: I8ab02d13acb606d4ea26fc73fa4d7ee5042d18d7\nReviewed-on: https://go-review.googlesource.com/c/exp/+/836046\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "97b08f27868e0ac89c12637037339f994d72687d",
      "old_mode": 33188,
      "old_path": "apidiff/apidiff.go",
      "new_id": "f29b9104492bccad9e98b6873a8f4025eb265fcd",
      "new_mode": 33188,
      "new_path": "apidiff/apidiff.go"
    },
    {
      "type": "modify",
      "old_id": "8a0ec9aa2e729d7e8b8fdf54ab73e189c3de8cbd",
      "old_mode": 33188,
      "old_path": "apidiff/correspondence.go",
      "new_id": "b32d0d941295fc1dc441b68cf92cf796cdd2aa3c",
      "new_mode": 33188,
      "new_path": "apidiff/correspondence.go"
    },
    {
      "type": "modify",
      "old_id": "0653822c6bf0d45e4a3a79aedfbc070e274fa5cb",
      "old_mode": 33188,
      "old_path": "apidiff/testdata/splitting.go",
      "new_id": "99140dd98d31a0efae16ddbf447833576ea4aa06",
      "new_mode": 33188,
      "new_path": "apidiff/testdata/splitting.go"
    }
  ]
}
