)]}'
{
  "commit": "ff687b2452d8a7a92c51ede99e7fd35431d8a019",
  "tree": "669f24b62e9a4aab1830175ae855a71194214f74",
  "parents": [
    "aff7f8bb7f94182f8c4492908294c1dd17628f99"
  ],
  "author": {
    "name": "Rob Findley",
    "email": "rfindley@google.com",
    "time": "Tue Aug 19 14:07:04 2025 +0000"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Tue Aug 19 12:45:37 2025 -0700"
  },
  "message": "[release-branch.0.25] internal/tokeninternal: move unsafe gopls code into gopls\n\nIn x/tools@v0.25.0, the tokeninternal package accessed the token.FileSet\nunsafely, and used a trick to force the build to break if ever the size\nof token.FileSet changed. This workaround was only necessary for gopls,\nbut was unfortunately implemented in a package that was reachable\nthrough the public API of x/tools.\n\nIn go1.25, the size of the token.FileSet changed, breaking tools that\nindirectly depended on this poisoned package. Fix this by moving the\ngopls logic into gopls: the gopls build will still be broken, but that\ndoesn\u0027t matter as we only support the most recent version of gopls,\nwhich is fixed.\n\nFor golang/go#74462\n\nChange-Id: Ied3f7a615cab66d88ec6f4cfe8738f8429865993\nReviewed-on: https://go-review.googlesource.com/c/tools/+/697336\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nTryBot-Bypass: Robert Findley \u003crfindley@google.com\u003e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/697416\nAuto-Submit: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nTryBot-Bypass: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d9c75100443eb814adf2964eddd7a050ee7952c9",
      "old_mode": 33188,
      "old_path": "gopls/internal/cache/check.go",
      "new_id": "8c03036883c8337aa7e96096fc155128ebb3765c",
      "new_mode": 33188,
      "new_path": "gopls/internal/cache/check.go"
    },
    {
      "type": "modify",
      "old_id": "8586f655d2808b8a9e9cdfe25c38fbbc0bfaa4ef",
      "old_mode": 33188,
      "old_path": "gopls/internal/cache/parse_cache.go",
      "new_id": "2302fa06300aa32cf4d138354daa09bebfbc9c9a",
      "new_mode": 33188,
      "new_path": "gopls/internal/cache/parse_cache.go"
    },
    {
      "type": "modify",
      "old_id": "c64125427b16e351bda3223b1de44b139e404666",
      "old_mode": 33188,
      "old_path": "gopls/internal/cache/parsego/parse_test.go",
      "new_id": "3799374056fb77f53a2b963e4ef0eaea54ddbea2",
      "new_mode": 33188,
      "new_path": "gopls/internal/cache/parsego/parse_test.go"
    },
    {
      "type": "modify",
      "old_id": "72cbe4c2d90762bbcf01353bfeae210ba378ac54",
      "old_mode": 33188,
      "old_path": "gopls/internal/golang/change_signature.go",
      "new_id": "699e0b1bf01949dfd01a905f1fc9b808e8df8c23",
      "new_mode": 33188,
      "new_path": "gopls/internal/golang/change_signature.go"
    },
    {
      "type": "modify",
      "old_id": "5755f7ae2eabdbe2da71a96e91e5d2114950bed0",
      "old_mode": 33188,
      "old_path": "gopls/internal/golang/format.go",
      "new_id": "0de1bc82a82ce74cb1c4e87d74717b2760d61a74",
      "new_mode": 33188,
      "new_path": "gopls/internal/golang/format.go"
    },
    {
      "type": "modify",
      "old_id": "b315b7383d49704506c111eef4e40e4c2ba9a704",
      "old_mode": 33188,
      "old_path": "gopls/internal/golang/hover.go",
      "new_id": "757987fff70838bad5f6bb42f8f7b9c6d120f81c",
      "new_mode": 33188,
      "new_path": "gopls/internal/golang/hover.go"
    },
    {
      "type": "modify",
      "old_id": "47bcf3a7dcfc1cbd861c0373a44325319d1a7c07",
      "old_mode": 33188,
      "old_path": "gopls/internal/golang/stub.go",
      "new_id": "afc448d41f75075690f4275187c9598c043864df",
      "new_mode": 33188,
      "new_path": "gopls/internal/golang/stub.go"
    },
    {
      "type": "modify",
      "old_id": "51584bcb01398e4b018af5404e0f02f66a7dde18",
      "old_mode": 33188,
      "old_path": "gopls/internal/golang/types_format.go",
      "new_id": "13730a05c80bbf7a8f7f4cc504dee040d1679833",
      "new_mode": 33188,
      "new_path": "gopls/internal/golang/types_format.go"
    },
    {
      "type": "modify",
      "old_id": "18f72421a64d2df7bd9027d47077b02d03aefed9",
      "old_mode": 33188,
      "old_path": "gopls/internal/golang/util.go",
      "new_id": "ec2e6a7bd9ef45aaaa9d16052bcd2f4427549944",
      "new_mode": 33188,
      "new_path": "gopls/internal/golang/util.go"
    },
    {
      "type": "modify",
      "old_id": "98e4bf92e3287fd53f3a4c74da1e96dc40e92295",
      "old_mode": 33188,
      "old_path": "gopls/internal/server/command.go",
      "new_id": "2eda9b702034ea19065ce3fad7dd9687009c4ecb",
      "new_mode": 33188,
      "new_path": "gopls/internal/server/command.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a0b6c7fa11982a295f7b01afa1f1f961f639b5c0",
      "new_mode": 33188,
      "new_path": "gopls/internal/tokeninternal/tokeninternal.go"
    },
    {
      "type": "rename",
      "old_id": "7fd14fea6a30b5ca6e908e2651d40ed8ad43dcdf",
      "old_mode": 33188,
      "old_path": "internal/tokeninternal/tokeninternal_test.go",
      "new_id": "9b13a2eafbeb91f53b2b78ee5f1e82336d43fa30",
      "new_mode": 33188,
      "new_path": "gopls/internal/tokeninternal/tokeninternal_test.go",
      "score": 96
    },
    {
      "type": "modify",
      "old_id": "ff9437a36cd61ab31fb7062726b1f5b5e1c77f8e",
      "old_mode": 33188,
      "old_path": "internal/tokeninternal/tokeninternal.go",
      "new_id": "2c8d70a4a05813b9be679464d2d21d2e9ff2e15f",
      "new_mode": 33188,
      "new_path": "internal/tokeninternal/tokeninternal.go"
    }
  ]
}
