)]}'
{
  "log": [
    {
      "commit": "50fa278e4e4b73ec5aa3f60019b93db9cc4e9b6a",
      "tree": "5470fee86f3008c88c8d5157c792f307ae588796",
      "parents": [
        "2aabba0e4be44cc8f254ced118a7156d04bbc9f3"
      ],
      "author": {
        "name": "Felipe Matarazzo",
        "email": "felipemps@protonmail.com",
        "time": "Thu May 07 21:31:57 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 08 16:02:01 2026 -0700"
      },
      "message": "all: fix typos in comments and docs\n\nFix several doubled words and misspellings found across\ncomments, test files, and documentation\n\n- go/types/objectpath: \"ouf the the\" → \"out of the\"\n- gopls/internal/cache: \"the the\" → \"the\"\n- gopls/internal/cmd/codeaction: \"and and\" → \"and\"\n- gopls/internal/analysis/yield: \"to to\" → \"to\"\n- gopls/doc/features/transformation: \"and and\" → \"and\"\n- go/analysis/internal/checker: \"with with\" → \"with\"\n- gopls/internal/filewatcher: \"with with\" → \"with\"\n- go/analysis/passes/printf: \"excepted\" → \"expected\"\n- gopls/internal/test/integration/codelens: \"nonexistant\" → \"nonexistent\"\n\nChange-Id: I3e4e91015a63edf2f61570153a647deb1d2b65e3\nGitHub-Last-Rev: 8f658e6fa6be6a80359ef4413db4534dcb969def\nGitHub-Pull-Request: golang/tools#646\nReviewed-on: https://go-review.googlesource.com/c/tools/+/772600\nReviewed-by: Alan Donovan \u003cadonovan@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: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\n"
    },
    {
      "commit": "2aabba0e4be44cc8f254ced118a7156d04bbc9f3",
      "tree": "29c805057c4b742bf6fa8cd2ae3ba793ca39b1b9",
      "parents": [
        "ef989b3f45baff2849e87f4a70d9a189be5a6959"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 08 13:18:26 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 08 13:49:05 2026 -0700"
      },
      "message": "go.mod: update golang.org/x dependencies\n\nUpdate golang.org/x dependencies to their latest tagged versions.\n\nChange-Id: I494817f935a60bb286833f636256e69884ee8a25\nReviewed-on: https://go-review.googlesource.com/c/tools/+/775723\nAuto-Submit: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n"
    },
    {
      "commit": "ef989b3f45baff2849e87f4a70d9a189be5a6959",
      "tree": "a315811df21fbc516de2abee309edf73398f6298",
      "parents": [
        "21d44f2f2bb3f3a8e06e35523d14bb70cb275c89"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri May 08 14:53:57 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 08 12:13:52 2026 -0700"
      },
      "message": "go/types/internal/play: show Info.Instances[Ident]\n\nChange-Id: Icf78573c64d7573933155a43493ac41f0c958e9d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/775785\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "21d44f2f2bb3f3a8e06e35523d14bb70cb275c89",
      "tree": "c59ded834f0723c4a661d16336951b3667722c59",
      "parents": [
        "ec83c2190d81a18bbd472cc1498575b168017e5d"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri May 08 11:12:40 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 08 08:41:08 2026 -0700"
      },
      "message": "go/analysis/passes/inline: document skipping of TestF-\u003eF calls\n\nThis CL updates the documentation to point out the special\ntreatment of calls to a function F from its dedicated test, TestF.\n\nFixes golang/go#79273\n\nChange-Id: I06af8cd28ea2eb974d35962e50d22d2dd346d5a0\nReviewed-on: https://go-review.googlesource.com/c/tools/+/775861\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ec83c2190d81a18bbd472cc1498575b168017e5d",
      "tree": "92fd3f1e58bbc6e01ae9406b1215cb7242fd5016",
      "parents": [
        "5625353d39195f1deb9261c5ee983abbdc4a15ca"
      ],
      "author": {
        "name": "Alex Putman",
        "email": "aputman@google.com",
        "time": "Tue May 05 15:26:25 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu May 07 14:05:14 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: minmax: only remove exact userdefined\n\nMake sure that the min/max logic in a user defined min max functions use the two function parameters.\n\nAlso refactored the userdefined tests so that they actually test what they intend to (all of the moved tests would also fail the userdefined test just because of the name of their functions, not the reasons stated in the comments). Because of the rules of min max though, there can only be two tests per directory since the functions have to have the names \"min\" or \"max\".\n\nFixes golang/go#79210\n\nChange-Id: Id06fd15c54862270e86545e5c562588b91985283\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774760\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alex Putman \u003caputman@google.com\u003e\n"
    },
    {
      "commit": "5625353d39195f1deb9261c5ee983abbdc4a15ca",
      "tree": "86c077fb326d56a2ed1e57a7d655d69d94e7507d",
      "parents": [
        "15a3bd5d4ce0651f5cf43ea125db2110c67b257b"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Wed May 06 15:29:11 2026 -0400"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Thu May 07 12:47:24 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: improve value variable name generation\n\nUpdates the heuristic for generating the name of the value variable\nin slices.Backward. Now, we look for the first statement of the form\n\"name :\u003d s[i]\" in the loop body and use \"name\" as the variable name.\n\nOtherwise, as long as the slice variable in the loop\nis a valid identifier, we attempt to use its singlular form\nor first letter. If none of these are valid, we simply use \"v\".\n\nFixes golang/go#79150\n\nChange-Id: Iac9a548bc64547117a2df95e1a12a3c797fccf81\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774941\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "15a3bd5d4ce0651f5cf43ea125db2110c67b257b",
      "tree": "493ca71cec1829459b276ad5563693693e02fea4",
      "parents": [
        "cd57ef8f8dd7a30ef500bfe1eef0779223cbdfc3"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Thu May 07 20:19:42 2026 +0200"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu May 07 12:33:40 2026 -0700"
      },
      "message": "gopls/internal/analysis/errorsastype: imporove example clarity\n\nUpdate the errorsastype documentation example to use distinct\nfunction names in each branch.\n\nThe previous example used use(err) in both cases, which could\nsuggest to readers that the same function is intended to handle both\nerror types. Using separate names makes the example clearer.\n\nSee Dmitri’s comments on CL 770360.\n\nChange-Id: I2096eefff4750c7b73b47ad36ea7f2916a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/775380\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nAuto-Submit: Mateusz Poliwczak \u003cmpoliwczak34@gmail.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "cd57ef8f8dd7a30ef500bfe1eef0779223cbdfc3",
      "tree": "ea2430f6b596ab837d503d21b6ab2444e8f6d16f",
      "parents": [
        "053fdbcef55e8f977d8decc0fde2920c61eb5374"
      ],
      "author": {
        "name": "Basavaraj PB",
        "email": "basavarajbankolli76@gmail.com",
        "time": "Wed Mar 11 23:54:46 2026 +0530"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed May 06 12:54:35 2026 -0700"
      },
      "message": "go/packages: include dependency errors when CompiledGoFiles is missing\n\nWhen go list fails during cgo processing, go/packages reports a\ngeneric \"go list failed to return CompiledGoFiles\" error. This hides\nunderlying dependency errors returned by go list.\n\nInclude errors from DepsErrors in the reported message so that tools\nlike gopls can surface the actual compiler failure when available.\n\nFixes golang/go#78083\n\nChange-Id: I4af7baf6424aeaa21df184d9bfb8e0fdf75b4da6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/754340\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "053fdbcef55e8f977d8decc0fde2920c61eb5374",
      "tree": "9cfbd89321a75cf5de6889cef57c482cc44dc7b6",
      "parents": [
        "bf84681c4a0185014c089cffd533e22bbeffcb49"
      ],
      "author": {
        "name": "Alex Putman",
        "email": "aputman@google.com",
        "time": "Tue May 05 15:26:25 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed May 06 09:41:42 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: minmax: fix pure operands only\n\nIf the condition inside the \"if\" statement contains an expression that causes side effects, we don\u0027t want to rewrite with \"min\" or \"max\". The fix might otherwise change the cardinality of effects.\n\nFixes golang/go#77558\n\nChange-Id: I37ba9b6d6c9c014a375328da0e721d0ea6569564\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774401\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alex Putman \u003caputman@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "bf84681c4a0185014c089cffd533e22bbeffcb49",
      "tree": "e05e83614d574e6b68b078668e92e8922c2efbfe",
      "parents": [
        "23921d1decfe5da40309ac183353c8cb38b03dfa"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Wed Apr 22 19:52:00 2026 +0200"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed May 06 07:58:34 2026 -0700"
      },
      "message": "go/analysis/passes/errorsas: add example of invalid errors.As use\n\nChange-Id: I09ea4efab1631bc46f740d2e2bb5546a6a6a6922\nReviewed-on: https://go-review.googlesource.com/c/tools/+/773920\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\n"
    },
    {
      "commit": "23921d1decfe5da40309ac183353c8cb38b03dfa",
      "tree": "7052a71fbeacb1ea1d33ed1f1a05159a281bf1d8",
      "parents": [
        "90abdab4cf0af205d3d2212c73526b58c97d0bf6"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Wed Apr 22 19:52:00 2026 +0200"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed May 06 07:58:12 2026 -0700"
      },
      "message": "gopls: add errorsastype analyzer\n\nUpdates golang/go#78889\n\nChange-Id: I09ea4efab1631bc46f740d2e2bb5546a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770360\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\n"
    },
    {
      "commit": "90abdab4cf0af205d3d2212c73526b58c97d0bf6",
      "tree": "d9b5f99cfeb40d3b5d71ff6d66b6e80c304c1df8",
      "parents": [
        "f3f6b2c748da8c86bc188ad2ea32e0f1e87a011a"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue May 05 15:23:27 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue May 05 20:10:13 2026 -0700"
      },
      "message": "gopls/internal/cmd: remove gopls -port\u003dint debugging flag\n\nThe -port flag is confusingly redundant with -listen\u003daddress,\nas the existing TODO notes, and it may bind INADDR_ANY.\n\nAlso, change these flags to reject implicit use of INADDR_ANY (e.g. \":12345\")\nand suggest using an explicit host of either 0.0.0.0 or localhost (recommended):\n gopls serve -listen\u003daddress\n gopls serve -mcp.listen\u003daddress\n gopls mcp -listen\u003daddress\n\n+ relnote\n\nFixes golang/go#79211\nFixes CVE-2026-42503\n\nChange-Id: Ia42202d3239468480bd231eeb0ffea88b238ddc6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774381\nReviewed-by: Nicholas Husin \u003cnsh@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Damien Neil \u003cdneil@google.com\u003e\nReviewed-by: Nicholas Husin \u003chusin@google.com\u003e\n"
    },
    {
      "commit": "f3f6b2c748da8c86bc188ad2ea32e0f1e87a011a",
      "tree": "c79995918387cb9db961da65d62d13ee17f3f55a",
      "parents": [
        "1a69aa5c6201f680aedb4c1c1e825ae78942a921"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 15 11:32:46 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue May 05 12:57:50 2026 -0700"
      },
      "message": "gopls/doc/release/v0.22.0.md: update release notes\n\nFor golang/go#79000\n\nChange-Id: Ic553431bf5c2c45fe73b0a4dcc67822e03445106\nReviewed-on: https://go-review.googlesource.com/c/tools/+/767980\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1a69aa5c6201f680aedb4c1c1e825ae78942a921",
      "tree": "5aa1d651be7ef33df5f3a7637b183bbc366046d2",
      "parents": [
        "cd58e997a82a329fd275df3115ae4fb2bb7175a1"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue May 05 13:36:24 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue May 05 11:44:47 2026 -0700"
      },
      "message": "gopls/internal/settings: add embedlit analyzer\n\nAdd embedlit modernizer to default gopls modernizer suite.\n\nChange-Id: Ia81655fe4f97bfdbe9de09949368ef1fd3d7cd9c\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774380\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "cd58e997a82a329fd275df3115ae4fb2bb7175a1",
      "tree": "38316d252836449efd0eb87286817c757e315c85",
      "parents": [
        "5c70b1f9717f217a861c78f064c0373ad2c47083"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue May 05 13:00:24 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue May 05 11:44:43 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: publish modernizers\n\nExports vars for atomictypes, embedlit, errorsastye, plusbuild,\nstditerators, and stringscut modernizers.\n\nFixes golang/go#77986\n\nChange-Id: I10844d3b4e6fb1f214f7b15307ef7240e0042186\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774360\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "5c70b1f9717f217a861c78f064c0373ad2c47083",
      "tree": "d6610a18c6179ef8886f4f50897cc86749d56257",
      "parents": [
        "8dd5ac23d42a090f4115d12adcca9c47380f46a4"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Thu Apr 30 04:38:13 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Tue May 05 10:45:34 2026 -0700"
      },
      "message": "gopls/internal/golang: return unmodified if interactivity is not needed\n\nUpdate ResolveCommand to return the unmodified ExecuteCommandParams in\ntwo specific scenarios:\n1. The command inherently does not require interactive user input.\n2. The language client does not support the specific dialog UI required\n   for the command.\n\nIn both cases, the original command already contains all the information\nnecessary for execution. Returning it unmodified safely signals the\nclient to bypass the prompt phase and proceed directly to execution.\n\nThere were two control flows for code action marker, with form and\nwithout form. However, in reality, the language client uses only one\ncontrol flow aligning with the code action marker with form.\n\nThis accidentally miss the test coverage for code action that is\nnot interactive.\n\nFor golang/go#76331\n\nChange-Id: Id24ffd033973736cf9841b7d4762e64e6203136b\nReviewed-on: https://go-review.googlesource.com/c/tools/+/772381\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\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "8dd5ac23d42a090f4115d12adcca9c47380f46a4",
      "tree": "22e2480ef434e59e0b4e26b50ca227a3c2ef0742",
      "parents": [
        "9719f4f6476aaf6739a82506ead94f550ef4c979"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon May 04 16:45:24 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon May 04 14:17:37 2026 -0700"
      },
      "message": "internal/typesinternal/typeindex: suppress test on js\n\nError in TestCalls: \"pipe: not implemented on js\"\n\nBenchmarkIndex also calls packages.Load, so suppress it too.\n\nFixes golang/go#79147\n\nChange-Id: I6f82b0dfb228641218e57f7023d467c07401b3c9\nReviewed-on: https://go-review.googlesource.com/c/tools/+/774000\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "9719f4f6476aaf6739a82506ead94f550ef4c979",
      "tree": "5de5340710b3993451e274c54332bd7c23d58213",
      "parents": [
        "83e333ae1f051d6596720d80df668c8dfc4e6f54"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jan 24 00:41:15 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon May 04 08:14:17 2026 -0700"
      },
      "message": "all: fix some minor issues in the comments\n\nChange-Id: I5b79fb6467b764098eaa176a50eff5c74dd41e15\nReviewed-on: https://go-review.googlesource.com/c/tools/+/738800\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "83e333ae1f051d6596720d80df668c8dfc4e6f54",
      "tree": "665e018f54cf6ae24d894682782c7197ef372761",
      "parents": [
        "215b5af85c90f4ae6830ed8854f83222e3d57030"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Fri May 01 16:47:02 2026 -0400"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon May 04 07:24:53 2026 -0700"
      },
      "message": "gopls/internal/golang: fix invalid comment on hover\n\nA previous CL (go.dev/cl/761080) modified the hover\nlogic for assign statements to include the comment\nimmediately preceeding the assignment.\n\nHowever, it used slices.BinarySearchFunc to find\nthe preceeding comment without checking the\n\"found\" returned value.\n\nslices.BinarySearchFunc can return a valid\nindex value even when it didn\u0027t find the target comment.\nIf we use the index returned without checking\nwhether found\u003dtrue, we end up including an invalid comment\nin the hover information; i.e. a comment from a different\nsyntax node.\n\nFor some unknown reason I could not produce this error\nin the marker tests, I had to include the regression test\nin test/integration/hover.\n\nFixes golang/go#79146\nChange-Id: Ib1d2341f628475d732b8ef53c6dd0095d7c7ad29\nReviewed-on: https://go-review.googlesource.com/c/tools/+/773221\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "215b5af85c90f4ae6830ed8854f83222e3d57030",
      "tree": "1edd79d7669325dfc4dd303bec7cf8ef60142094",
      "parents": [
        "30f43b21abdac67e8f3988626d5fb1afe8e3be50"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Apr 30 12:38:49 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 01 15:50:42 2026 -0700"
      },
      "message": "go/analysis/passes/inline: fix bug renaming param type aliases\n\nWhen //go:fix inline is used on a type alias A, this analyzer\ncurrently fails to rename uses of A within signature types\nsuch as func(A),  because the logic to detect embedded fields\nstruct{A} spurious triggers. This CL refines that logic to\ntrigger only on nameless ast.Fields belonging to a struct type.\n\nAlso, move all the txttar tests into the main Test function.\n\nFixes golang/go#77844\n\nChange-Id: Ib16816be61465302e1f96e6316af1fb478cb78a3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/772480\nReviewed-by: Mateusz Poliwczak \u003cmpoliwczak34@gmail.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\n"
    },
    {
      "commit": "30f43b21abdac67e8f3988626d5fb1afe8e3be50",
      "tree": "c3188de1435e343212e19917ae15ae001f169b6c",
      "parents": [
        "5847157a6879b5e282db984f7c3ab5da658fd4d1"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Fri May 01 20:42:19 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri May 01 12:53:18 2026 -0700"
      },
      "message": "gopls: actually don\u0027t emit shadowing modifier in the builtin pkg\n\nThe solution we ended up with in CL 768482 is actually wrong\nPkgPath \u003d\u003d \"command-line-arguments/usr/lib/go/src/builtin/builtin.go\"\nfor the builtin package.\n\nChange-Id: I55c54357c1054ea959eea608688155aa6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/773200\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "5847157a6879b5e282db984f7c3ab5da658fd4d1",
      "tree": "b3b8dd997a77d542f0061377706589afb862647f",
      "parents": [
        "52180d697038b0ea8ec92dc03071252f35cbcbe9"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri May 01 13:12:04 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri May 01 11:12:39 2026 -0700"
      },
      "message": "x/tools: go fix ./...\n\nPlus a couple of minor cleanups.\n\nChange-Id: I867fa9b56be6b1e2e27c80441b9cfb72c042e63e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/773021\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Matloob \u003cmatloob@golang.org\u003e\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\n"
    },
    {
      "commit": "52180d697038b0ea8ec92dc03071252f35cbcbe9",
      "tree": "09885ad27e2beb34cc957a3dec7500a33d76043b",
      "parents": [
        "4fc140a23f180a990b7848f5bdc5beec911c867a"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri May 01 10:22:53 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri May 01 08:24:39 2026 -0700"
      },
      "message": "gopls/integration/misc: Test61208 flaky\n\nTest61208/default is still flaky. This CL adds some more logging\nand rearranges it to try to track down what\u0027s going wrong.\n\nUpdates golang.org/go#78680\n\nChange-Id: I9d1dcc2451f0c13851f4db73ca1a4c6158e0fa26\nReviewed-on: https://go-review.googlesource.com/c/tools/+/773020\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "4fc140a23f180a990b7848f5bdc5beec911c867a",
      "tree": "c25ab38d6239f4664f11824b5d34371a92947dd2",
      "parents": [
        "397b80f448b23cf58b734741dd225f5c9faff0c0"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue Apr 28 17:22:20 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 29 14:25:19 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: fix slicesbackward unused value\n\nThe slicesbackward modernizer should omit the declaration of v\nif only the slice index i is used within the loop.\n\nAdapted from Jah-yee\u0027s work in CL 770700 and CL 768700\n\nFor golang/go#78629\n\nChange-Id: I53aec72f2645fffda655e6108ded87bbf42e4c7e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/771760\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "397b80f448b23cf58b734741dd225f5c9faff0c0",
      "tree": "a4bf02a98b03395e214cc1c60c93a25023edd669",
      "parents": [
        "8a5f06ea09cdeda99c20f9cb7581106d5cc98e27"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Sun Apr 26 10:58:30 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 29 13:59:34 2026 -0700"
      },
      "message": "internal/typesinternal/typeindex: support generic functions in index.Calls\n\nAnd while here add few tests for this functionality.\n\nChange-Id: I96f24c2e0ab14f3953991afceabeeb3f6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770381\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "8a5f06ea09cdeda99c20f9cb7581106d5cc98e27",
      "tree": "ae96578232f702da809b5f3f34348c48512df1fb",
      "parents": [
        "9561e2d12280713761ae9359497b276ba3ad0c39"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Apr 13 16:58:33 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 29 13:24:58 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: stringscut: detect modifying use in all assignments\n\nIn the stringscut modernizer, we skip suggesting a fix if any of the uses of the input variable \"s\" (after the call to Index) are modifying uses, as a fix would not preserve the existing semantics.\n\nWhen looking at a use of \"s\" in an assignment, we previously only check Lhs[0]. If the \"s\" is modified in a multi-assignment but is not the first variable in the list, we will miss this modifying use and may end up suggesting an invalid fix.\n\nInstead, we should treat any use of \"s\" on the lhs as a modifying use.\n\nChange-Id: I4ba58d720f2df2db3fca71927d0704cbb9e8813d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766541\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "9561e2d12280713761ae9359497b276ba3ad0c39",
      "tree": "660b58f32631953a7ecdde6ff895f3668bc7b7d1",
      "parents": [
        "21e1a67746918559382b99eb51368c4620f08c1b"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue Apr 28 13:56:55 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 29 07:29:40 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: disable fmtappendf modernizer\n\ngolang/go#77581 (and others previously) have described a solid argument\nfor disabling the fmtappendf modernizer. In short, although it saves an\nunnecessary allocation, it is slightly less easy to read.\n\nIts diagnostics remain enabled by default in gopls.\n\nFixes golang/go#77581\n\nChange-Id: Iee75adf07049480febb9fa2df09fe64496a852d5\nReviewed-on: https://go-review.googlesource.com/c/tools/+/771561\nReviewed-by: Alan Donovan \u003cadonovan@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: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "21e1a67746918559382b99eb51368c4620f08c1b",
      "tree": "1822a085793f2a9ebabdcf064045cc4aec844406",
      "parents": [
        "a448bbc3eb995110972fb297442421dab016a12e"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Apr 28 11:55:26 2026 +0100"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 29 05:25:28 2026 -0700"
      },
      "message": "gopls/internal/golang: ApplyFix: refine assertion\n\nThis CL refines the \"no file for edit position\" assertion\nby switching on the \u0027fix\u0027 name so that we learn the values\nof the fix strings from the program counter. This will\nhelp us track down which fix algorithm(s) are at fault.\n\nFor golang/go#68818\n\nChange-Id: I7fb4a4848e414a3e81ee43a53aaa56557ca98b97\nReviewed-on: https://go-review.googlesource.com/c/tools/+/771320\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\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"
    },
    {
      "commit": "a448bbc3eb995110972fb297442421dab016a12e",
      "tree": "adbde7abf0f28b23450c9c23f69aeb251d1768ba",
      "parents": [
        "22a642575e67aa2e44d42bf0134720ea2239a8d6"
      ],
      "author": {
        "name": "xieyuschen",
        "email": "xieyuschen@gmail.com",
        "time": "Wed Apr 22 02:36:56 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 29 05:25:24 2026 -0700"
      },
      "message": "x/tools/go/types/objectpath: fix TestOrdering\n\nTestOrdering tried to check that the same method names in different\nsource orders got the same object paths, but due to a typo it compared\npobj.Name() with itself and could never fail.\n\nReplace it with a test that builds an object path for each source\nloaded method and resolves it against the compiler export data package.\nThis checks the objectpath behavior directly while still covering the\nmethod ordering invariant that objectpath relies on.\n\nFixes golang/go#78495\n\nChange-Id: I6c1ec8d5186ec98d0ac4cac3e26636d9a2f365b3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/769780\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "22a642575e67aa2e44d42bf0134720ea2239a8d6",
      "tree": "29cc04ad3394885a5357e84d17967bc53d0ba58b",
      "parents": [
        "f5d3b6668f901b5b3307645e9168cde13edaeceb"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue Apr 28 13:19:13 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 28 15:22:04 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: suppress stringsbuilder fixes in tests\n\nSuppress diagnostics in test files, where stringsbuilder fixes\nmay increase verbosity, and performance doesn\u0027t matter as much.\n\nFixes golang/go#78613\n\nChange-Id: I6c4f388add8f9074c6cdd0c3a27233bcdfd3f022\nReviewed-on: https://go-review.googlesource.com/c/tools/+/771560\nReviewed-by: Alan Donovan \u003cadonovan@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: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "f5d3b6668f901b5b3307645e9168cde13edaeceb",
      "tree": "1b8379a5d357af31dd8b2a6810eb16632f5cc80a",
      "parents": [
        "da29aa0c09400b9fe6d4f8b0543fbd7edee05171"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Sat Apr 25 09:20:26 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 28 13:54:06 2026 -0700"
      },
      "message": "internal/astutil: add UnparenCursor, UnparenEnclosingCursor\n\nUpdates golang/go#78995\n\nChange-Id: I6094b0114734ca90170111dba2477cac6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/771080\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "da29aa0c09400b9fe6d4f8b0543fbd7edee05171",
      "tree": "a92ffdcd4bf026b7808d9321c9ff837f89edf841",
      "parents": [
        "2d8078dc5c3ef9cd8bc8c5df51f531f714f4a594"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Sun Apr 26 20:33:24 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 28 05:42:50 2026 -0700"
      },
      "message": "gopls/internal/golang/completion: fix completion after dot with no RHS typed\n\nWhen the cursor is immediately after a dot (e.g., \u0027math.\u0027 or \u0027f.\u0027)\nwith no right-hand-side identifier typed and the AST is broken\ndue to syntax errors, scanToken finds no token and containingIdent\nreturned nil before inferSelector was ever called.\n\nCall inferSelector in the !pos.IsValid() branch so that the IDENT.\npattern is detected and tryInferredSelector fires in collectCompletions,\nproducing package members or struct fields as expected.\n\nFor golang/go#65529\n\nChange-Id: I006370c1e87027070f1f15d5546868174f70a122\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770900\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2d8078dc5c3ef9cd8bc8c5df51f531f714f4a594",
      "tree": "999bd962d43e5284e5de5aa00f83a9af2fbd906e",
      "parents": [
        "a70df154c7e754b914cc1fa793ef163b4b9db90c"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Sun Apr 26 13:26:41 2026 -0400"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Apr 28 05:23:43 2026 -0700"
      },
      "message": "gopls/internal/golang/completion: fix replacement range in invalid code\n\nWhen completion is triggered on an identifier that the parser\nfailed to recognize as an *ast.Ident (due to syntax errors,\ne.g., \u0027for :\u003d range pho\u0027), gopls would fall back to a zero-length\nrange at the cursor position. This caused the client to append\nthe completion instead of replacing the prefix.\n\nThis change adds a fallback in containingIdent to use the scanned\nidentifier token when the parser fails to produce an AST identifier.\nThis ensures the correct replacement range is returned.\n\nFor selector expressions in broken AST (e.g., \u0027math.Ab\u0027 after a\nsyntax error on the previous line), a new token-based inference\ndetects the IDENT.IDENT pattern and provides package member or\nmethod/field completions.\n\nFixes golang/vscode-go#4025\nFor golang/go#65529\nFor golang/go#58833\nFixes golang/go#77481\n\nChange-Id: Ia065059aea83c88d68089abdc40a814dc525030c\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770861\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\n"
    },
    {
      "commit": "a70df154c7e754b914cc1fa793ef163b4b9db90c",
      "tree": "c6f6b713822137ed6002e252839f82c351b2f3af",
      "parents": [
        "4509733fb25f61f5839afa5c7d565ab371a78bee"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Sat Apr 25 15:15:34 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Apr 27 13:47:22 2026 -0700"
      },
      "message": "internal/gcimporter: skip TestIExportData_stdlib when GOROOT is in GOMODCACHE\n\nTestIExportData_stdlib uses overlays to add a file to the errors package.\nHowever, when GOROOT is in GOMODCACHE (e.g. when using Go toolchain switch),\nthe go command forbids overlays on files in the module cache.\n\nSkip the test in this case.\n\nChange-Id: I1b4e8cdbc1b8765e964d1aeb0b38d05234161a1e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770860\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\n"
    },
    {
      "commit": "4509733fb25f61f5839afa5c7d565ab371a78bee",
      "tree": "aae0a908e8a2f960bfcdff1a5335c466f74f4968",
      "parents": [
        "262e2bd92c4e592b527f8f73bf3c0c3b09c2db4d"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Fri Apr 24 20:15:00 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 27 13:13:36 2026 -0700"
      },
      "message": "go/ast/edge: don\u0027t panic on nil iface in Get\n\nOptional fields such as IfStmt.Init may be nil. Previously,\nGet would panic when encountering a nil interface. Instead,\nreturn a nil ast.Node.\n\nChange-Id: Idf4ab7c5bfbdf1288630cb1d045528c96a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770580\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "262e2bd92c4e592b527f8f73bf3c0c3b09c2db4d",
      "tree": "e4f0c0df95c2334dcb3d9b097c4fdb225ec20638",
      "parents": [
        "6c0e6996f3e7bd4f88a578a225e428d2ebdbc745"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Thu Apr 16 15:01:12 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 27 11:42:11 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: add embedlit modernizer\n\nThis modernizer offers to simplify references to embedded fields\nin struct literals by removing unneccessary field type specifiers.\nThis rewrite is possible due to a spec change, introduced in Go1.27,\nallowing direct reference to embedded fields in struct literals.\n\nFor example:\n\ntype T struct { U }\ntype U struct { x int }\n\nT{U: U{x:1}}\n\ncan be rewritten as\n\nT{x: 1}\n\nCertain struct literals cannot be rewritten, or only partially simplified,\nif they contain unkeyed fields or ambiguous types.\n\nNote: this CL addresses patterns where values are initialized\ninside the struct, and leaves as a TODO patterns where values\nare set after struct initialization using \"dot field\" references\n(i.e. t :\u003d T{} ... t.x \u003d x  \u003d\u003e t :\u003d T{x: x}).\n\nUpdates golang/go#77965\nChange-Id: I246f2251ee55d9cb7c529b83e50ff2259eeac5d0\nReviewed-on: https://go-review.googlesource.com/c/tools/+/768240\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6c0e6996f3e7bd4f88a578a225e428d2ebdbc745",
      "tree": "b8b5cc50fe1f088fde42132a3e0cf35d86517026",
      "parents": [
        "b89135377bbde931e279998803c68f77d47d6b39"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Wed Apr 22 19:52:00 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 27 09:36:32 2026 -0700"
      },
      "message": "go/ast/edge: update Kind const doc comments\n\n- add godoc to explain the enum name syntax\n- remove the outdated Kind instability comment\n\nChange-Id: I09ea4efab1631bc46f740d2e2bb5546a6a6a6961\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770480\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "b89135377bbde931e279998803c68f77d47d6b39",
      "tree": "174cebf1bb25f1adeca1a7830b209cd04ab23242",
      "parents": [
        "093c2ddb8f61775c067305c26884ac5544d7206b"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Apr 20 23:31:22 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Apr 27 07:34:22 2026 -0700"
      },
      "message": "gopls/internal/mcp: do not push instruction by default\n\nUsers can still set up their agent\u0027s rule using\ngopls mcp --instruction\n\nFixes golang/go#78869\n\nChange-Id: I2da23f68b7ffb9819aba58eeb1552a9627d06336\nReviewed-on: https://go-review.googlesource.com/c/tools/+/769260\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "093c2ddb8f61775c067305c26884ac5544d7206b",
      "tree": "bc77bbfc9ba079e8d81529e2d9cdf5eb1e53efa6",
      "parents": [
        "f696b6b7d617156d195d5f059a170b5c3d0d7c1b"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 22 15:42:05 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 23 14:39:01 2026 -0700"
      },
      "message": "go/types/objectpath: optimize search to avoid quadratic time\n\nThe previous implementation of objectpath would search the entire\nbreadth of a package API for a field/param/result/method symbol,\nevery time it was asked to do so. If a client requests ~every\nsymbol of a large package, this results in quadratic work.\nThis was the cause of the associated bug, which caused Google\nanalysis jobs to time out.\n\nThis CL rewrites the traversal logic to avoid this quadratic\nasymptote. Now, when the search is requested, it builds an\nindex of each object\u0027s path so that it can be efficiently\nreconstructed on a subsequent call. (The traversal is recorded\nas a compressed trie of nodes that each record the index of\ntheir immediate ancestor, plus a single objectpath segment\noperation.)\n\nHowever, we don\u0027t want to construct the index on the very\nfirst call, as this would allocate O(n) memory where today\na single-use Encoder, such as the ephemeral ones created by\nobjectpath.For, allocates very little. So, the traversal has\nbeen factored so that it uses the traditional search on the\nfirst call (ix\u003d\u003dnil) and emits the compressed index at the\nstart of the second call (ix\u003d\u003dnil \u0026\u0026 ix.data\u003d\u003dnil).\nThereafter all calls hit the index.\n\nAlso:\n\n- skip local variables at the outset, now that we can\n  discriminate them thanks to go.dev/issue/70250.\n\n- test consistency between the two different search\n  strategies.\n\n- fixed one error message\n\n- benchmark of \"monstrous\" packages that exhibits the problem.\n\ndarwin/arm64 Apple M1 Pro\n\nBefore\nBenchmarkMonster/Single-8         \t     932\t   1188380 ns/op\t  164232 B/op\t       6 allocs/op\nBenchmarkMonster/Many-8           \t      45\t  25100278 ns/op\t  170480 B/op\t     204 allocs/op\nBenchmarkMonster/All-8            \t       1\t12159657083 ns/op\t 3683904 B/op\t  150004 allocs/\n\nAfter\nBenchmarkMonster/Single-8         \t     823\t   1482937 ns/op\t   82184 B/op\t       5 allocs/op\nBenchmarkMonster/Many-8           \t     100\t  12526129 ns/op\t13833970 B/op\t     773 allocs/op\nBenchmarkMonster/All-8            \t      50\t  26003344 ns/op\t18155589 B/op\t  150574 allocs/op\n\nThe Single case is 20% slower but Many is 2x faster and All case is 468x better.\nSpace usage is higher, but could perhaps be reduced by using an only-2-level trie.\n\nFixes golang/go#78893\n\nChange-Id: I8685b73b3dbefd694af292eaa8abb42fd2c451ee\nReviewed-on: https://go-review.googlesource.com/c/tools/+/769860\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f696b6b7d617156d195d5f059a170b5c3d0d7c1b",
      "tree": "2123b09a44fea516c4a01d03e6087bf5546ccc24",
      "parents": [
        "e4c23f539d7520ab784ba02e12cfffa2801494fc"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Tue Apr 07 13:45:34 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Thu Apr 23 08:22:12 2026 -0700"
      },
      "message": "gopls/internal/protocol: add existence \u0026 kind to document uri\n\nFor golang/go#76331\n\nChange-Id: I0e67afe3ba3fb4864214450fc25006c11f4b950f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763640\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e4c23f539d7520ab784ba02e12cfffa2801494fc",
      "tree": "4eeb49476105db940e1ccc405ce1e5d17f76dc87",
      "parents": [
        "d9c0b1d16d5ff49dcefa79366c0cf0a43dfd0342"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 22 15:55:02 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 22 13:42:49 2026 -0700"
      },
      "message": "gopls/internal/server: update neovim source URL\n\nChange-Id: Ic2d2a9ae19c9cb03b36daee8bad9ae1a9d10e9b2\nReviewed-on: https://go-review.googlesource.com/c/tools/+/769861\nReviewed-by: Neal Patel \u003cnealpatel@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d9c0b1d16d5ff49dcefa79366c0cf0a43dfd0342",
      "tree": "0a44febcdf3cd41790f791143bb1eeaf515b916b",
      "parents": [
        "19499e7caabca09b6ee72149a9843698ae32fb84"
      ],
      "author": {
        "name": "Connor Szczepaniak",
        "email": "cszczepaniak@gmail.com",
        "time": "Sat Apr 18 13:09:41 2026 -0500"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Apr 21 06:30:09 2026 -0700"
      },
      "message": "go/analysis/modernize: slicesbackward: skip fix for lvalue index exprs\n\nThis produces incorrect behavior: instead of mutating the slice, we\nmutate the loop variable produced by ranging over slices.Backward(s).\n\nWe consider all assignment contexts (IncDec, simple assignment, compound\nassignment) as well as taking the address of a slice to be unsafe for\nthis analyzer.\n\nFixes golang/go#78829\n\nChange-Id: Ie9229153eb82b16f83034c16656fd46bc90654cd\nReviewed-on: https://go-review.googlesource.com/c/tools/+/768660\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "19499e7caabca09b6ee72149a9843698ae32fb84",
      "tree": "ac342d482f10e433b4b67aca26eb73015dfe3e44",
      "parents": [
        "7799d73b6f6a2c2230b2150e44c3d06fd91d31fe"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Wed Apr 15 13:31:53 2026 -0400"
      },
      "committer": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Mon Apr 20 16:06:17 2026 -0700"
      },
      "message": "internal/gcimporter: copy CLs 766661 and 767521 to x/tools\n\nThis is a near-verbatim copy of CL 766661; minor naming differences\nare introduced by some drift between the pkgbits implementations in\ngo and x/tools.\n\nCL 767521 expanded the test harness for generic methods in go. That\nis replicated here accounting for differences in the test harness\nstructure between go and x/tools.\n\nChange-Id: I869452fe81e6a801bab6188b1ce5cd29f56c2231\nReviewed-on: https://go-review.googlesource.com/c/tools/+/767365\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Robert Griesemer \u003cgri@google.com\u003e\n"
    },
    {
      "commit": "7799d73b6f6a2c2230b2150e44c3d06fd91d31fe",
      "tree": "3f006e41dde94a88ca5f458f6236ffe2e03ccd3f",
      "parents": [
        "4086c79d3dad50364941db93e7e369d9c0c045b7"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Fri Apr 10 13:15:46 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 20 14:51:00 2026 -0700"
      },
      "message": "gopls/internal/golang/completion: update comment for generic methods\n\nChange-Id: I0bafbb32cb99a5c15aba42df48da5b4adce8f2b7\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765500\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Mark Freeman \u003cmarkfreeman@google.com\u003e\n"
    },
    {
      "commit": "4086c79d3dad50364941db93e7e369d9c0c045b7",
      "tree": "bd22b128fd8977461f9bd2e0de5b610ecbf3e356",
      "parents": [
        "00da4bb3ee57504ea82bc1e7085f0a26320a930d"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Sun Apr 19 13:14:07 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 20 11:47:17 2026 -0700"
      },
      "message": "gopls: don\u0027t emit shadowing modifier in the builtin pkg\n\nChange-Id: I45ac764ef1aa60881a19ff45b79f935c6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/768482\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "00da4bb3ee57504ea82bc1e7085f0a26320a930d",
      "tree": "9f7e5994fb2f627b60fc038fcf7b1fee8a063020",
      "parents": [
        "85bb37444ad2b5447a3681fadf34ccc45330bad8"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Sun Apr 12 20:18:03 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 20 09:58:02 2026 -0700"
      },
      "message": "internal/astutil: preserve [...] composite literals in PurgeFuncBodies\n\nPurgeFuncBodies deletes the contents of every outermost {...} region\nexcept struct/interface type bodies. That includes the bodies of\n[...]T composite literals, whose element count is part of the type:\npurging [...]int{1,2,3} to [...]int{} changes the type from [3]int to\n[0]int, and similarly affects constant values such as\nlen([...]int{1,2,3}).\n\nThis was harmless for the existing callers (typerefs and unimported\ncompletion both ignore composite-literal elements anyway), but it\nprevents using the purged source as a type-shape fingerprint for\ncaching.\n\nAdd a single ellipsis flag, set when \"...]\" is seen and consumed by\nthe next non-struct/interface \"{\", to preserve [...] literal bodies\nverbatim. All other composite literals are still purged, since their\ncontents don\u0027t affect the type of the enclosing declaration.\n\nAdd a table-driven test for the cases that motivated the change, and\nupdate the property test\u0027s reference oracle to match.\n\nUpdates golang/go#69523\n\nChange-Id: I52b3d41848d5c674685cd90f2be57e94dd5e0bfc\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766140\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Robert Findley \u003crfindley@golang.org\u003e\n"
    },
    {
      "commit": "85bb37444ad2b5447a3681fadf34ccc45330bad8",
      "tree": "8aaedf6eec16fee323affdc12cb68b7e7368aedd",
      "parents": [
        "ba7a50e3028f363934af7f0e98c6bf2b8f2d3b4b"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Dec 16 12:40:44 2025 -0500"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Apr 20 07:15:51 2026 -0700"
      },
      "message": "go/analysis/passes/scannererr: report failure to check bufio.Scanner.Err\n\nThis CL adds an analyzer that checks for calls to bufio.NewScanner\nfollowed by a Scanner.Scan loop that do not involve a call to\nScanner.Err.\n\nAdded to gopls\u0027 suite.\n\n+ test, doc, gopls relnote\n\nUpdates golang/go#17747\n\nChange-Id: I938c0d5b15cac7fc914899763c2c2715e5b38bf3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/730480\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "ba7a50e3028f363934af7f0e98c6bf2b8f2d3b4b",
      "tree": "c17f9222b2b749a32160a781fda2f5916bf41db9",
      "parents": [
        "52e847f712582188ab202cc2511ffba824f14bed"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Apr 13 10:37:32 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 17 19:47:05 2026 -0700"
      },
      "message": "gopls/doc/design: add integrating interactive refactoring doc\n\nThis doc is for language client maintainer focusing on how the\nlanguage client maintainer should implement the language client\nto support interactive refactoring for gopls.\n\nFor golang/go#76331\n\nChange-Id: I767b233e3cec08a6468281aebcfe64e1128b9edd\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766580\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "52e847f712582188ab202cc2511ffba824f14bed",
      "tree": "237443a291db010638f7b3fd612485cf77a752d6",
      "parents": [
        "df6c28562a275839b1d1b869f68f9accb958b1bf"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Sat Apr 11 18:02:08 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 17 11:12:02 2026 -0700"
      },
      "message": "gopls/internal/cache/methodsets: don\u0027t store positions of imported methods\n\nPreviously, when a type embeds a type from another package, the\nmethodsets index recorded the byte offset of the promoted method\u0027s\ndeclaration in the imported file. This made the index\u0027s content depend\non the source positions of imported packages, which in turn forces\nph.key to incorporate full content hashes of all reachable dependencies.\n\nThis CL removes that dependency: gobMethod.Posn is recorded only for\nmethods declared in the package being indexed. For promoted-from-import\nmethods, the (PkgPath, ObjectPath) pair already stored in the index is\nsufficient to locate the declaration at query time, by looking it up in\nthe declaring package\u0027s own index via the new Index.LocationOf method.\n\nThe Implementation query (the only consumer of Result.Location) now\nloads methodsets indexes for all packages, builds a map by package path\n(for method queries only; type queries always have local positions),\nand resolves zero-location results through the declaring package\u0027s\nindex. References (the other Search caller) uses only PkgPath/ObjectPath\nand is unaffected.\n\nLocationOf is backed by a per-index objectpath→position map, built\nlazily on the first call (via sync.Once) so the cost is paid only for\nthe few packages that are actually the target of a cross-package\nlookup, while keeping each subsequent lookup O(1). This matters for\ngenerated packages with very large method sets.\n\nThe new marker tests embed-crosspkg.txt and embed-crosspkg-variants.txt\nexercise the resolution path for plain, multi-level, pointer, generic,\nand interface embedding. The marker test runner sets bug.PanicOnBugs,\nso a resolution failure (which falls through to bug.Reportf) fails the\ntest even though deduplication might otherwise mask it.\n\nThis is a prerequisite for switching ph.key to use declaration-level\nhashes (ignoring function bodies and comments) for dependency\ncontributions, which will dramatically reduce cache invalidation on\nbody-only edits.\n\nBenchmarkImplementations/tools is unaffected (wall ~, CPU ~; the\nbenchmark queries a type, so the byPkgPath map is not built).\n\nUpdates golang/go#69523\n\nChange-Id: Iac7843e29e32f6e818b60aab6b53375cf58b5263\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765960\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "df6c28562a275839b1d1b869f68f9accb958b1bf",
      "tree": "be572e740887c1de83176c095bf693ab3ce9bd50",
      "parents": [
        "1f392cc2b528d531aef4d3c89cb6fd512fa7c325"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Thu Apr 09 01:19:19 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 17 11:11:56 2026 -0700"
      },
      "message": "gopls/internal/golang: pre-filter identifiers by name in localReferences\n\nBuild a set of target object names and skip identifiers whose name is\nnot in the set before consulting TypesInfo.Uses. Also add a fast path\nto containsOrigin: check for an exact match first, and return false\nimmediately when origin(obj) \u003d\u003d obj (the non-generic case) since the\nexact-match check is then exhaustive.\n\nBenchstat on x/tools, incremental over the parent CL (Xeon 8488C):\n\n                    │   parent    │              this CL                │\n                    │   sec/op    │   sec/op     vs base                │\nReferences/tools-64  3.765m ± 2%   2.221m ± 3%  -41.02% (p\u003d0.000 n\u003d10)\n\n                    │ cpu_seconds/op │ cpu_seconds/op  vs base          │\nReferences/tools-64    4.023m ± 7%     1.550m ± 35%  -61.46% (p\u003d0.000 n\u003d10)\n\nUpdates golang/go#69523\n\nChange-Id: I58d32eebeb3fce5072af666d99999c9fc978aaa6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763742\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\n"
    },
    {
      "commit": "1f392cc2b528d531aef4d3c89cb6fd512fa7c325",
      "tree": "de7b3c6fca45a0c8943ac0780f47b360e9f379dd",
      "parents": [
        "6f9ca2c0fc018f4d047bca7b8443b60132821b65"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Mar 26 14:48:54 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 16 15:36:32 2026 -0700"
      },
      "message": "gopls/internal/analysis/yield: use monotone flow for precision\n\nThis change replaces the simple, ad-hoc DFS reachability analysis\nwith a path-sensitive forward monotone dataflow analysis using the\nnew internal/flow framework.\n\nBy modeling the analysis facts as sets of conditional constraints,\nthe analyzer accurately correlates the return value of yield calls\nwith their assigned boolean variables and subsequent control flow\nacross join blocks (phi nodes). This prevents false positives when\nbooleans are merged and re-checked, and also eliminates potential\nfalse negatives and order-dependency issues inherent to the previous\nDFS implementation.\n\n+ tests\n\nFixes golang/go#76803\n\nChange-Id: I7c98ee08452b44ec97dab1306cddbd9dfa475708\nReviewed-on: https://go-review.googlesource.com/c/tools/+/760481\nReviewed-by: Austin Clements \u003caustin@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: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "6f9ca2c0fc018f4d047bca7b8443b60132821b65",
      "tree": "e1c2f6234f5c9d40d730b4016a1dfc0b537cee62",
      "parents": [
        "bbb545213f1ed191ca3dabd4863c4b0f4f0d22d5"
      ],
      "author": {
        "name": "Akihiro Suda",
        "email": "akihiro.suda.cz@hco.ntt.co.jp",
        "time": "Wed Apr 15 05:46:24 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 15 10:55:50 2026 -0700"
      },
      "message": "gopls/internal/cache: set Pass.Module\n\nFollow-up to https://github.com/golang/go/issues/73878#issuecomment-4248724973\n\n\u003e I think the necessary gopls changes would go in\n\u003e gopls/internal/cache/analysis.go, where the Pass is constructed,\n\u003e and should copy fields from apkg.pkg.Metadata().Module to the Pass,\n\u003e similar to your other changes.  (I don\u0027t think any changes are needed to\n\u003e analysisNode.cacheKey.) Thanks.\n\nUpdates golang/go#73878\n\nChange-Id: I3f03b5fd59e6acaa930ac741356be33a7b8e45ff\nGitHub-Last-Rev: faefdb6b2fa40369badb080837e52897f0eb9344\nGitHub-Pull-Request: golang/tools#638\nReviewed-on: https://go-review.googlesource.com/c/tools/+/767100\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "bbb545213f1ed191ca3dabd4863c4b0f4f0d22d5",
      "tree": "3454bfcc803f33ec5c151b47d6b3859a7405cd5e",
      "parents": [
        "ed120f5d01761a6a85de59cd0b94c7a43555edbb"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Wed Apr 15 12:04:54 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Wed Apr 15 10:50:19 2026 -0700"
      },
      "message": "gopls/test/integation/misc: Add logging for flaky test\n\nWatchflakes reports that Test61208/default is flaky. This CL\nadds diagnoistic information to help find the cause.\n\nFixes: golang/go#78680\nChange-Id: I0d7463070b1729bf14e5a2830391c8a6066a45ed\nReviewed-on: https://go-review.googlesource.com/c/tools/+/767361\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "ed120f5d01761a6a85de59cd0b94c7a43555edbb",
      "tree": "1bd48ecdd296380253e1d45db8dc3eba74e47cb4",
      "parents": [
        "90fb92ed698b8b9bb2f11b913496a9046925eac2"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Fri Apr 10 16:39:09 2026 -0400"
      },
      "committer": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Wed Apr 15 10:42:48 2026 -0700"
      },
      "message": "internal/gcimporter: remove incorrect r.Bool() read\n\nThis was meant to be an exact copy of this snippet from the compiler\u0027s\nimporter:\n\n        nreceivers :\u003d 0\n        if r.Version().Has(pkgbits.GenericMethods) {\n                nreceivers \u003d r.Len()\n        }\n        nexplicits :\u003d r.Len()\n\nAn additional r.Bool() read was likely copied from a similar version\ncheck nearby; it\u0027s not the appropriate version check in this case. This\ncopy / paste error was unfortunately copied to the x/tools importer too.\n\nChange-Id: Ief32e797f9e251d935a298e7b069b54f98fad943\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765504\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Robert Griesemer \u003cgri@google.com\u003e\n"
    },
    {
      "commit": "90fb92ed698b8b9bb2f11b913496a9046925eac2",
      "tree": "1ec3ef6efd653eb2c90e07f766634641d5095921",
      "parents": [
        "a1fde6293bcde125582fb6833241b5bac71fa607"
      ],
      "author": {
        "name": "abhay1999",
        "email": "abhaychaurasiya19@gmail.com",
        "time": "Wed Apr 15 03:12:45 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 15 07:13:27 2026 -0700"
      },
      "message": "modernize/stringscut: simplify Split/SplitN[0] to strings.Cut\n\nExtend the stringscut analyzer to recognize the common pattern where\nstrings.Split or strings.SplitN(s, sep, 2) is immediately indexed at\n[0] and suggest replacing it with strings.Cut, which was added in\nGo 1.18.\n\nFor example:\n\n\tx :\u003d strings.SplitN(s, sep, 2)[0]\n\nis rewritten to:\n\n\tx, _, _ :\u003d strings.Cut(s, sep)\n\nThe same fix applies to strings.Split(s, sep)[0].\n\nCorrectness: for all values of s and sep (including the empty\nseparator), strings.Split(s,sep)[0] and strings.SplitN(s,sep,2)[0]\nare both equal to the \"before\" value returned by strings.Cut(s,sep).\nThe transformation is unconditionally safe for index [0].\n\nIndex [1] from plain strings.Split is intentionally excluded because\nits semantics differ from the \"after\" value of strings.Cut when the\nseparator appears more than once.\n\nOnly the inline [0] pattern is handled: single-LHS short or regular\nassignment with no blank identifier on the left. Patterns where the\nresult is stored in a variable first are left alone.\n\nFixes golang/go#74494\n\nChange-Id: I285ee7218e45875f2a6149ee003c75c6427282af\nGitHub-Last-Rev: 53a8b7de499a4b8fc5fe3726bfd2aef5f27fe3a8\nGitHub-Pull-Request: golang/tools#629\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762080\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "a1fde6293bcde125582fb6833241b5bac71fa607",
      "tree": "72a2e4d2e5e59e7052ba6288b5f1f75c3e687a36",
      "parents": [
        "b2d7a5d855ba3969df5a36f33e771e903a6efed1"
      ],
      "author": {
        "name": "dorbmon",
        "email": "dorbmons@gmail.com",
        "time": "Mon Apr 13 13:34:44 2026 -0400"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue Apr 14 13:18:04 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: avoid invalid stringscut fixes in multi-assignments\n\nThe stringscut modernizer could rewrite Index calls that appear in\nmulti-value assignments, producing invalid code such as:\n\n    ret, before, _, ok :\u003d 0, strings.Cut(s, sub)\n\nRestrict the fix to single-name, single-value definitions, and add a\nregression test covering the multi-assignment case.\n\nFixes golang/go#78643\n\nChange-Id: I959ecd0eff812e0d262932952ed344667d63f9e4\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766600\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "b2d7a5d855ba3969df5a36f33e771e903a6efed1",
      "tree": "47df67d134b9a118e7fa56b8f0f17274be523db5",
      "parents": [
        "80ab561d150ebbe29a88104fe10e3b7dd5ec2bd4"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Apr 13 15:34:32 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 14 12:58:22 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: fix stringsbuilder self-referencing bug\n\nFixes a bug in the stringsbuilder modernizer where self-referencing assignments like \"s +\u003d s\" result in invalid code like \"s.WriteString(s).String()\".\n\nThe modernizer processes uses of the variable independently. For \"s +\u003d expr\", it generates an edit to replace \" +\u003d \" with \".WriteString(\" and another to append \")\" at the end of the statement. For rvalue uses of \"s\", it appends \".String()\".\n\nWhen \"s\" appears at the very end of \"expr\" (as the rightmost identifier), the \".String()\" edit and the closing \")\" edit target the same position. We need to emit the \".String()\" edit before the closing \")\" edit to avoid suggesting a bad fix.\n\nFixes golang/go#78465\n\nChange-Id: I6e7e9e468de6e80cff52dc352ff436266c12acc3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766680\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "80ab561d150ebbe29a88104fe10e3b7dd5ec2bd4",
      "tree": "c947b41710c4656c05cd57ecd9d2f68daf5d0f64",
      "parents": [
        "c427cadf32c9ebce60868312260588ba8e3a37ff"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Sat Mar 28 11:12:36 2026 +0100"
      },
      "committer": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Tue Apr 14 11:49:15 2026 -0700"
      },
      "message": "internal/refactor/inline: analyze param and result type params\n\nPreviously, type parameter references were only analyzed\nin the function body. This change analyzes the function params\nand result types to find type parameter references.\n\nFixes golang/go#78435\n\nChange-Id: I393f8c2d5838061b658fcfbff66b1c186a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/760720\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nAuto-Submit: Mateusz Poliwczak \u003cmpoliwczak34@gmail.com\u003e\n"
    },
    {
      "commit": "c427cadf32c9ebce60868312260588ba8e3a37ff",
      "tree": "12c1049eee722940821536c58902b6fd4d6d5590",
      "parents": [
        "4eb326e669c1bd55b80f985e2026ad39cb993a19"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Wed Apr 08 18:53:42 2026 +0000"
      },
      "committer": {
        "name": "Robert Findley",
        "email": "rfindley@anthropic.com",
        "time": "Tue Apr 14 07:48:56 2026 -0700"
      },
      "message": "gopls/internal/cache: store analyzeSummary fields on analysisNode\n\nReplace analysisNode.summary with separate compiles and actions fields,\ncopied from the *analyzeSummary returned by runCached. The summary\nitself is no longer retained, so it can be safely shared via filecache\nor inFlightAnalyses without a defensive copy, and decrefPreds now nils\nthe node-local actions field rather than mutating a shared struct.\n\nThis lets runCached use filecache.Get with analyzeSummaryCodec.Decode\ndirectly, caching the decoded summary in memCache like the other kinds.\n\nChange-Id: I1c890053fef709ebe2f7da7543a0e7280b4d0b8a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764320\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\n"
    },
    {
      "commit": "4eb326e669c1bd55b80f985e2026ad39cb993a19",
      "tree": "0bfc8ca6f26ac06260259e2b03d2ec73083c6705",
      "parents": [
        "feab5c9d548513128b2b5a9700fc6e7deb52804b"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Wed Apr 08 18:30:46 2026 +0000"
      },
      "committer": {
        "name": "Robert Findley",
        "email": "rfindley@anthropic.com",
        "time": "Tue Apr 14 07:48:51 2026 -0700"
      },
      "message": "gopls/internal/util/frob: change Codec.Decode to return the value\n\nChange Codec[T].Decode from Decode(data, *T) to Decode(data) T. This\nreads more naturally at every call site and lets the method value be\npassed directly as a filecache.Get decoder.\n\nChange-Id: I9912fb96b468a7b993174351110a89e021c74038\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764240\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "feab5c9d548513128b2b5a9700fc6e7deb52804b",
      "tree": "87294b94c86299a0395a825baa56b98284985ad4",
      "parents": [
        "5923b299c3ff2c472a06ae72539e206a4aa7f16c"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Tue Apr 07 20:47:27 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 14 06:50:41 2026 -0700"
      },
      "message": "gopls/internal/cache: try pre func before getPackageHandles in forEachPackage\n\nFor packages whose handle already has a valid key (state \u003e\u003d validKey),\ntry the pre func (typically a filecache lookup) before calling\ngetPackageHandles. This avoids the dependency-graph traversal in the\ncommon steady-state case where every requested package\u0027s result is\nalready cached.\n\nThe existing fast path only fires for state \u003e\u003d validPackage (full\nsyntax package cached in memory). This adds a second fast path: if\nthe handle has a valid key and pre returns false (cache hit), the\npackage is skipped without building the dependency graph.\n\nCombined with the parent CL, which makes pre\u0027s filecache lookup an\nin-memory hit, this completes the steady-state fast path for\nImplementations and similar queries.\n\nBenchstat on x/tools, incremental over the parent CL (Xeon 8488C):\n\n                          │   parent    │              this CL                │\n                          │   sec/op    │   sec/op     vs base                │\nImplementations/tools-64   4.859m ± 13%   1.492m ±  6%  -69.29% (p\u003d0.002 n\u003d6)\nReferences/tools-64        3.913m ±  2%   3.854m ±  6%        ~ (p\u003d0.218 n\u003d6+10)\nWorkspaceSymbols/tools-64  7.426m ±  2%   7.654m ±  1%        ~ (n\u003d6+10)\n\n                          │ cpu_seconds/op │ cpu_seconds/op  vs base          │\nImplementations/tools-64    9.444m ± 25%     1.659m ± 42%  -82.43% (p\u003d0.002 n\u003d6)\nReferences/tools-64         5.941m ± 38%     4.392m ±  9%  -26.07% (n\u003d6+10)\n\nUpdates golang/go#69523\n\nChange-Id: I28a233043cda63b5af26b5a0283f084a19bc1e68\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763860\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "5923b299c3ff2c472a06ae72539e206a4aa7f16c",
      "tree": "7cfba39804f5e9d1fe2a4dbe94c695f55497e1c8",
      "parents": [
        "55fb96ff894f9dfaf7ed2e44e80127624a0b6eb4"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Mar 30 11:13:13 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 14 05:19:18 2026 -0700"
      },
      "message": "gopls/internal/golang/hover: include doc comment for assign stmts\n\nFor assign statements, hover information now includes any comment\non the line immediately preceding the assignment, as long as the\ncomment begins at the start of the line.\n\n// Hover information now includes this comment.\nfoo :\u003d \"foo\"\n\nbar :\u003d \"bar\" // Hover over buzz below does not include this comment.\nbuzz :\u003d \"buzz\"\n\nFixes golang/go#78274\n\nChange-Id: I28279a86a8d393cc7583d9a8ac55b0e7cff77076\nReviewed-on: https://go-review.googlesource.com/c/tools/+/761080\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nAuto-Submit: 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"
    },
    {
      "commit": "55fb96ff894f9dfaf7ed2e44e80127624a0b6eb4",
      "tree": "8857531ba19d54162f1a8e7348d789b42c881475",
      "parents": [
        "32ecccb5716cb5ce02cb31ae06f65e8701825f94"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Apr 13 09:03:23 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 13 23:20:52 2026 -0700"
      },
      "message": "gopls/doc/features: add documentation for implement interface\n\nWith screenshots demonstrate the user interaction flow.\n\nFor golang/vscode-go#1547\n\nChange-Id: Id736b8271b9bc25f9acebe89df7ba43cbee5adaf\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766320\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: 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"
    },
    {
      "commit": "32ecccb5716cb5ce02cb31ae06f65e8701825f94",
      "tree": "4ecbfcd8bf32b99be509fce7d2daa1e1d2e07126",
      "parents": [
        "8f5e25d821d13d0087544724ed8ec6cbef0fc45a"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Tue Apr 07 10:18:31 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 13 23:20:45 2026 -0700"
      },
      "message": "gopls/doc/features: add interactive refactoring feature doc\n\nEmbed the documentation for interactive code actions into\nthe \"Code Actions\" section, focusing on the user experience\nfor Go developers.\n\nFor golang/go#76331\n\nChange-Id: Ieb705e26472da2f3b15c15e370c40acccedb2973\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763440\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "8f5e25d821d13d0087544724ed8ec6cbef0fc45a",
      "tree": "e895ca16b43e05bf62b4030ba35f1c58651423cb",
      "parents": [
        "03be674c6d7834f92d06bcbb2c4b6e8111fbd399"
      ],
      "author": {
        "name": "Dmitri Shuralyov",
        "email": "dmitshur@golang.org",
        "time": "Mon Jun 05 18:15:15 2023 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 13 14:02:05 2026 -0700"
      },
      "message": "gopls: remove trailing slash from replace directory path\n\nIt used to not be possible to use a \"..\" path (without a trailing slash)\nin the replace directive due to go.dev/issue/60572. By now, that bug is\nfixed in all supported versions of Go, so this ever-so-slightly simpler,\nshorter, cleaner path can be used.\n\nFor golang/go#60572.\n\nChange-Id: Iabc2e41972545bb442195a649fac75c08d3d0eb3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/501016\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nAuto-Submit: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\nReviewed-by: Michael Matloob \u003cmatloob@golang.org\u003e\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "03be674c6d7834f92d06bcbb2c4b6e8111fbd399",
      "tree": "cea619b5d95411a4e80c381f4c81b836b2226908",
      "parents": [
        "12d372a3580a449910d172af57bc649377af4b43"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Apr 13 09:43:34 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Apr 13 07:09:50 2026 -0700"
      },
      "message": "gopls/internal/settings: rename from file uri to document uri\n\nThe form.go clearly state the kind is \"documentURI\".\n\nFor golang/go#76331\n\nChange-Id: I45bc1af80f737d9d44c73620849015c3943bd9f1\nReviewed-on: https://go-review.googlesource.com/c/tools/+/766340\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "12d372a3580a449910d172af57bc649377af4b43",
      "tree": "d8c951d8f5a6abcb48c2d9b4b3724b0c5cac6bf8",
      "parents": [
        "746b959debf8e54650c0a69332595941289d1a62"
      ],
      "author": {
        "name": "Akihiro Suda",
        "email": "akihiro.suda.cz@hco.ntt.co.jp",
        "time": "Fri Apr 10 22:33:20 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 13 03:42:41 2026 -0700"
      },
      "message": "go/analysis/unitchecker: add Config.Module\n\nFollow-up to https://go-review.googlesource.com/c/tools/+/676455/comments/34707247_5e471a91\n\n\u003e The next step is to make the corresponding change to unitchecker, used by go vet/fix.\n\u003e You\u0027ll need to add fields to x/tools/go/analysis/unitchecker.Config first,\n\u003e then to cmd/go/internal/work.vetConfig to populate the data.\n\nUpdates golang/go#73878\n\nChange-Id: Ia3a5f309bbe0272c39d24af1bdbc9a85bcec2b09\nGitHub-Last-Rev: 4b4f231e4056f3d4158918b83f8c90c2bd1f7128\nGitHub-Pull-Request: golang/tools#635\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765402\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\n"
    },
    {
      "commit": "746b959debf8e54650c0a69332595941289d1a62",
      "tree": "2e2b5741b132eaa9d82a2fbc7288d59a5979574a",
      "parents": [
        "737b7a8ffa41af03781e6006da7354d4b574c1c7"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Apr 10 13:33:09 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Apr 10 13:28:57 2026 -0700"
      },
      "message": "x/tools: run slicesbackward analyzer\n\nI renamed the loop vars in most cases, which suggests the analyzer\ncould use a better heuristic for the name. For example, use the LHS\nof a following y :\u003d x or switch y :\u003d x.(type) statement, or use the\nsingular of the range operand if its name is a plural.\n\nI also manually fixed one error due to golang/go#78629\n\nChange-Id: I32b5f08f1adcac8761ebd8984f4bde28a05af0fd\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765305\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "737b7a8ffa41af03781e6006da7354d4b574c1c7",
      "tree": "acdf85984c7bc8bf4896e86e72bb3e85c3639bd2",
      "parents": [
        "22577d4a4aa26f14201108391673cb3f9df39573"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Apr 10 13:46:54 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 10 12:31:16 2026 -0700"
      },
      "message": "gopls/internal/test/marker: send SIGABRT to stuck go commands\n\nThis flag causes gocommand to SIGABRT a slow go command\n(in the hope of getting a useful backtrace) before terminating\nthe current process. It was set in the integration test\nframework; this CL sets it in the marker test framework too.\n\nFor golang/go#78616 and a million others.\n\nChange-Id: Iae1e23c06d0f1919b3abb55665afe8afe3663105\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765306\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "22577d4a4aa26f14201108391673cb3f9df39573",
      "tree": "629d94fc07b0ad49eb685c87e011dea4161160b3",
      "parents": [
        "f045b047b729bbb193f2a0ceda7c6b457c2e4149"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Apr 06 19:44:04 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Apr 10 10:51:57 2026 -0700"
      },
      "message": "gopls: add test cases for embedded fields in struct literals\n\nGo1.27 supports direct reference to embedded fields in struct literals.\nGopls needs to handle Completion, Hover, Fill Struct,\nGo To Definition, Diagnostics.\n\nFor golang/go#78553\n\nChange-Id: If20dfc0fbfd41c1b9cb05a87845f3cc739d3e01c\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763220\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f045b047b729bbb193f2a0ceda7c6b457c2e4149",
      "tree": "b3cd896de45de38078e46cdbe90f69b8f443d4bb",
      "parents": [
        "05c94c15f756c0d9644f31fd8663b0caf504196e"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Thu Apr 09 15:45:14 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 10 09:52:27 2026 -0700"
      },
      "message": "go/packages: improve error message for export data issues\n\nRecent errors decoding new features of go1.27 unified export data get\nsurfaced rather cryptically. This change keeps track of the error\ncoming from export data reading and reports it instead.\n\nChange-Id: I5828439b086288b1d77dcb86ea3989c4158e4f5e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764940\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Mark Freeman \u003cmarkfreeman@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "05c94c15f756c0d9644f31fd8663b0caf504196e",
      "tree": "0c2c8cad396c86a1668e30836e4dcd626368ee87",
      "parents": [
        "70a439378b3d33d8a20bdf78e895fa83de52b965"
      ],
      "author": {
        "name": "abhay1999",
        "email": "abhaychaurasiya19@gmail.com",
        "time": "Wed Apr 08 11:09:29 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 20:15:40 2026 -0700"
      },
      "message": "gopls/completion: prepend space when completing right after \"//\" before a declaration\n\nWhen a user places the cursor immediately after \"//\" (no space) on a\nline directly above a declaration, gopls already suggests the\ndeclaration name as a completion candidate. However the inserted text\nlacked the conventional space, producing \"//Name\" instead of the\nproper Go doc comment form \"// Name\".\n\nDetect this case in populateCommentCompletions (cursor at slash+2\nwith comment text exactly \"//\") and set a new\ncommentNeedsLeadingSpace flag on the completionContext. item() checks\nthe flag and prepends a space to the insert text (and snippet), so\naccepting the completion yields \"// Name\".\n\nA marker test is added to comment.txt asserting that a function name\nis offered when the cursor is right after \"//\" directly above its\ndeclaration. All existing completion marker tests continue to pass.\n\nFixes golang/go#76374\n\nChange-Id: Ibc91170861ad8a142b5cc9bb85d57313d92929b8\nGitHub-Last-Rev: 19eb9ed9ba82532d08c90f92b0c5e5e3c8262a03\nGitHub-Pull-Request: golang/tools#630\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762540\nTryBot-Bypass: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "70a439378b3d33d8a20bdf78e895fa83de52b965",
      "tree": "4cb89defe253bc03683715ba3713b8d4f0328f6f",
      "parents": [
        "35c2de90c25de2d307fba9a657e8765d40279dd5"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Apr 09 18:13:19 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 18:09:25 2026 -0700"
      },
      "message": "internal/modindex: fix clock race causing test flakes\n\ntime.Now uses a high-res VDSO timer, but on Linux the clock used to\nset file mtimes is lower res and may lag. This leads to a\nrace that causes TestIncremental{,Nope} to flake.\n\nThis CL subtracts 1s from the high-res time so that it is not\nbehind the file mtime.\n\nFixes golang/go#74658\n\nChange-Id: I7e2cca4adbd66c918325ea88d7d9cb3494456441\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765120\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "35c2de90c25de2d307fba9a657e8765d40279dd5",
      "tree": "f625157977a340834cc8ca81a51ac67ddf903980",
      "parents": [
        "a2402e74052d315b2295bfd6322195d2d0c0e7ad"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Apr 09 13:25:53 2026 -0400"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Apr 09 16:00:30 2026 -0700"
      },
      "message": "gopls/doc/release: add months to release notes\n\nChange-Id: Ie39d3cafa78fce6ab25e04816c4bac0d2f091a5f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764701\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "a2402e74052d315b2295bfd6322195d2d0c0e7ad",
      "tree": "bd9b28783f2a5aa0b09c5650332ff0391ac0c26a",
      "parents": [
        "bf6f73725faeb7d7e080e5abb1d9de0cf662c7be"
      ],
      "author": {
        "name": "Dmitri Shuralyov",
        "email": "dmitshur@golang.org",
        "time": "Thu Apr 09 17:22:01 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 15:36:41 2026 -0700"
      },
      "message": "gopls/doc: simplify \u0027supported Go versions\u0027 section\n\nBased on suggested text by Alan in CL 764860.\n\nFor golang/go#69321.\n\nChange-Id: I123b16c5b263376b75d1221a972a37a7d3cab20b\nCo-authored-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/765040\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "bf6f73725faeb7d7e080e5abb1d9de0cf662c7be",
      "tree": "5d4720c2fe001ec8014456cfb9cb0a4296ced4c9",
      "parents": [
        "40fc9c0e3334ed7cb447f0e810d4fb6c2d958ca0"
      ],
      "author": {
        "name": "Dmitri Shuralyov",
        "email": "dmitshur@golang.org",
        "time": "Thu Apr 09 15:22:23 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 15:20:47 2026 -0700"
      },
      "message": "gopls/doc: update go command version support description\n\nStarting with gopls@v0.17.0, the _go command version_ narrowed\nfrom 4 versions to 3, and starting with gopls@v0.18.0 it narrowed\nfrom 3 versions to 2.\n\nThis was documented accurately in the gopls v0.17.0 release notes at\nhttps://go.dev/gopls/release/v0.17.0#go-command-compatibility-the-2-most-recent-major-go-versions.\nUpdate the \u0027Supported Go versions\u0027 section accordingly, and simplify\nit to talk about the current policy without the details of how we got\nto it.\n\nFor golang/go#69321.\n\nChange-Id: Ia99ef6e1eee08fa34f15349f72996c162ec3b614\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764860\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "40fc9c0e3334ed7cb447f0e810d4fb6c2d958ca0",
      "tree": "3608610daa6bae9a1f97fba30d308021a40a9720",
      "parents": [
        "2fd0e259eda65e6d63dd72437485e0616556ba07"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Wed Apr 01 10:06:10 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Thu Apr 09 14:55:51 2026 -0700"
      },
      "message": "gopls/internal/test/integragtion: remove obsolete Settings\n\nThe setting \"importsSource\": settings.ImportSourceGopls\nis the default, so there is no point to setting in in tests, and\nmaintainers might well wonder why it was set in some tests and not in\nothers.\n\nThis CL (thank you jetski) removes the setting from tests.\n\nChange-Id: I78868c19b66a0ffdb27789b17ae4d9f5b7548621\nReviewed-on: https://go-review.googlesource.com/c/tools/+/761800\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2fd0e259eda65e6d63dd72437485e0616556ba07",
      "tree": "78c800e8d56bfec1095fd08a96c1da4fe682401c",
      "parents": [
        "3dd188df80fd3563559f02e4eeb10ba1043cce55"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Sun Apr 05 16:48:33 2026 +0200"
      },
      "committer": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Thu Apr 09 14:02:18 2026 -0700"
      },
      "message": "gopls: add shadowing semantic token modifier\n\nFixes #75368\n\nChange-Id: I6a6a6964b6326f0da679690a59d969eed6cf8cfb\nReviewed-on: https://go-review.googlesource.com/c/tools/+/702555\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "3dd188df80fd3563559f02e4eeb10ba1043cce55",
      "tree": "1716fa00806547e9bb649386014f404147cc3144",
      "parents": [
        "aebd87084e63fd3aa0a5222eeae28af6c2e33629"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 12:34:16 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 14:00:41 2026 -0700"
      },
      "message": "go.mod: update golang.org/x dependencies\n\nUpdate golang.org/x dependencies to their latest tagged versions.\n\nChange-Id: Ie34edd311893beb703c5b98e9cd07366aee79c12\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764901\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n"
    },
    {
      "commit": "aebd87084e63fd3aa0a5222eeae28af6c2e33629",
      "tree": "ee8ee03472adedf26894338eb0b62f59b06dea30",
      "parents": [
        "5357b43c088d8403d5fcd9992431db0a351ce922"
      ],
      "author": {
        "name": "acehinnnqru",
        "email": "acehinnnqru@gmail.com",
        "time": "Wed Apr 08 23:33:03 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 13:20:32 2026 -0700"
      },
      "message": "gopls: improve doc link matching to support links followed by a colon\n\nThe existing `docLinkRegex` fails to handle cases like `[Demo]: demo`,\nwhich are valid. This change introduces a new helper function,\n`findDocLinkIndices`, to correctly locate doc link indices. In the mean\ntime, changing the `docLinkRegex` to find out all the matched positions.\n\nFixes golang/go#75925\n\nChange-Id: I359990d9c71c73bad5869c280af74dd301f96338\nReviewed-on: https://go-review.googlesource.com/c/tools/+/715240\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5357b43c088d8403d5fcd9992431db0a351ce922",
      "tree": "76ed6428c48494fc7f7441241c09adcbb4b84179",
      "parents": [
        "bf04c618d518f244d26fb5c7ad77d893f8b1fc4d"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Thu Apr 09 12:00:41 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 13:09:54 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: rangeint: handle type parameter constraints\n\nThe loop index of a range loop cannot be a type parameter constrained by multiple distinct integer types, nor a type parameter constrained by non-integer types.\n\nThis CL updates the rangeint modernizer to detect these cases and avoid suggesting a fix.\n\nIt also updates the documentation of typeparams.CoreTypes, whose concept was used in this implementation.\n\nFixes golang/go#78571\n\nChange-Id: Id897c8f4be80c96cf258b71e7879721339cee7dd\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764660\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "bf04c618d518f244d26fb5c7ad77d893f8b1fc4d",
      "tree": "40fa3184ccb2fe225a98d65ed76a6cfa48229c46",
      "parents": [
        "0ae2de027e10d7a0530ecf7ccc2db8df8aa5dcb3"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Apr 09 13:11:52 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Apr 09 11:45:37 2026 -0700"
      },
      "message": "go/types/internal/play: show normal terms of selected type\n\nChange-Id: Ib6c5f55e58808ea31486cb492c75da3c5f1cb647\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764661\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "0ae2de027e10d7a0530ecf7ccc2db8df8aa5dcb3",
      "tree": "cf72663ed536b4d0d02e9d219fe8e74c5707e787",
      "parents": [
        "8e51a5fb67f9b3e2b32792f21e727664ca6561e2"
      ],
      "author": {
        "name": "Rob Findley",
        "email": "rfindley@anthropic.com",
        "time": "Mon Apr 06 20:09:06 2026 +0000"
      },
      "committer": {
        "name": "Robert Findley",
        "email": "rfindley@anthropic.com",
        "time": "Thu Apr 09 06:34:17 2026 -0700"
      },
      "message": "gopls/internal/filecache: cache decoded objects in memCache\n\nGeneralize the in-memory LRU in front of the filecache to hold either\nraw bytes or decoded objects, and make Get generic over the decoded\ntype. On a memory-cache hit Get returns the previously decoded value\ndirectly; on a hit holding raw bytes (from a recent Set) it decodes\nonce and upgrades the cached entry in place. This avoids repeated\ndeserialization for hot read paths such as xref and method-set indexes\nwhile preserving the existing Set/Get fast path.\n\nGet now takes a decoder; the new filecache.Bytes identity decoder is\nprovided for callers that want raw bytes. Each kind must be used with\nexactly one decoded type.\n\nConvert the content-addressed read sites in package cache (xrefs,\nmethodsets, symbols, diagnostics, tests, export data, typerefs) and\nfilewatcher to pass their decoders. xrefs.Index is now NewIndex\nreturning a decoded *Index, with encoding deferred to\nstorePackageResults alongside the other indexes.\n\nAlso remove the now-obsolete debugging assertions for golang/go#66732.\n\nBenchstat on x/tools (Xeon 8488C, linux/amd64):\n\n                          │   before    │              after                  │\n                          │   sec/op    │   sec/op     vs base                │\nImplementations/tools-64   4.941m ± 2%   4.859m ± 13%       ~ (p\u003d0.310 n\u003d6)\nReferences/tools-64        5.920m ± 1%   3.913m ±  2%  -33.91% (p\u003d0.002 n\u003d6)\nWorkspaceSymbols/tools-64  8.861m ± 2%   7.426m ±  2%  -16.19% (p\u003d0.002 n\u003d6)\n\n                          │ cpu_seconds/op │ cpu_seconds/op  vs base          │\nImplementations/tools-64    19.00m ± 18%     9.444m ± 25%  -50.29% (p\u003d0.002 n\u003d6)\nReferences/tools-64         10.52m ± 26%     5.941m ± 38%  -43.50% (p\u003d0.009 n\u003d6)\nWorkspaceSymbols/tools-64   35.91m ± 20%     26.31m ± 18%  -26.74% (p\u003d0.002 n\u003d6)\n\nImplementations sees no wall-clock change because methodset decode\nruns in parallel and is not on the critical path; the CPU reduction\nis still significant.\n\nUpdates golang/go#69523\nChange-Id: Ic6cf05669da822fd6dd3afa925e62c2da301c78a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763240\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "8e51a5fb67f9b3e2b32792f21e727664ca6561e2",
      "tree": "6ce2bd17f95eac978e3cf15def67bfe179ead1e5",
      "parents": [
        "5005b9e710b3c1eef7e5077c77289410729919ec"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Wed Apr 08 04:26:08 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Thu Apr 09 05:34:23 2026 -0700"
      },
      "message": "go/ssa: support direct references to embedded fields in struct lit\n\nFor golang/go#78553\n\nChange-Id: If5a8fbeecefd13cd27848abea981fa95ff5a5d18\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763920\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5005b9e710b3c1eef7e5077c77289410729919ec",
      "tree": "90a748dce957c6a11ecc0e74a3f30c2b6c683242",
      "parents": [
        "5ca865bb7d52012b73ac379c5aec59b3d04efce8"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Wed Apr 08 15:40:46 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 08 15:21:20 2026 -0700"
      },
      "message": "internal/gcimporter: rename ureader_yes.go to ureader.go\n\nThis just cleans up an artifact from when we had ureader_no.go and\nureader_yes.go and makes it so all our UIR readers are called the\nsame thing.\n\nChange-Id: I6b11c87bc63e9eca925f2b8f21ca1a572a8e51fb\nReviewed-on: https://go-review.googlesource.com/c/tools/+/764280\nReviewed-by: Robert Griesemer \u003cgri@google.com\u003e\nAuto-Submit: Mark Freeman \u003cmarkfreeman@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5ca865bb7d52012b73ac379c5aec59b3d04efce8",
      "tree": "0c6ac80fdf527b8e4c1dd4d888610b1e1a6a6492",
      "parents": [
        "f6476fbaabd396b58618b473e4eb71e1f532b495"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 01 16:58:47 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Apr 07 17:57:40 2026 -0700"
      },
      "message": "go/types/objectpath: add debugging command\n\nThis CL adds a simple command for our debugging use that prints\nthe object path of each symbol declared in a package.\n(I found it useful while investigating golang/go#70418.)\n\nExample:\n\n    $ go run ./go/types/objectpath/main.go fmt\n      errors.go:23:6: func Errorf(format string, a ...any) (err error) \u003d \"Errorf\"\n     errors.go:23:13: var format string \u003d \"Errorf.PA0\"\n     errors.go:23:28: var a []any \u003d \"Errorf.PA1\"\n     errors.go:23:39: var err error \u003d \"Errorf.RA0\"\n      errors.go:70:6: type wrapError struct{msg string; err error} \u003d \"wrapError\"\n      errors.go:71:2: field msg string \u003d \"wrapError.UF0\"\n      errors.go:72:2: field err error \u003d \"wrapError.UF1\"\n     errors.go:75:21: func (*wrapError).Error() string \u003d \"wrapError.M0\"\n     errors.go:79:21: func (*wrapError).Unwrap() error \u003d \"wrapError.M1\"\n      errors.go:83:6: type wrapErrors struct{msg string; errs []error} \u003d \"wrapErrors\"\n\t...\n\nChange-Id: Id84ce3e1b141d4998e7833836109b2a51ca79f3e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/761841\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Robert Griesemer \u003cgri@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f6476fbaabd396b58618b473e4eb71e1f532b495",
      "tree": "49dbbd550ab438de9186823e2e143679c3788949",
      "parents": [
        "b36d1d12a1a724eb9be6609c9789aec3d99e6030"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Tue Apr 07 15:35:49 2026 -0400"
      },
      "committer": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Tue Apr 07 13:20:37 2026 -0700"
      },
      "message": "internal/gcimporter: consume generic methods in gcimporter\n\nThis is a copy of CL 763120 for x/tools.\n\nChange-Id: I49008d3c78f8b4dadc93502a70becb8ad097128d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763663\nReviewed-by: Robert Griesemer \u003cgri@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b36d1d12a1a724eb9be6609c9789aec3d99e6030",
      "tree": "599b6089f21da34fe640696558969b4434e8f408",
      "parents": [
        "d71d09e5f4cedab278c1dc81aaf5815fe8e5b77e"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Mon Apr 06 14:42:04 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 06 12:07:32 2026 -0700"
      },
      "message": "internal/pkgbits: sync version.go with goroot\n\nChange-Id: I11d8791a51d7ad5f7d21e71656b3044f5dcd8c8b\nReviewed-on: https://go-review.googlesource.com/c/tools/+/763122\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Mark Freeman \u003cmarkfreeman@google.com\u003e\nReviewed-by: Robert Griesemer \u003cgri@google.com\u003e\n"
    },
    {
      "commit": "d71d09e5f4cedab278c1dc81aaf5815fe8e5b77e",
      "tree": "3fa0fa443ab0593d4bc389085b3524098355478a",
      "parents": [
        "f94a0e713a0072506d38af3af8fde3f44024a1ce"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Fri Apr 03 07:55:47 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 06 11:45:54 2026 -0700"
      },
      "message": "gopls/internal/golang: check dialog support directly against forms\n\nPreviously, the supportsDialog utility function required developers\nto manually track and specify the types of questions the language\nserver needed to ask.\n\nThis CL modifies the utility to evaluate support directly against\nthe provided forms. This accommodates code actions that have fallback\noptions (e.g., falling back to a string input type if lazyEnum is\nnot supported).\n\nDevelopers can now simply pass all possible forms a code action\nmight use, and the utility will determine support by inspecting\nthe questions themselves. This prevents bugs where a developer\nintroduces new questions but forgets to update the support\nrequirements when initially offering the code action.\n\nFor golang/go#76331\n\nChange-Id: Id80c5ff4e136e17a2eb0319bf8c128466d8e31e7\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762462\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f94a0e713a0072506d38af3af8fde3f44024a1ce",
      "tree": "90b5c0e0f4734dec4cf34b2366e37201bd85cdbe",
      "parents": [
        "b87f6db2158e97af36e8584aad04be121cacfd50"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Fri Apr 03 07:26:21 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 06 06:09:16 2026 -0700"
      },
      "message": "gopls/internal/golang: refactor the file structure of dialog support\n\nThis change moves some of the logic from server package to golang\npackage for better support the next CL.\n\nThe next CL refactor the utility function \"supportsDialog\" and\nthat requires the forms to be visible in the package \"golang\".\nAll the forms are moved from package \"server\" to \"golang\".\n\nFor golang/go#76331\n\nChange-Id: Id1ce72474ba5584f2681cb21f999f77bbe49f9e0\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762461\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "b87f6db2158e97af36e8584aad04be121cacfd50",
      "tree": "a73408debac5cfe494f3dde98ddb688d32d64574",
      "parents": [
        "dab4f7eb37824fc2d65abaad1fb44685062975e3"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Mar 23 09:07:14 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 06 06:09:12 2026 -0700"
      },
      "message": "gopls/internal/server: return lazy enum or string for stub methods\n\nThe \"implement interface\" code action is offered only when the\nlanguage client supports either \"lazyEnum\" or \"string\" input type.\n\nHence, there are two forms prepared when resolve the command. Upon\nresolving, gopls will dynamically determine which form to use based\non the client capability.\n\nFix golang/vscode-go#1547\n\nChange-Id: Icd6e18cf77154a81522fcc548767e6fece60c95a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762460\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "dab4f7eb37824fc2d65abaad1fb44685062975e3",
      "tree": "a98cdf1280fa47f6932a930c39365aadaddb914a",
      "parents": [
        "40a87925ba08251c9ecdfa603ed17cfe36d2d506"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Mar 09 12:48:36 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Apr 06 06:09:09 2026 -0700"
      },
      "message": "gopls/internal/server: InteractiveListEnum support workspaceSymbol queries\n\nThis CL adds initial support for the InteractiveListEnum request,\na gopls LSP extension to provide interactive completion queries to\nclient-side dialogs. The first kind of query supported is for\nworkspace symbols.\n\nThe list enum request for \"workspaceSymbol\" operates similarly to\nthe standard \"workspace/symbol\" LSP method. A key difference is\nthat the list enum implementation accepts an optional filter\nfunction to further restrict the returned symbols based on their\nkind.\n\nFor golang/go#76331\n\nChange-Id: I0e9b26fe88e62bd3505dc80207df4a50dcab0767\nReviewed-on: https://go-review.googlesource.com/c/tools/+/747721\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "40a87925ba08251c9ecdfa603ed17cfe36d2d506",
      "tree": "8f23dc690c11131c780f6397dd0812066e61aa76",
      "parents": [
        "e079961da88cc937b1064c4e21142842a2f73675"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 01 14:55:06 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Sat Apr 04 05:35:09 2026 -0700"
      },
      "message": "go/types/objectpath: fix bug with methods of cyclic interfaces\n\nThis CL fixes a bug in the treatment of interfaces: when we encounter\na seen method, we should skip that one method, not the entire\ninterface to which it belongs, as there may be additional methods\nfollowing the cyclic one.\n\nThis bug was a prolific cause of crashes in gopls.\n\nFixes golang/go#70418\n\nChange-Id: I0bc7a21a7e6c2be8e415f2493379954a4d1cd9c8\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762000\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e079961da88cc937b1064c4e21142842a2f73675",
      "tree": "f30b69f57b4753b16b6144dcb62718541dc10304",
      "parents": [
        "67b3d055a2cae977cf6c36d1085ebff388f91a67"
      ],
      "author": {
        "name": "abhay1999",
        "email": "abhaychaurasiya19@gmail.com",
        "time": "Wed Apr 01 17:03:27 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 03 13:22:06 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: add slicesbackward analyzer\n\nAdds a new slicesbackward pass to the modernize suite that suggests\nreplacing manually-written backward loops over slices with\nslices.Backward (Go 1.23).\n\nBefore:\n\n    for i :\u003d len(s) - 1; i \u003e\u003d 0; i-- {\n        use(s[i])\n    }\n\nAfter:\n\n    for _, v :\u003d range slices.Backward(s) {\n        use(v)\n    }\n\nThe analyzer matches for loops with the exact pattern:\n- init:  i :\u003d len(s) - 1  (where s is a slice expression)\n- cond:  i \u003e\u003d 0\n- post:  i--\n\nWhen every use of i in the body is s[i], those are replaced with a\nfresh value variable and the range clause becomes \"_, v :\u003d\".\n\nWhen i is used for other purposes too, both index and value are kept:\n\"i, v :\u003d range slices.Backward(s)\".\n\nLoops where i is assigned or address-taken inside the body are skipped\nto avoid changing program behavior. Loops using \u003d (not :\u003d) in the init\nwhere i is address-taken before the loop are also skipped.\n\nThe analyzer is unexported; it is accessible via goplsexport until the\nproposal is approved and the API is published.\n\nFixes golang/go#78484\n\nChange-Id: Ic920cc149c4a3ff2524f4d17f347ec48ab43d05a\nGitHub-Last-Rev: 4b3470ab6b3edb7c7492742b1255bb2f0777b2be\nGitHub-Pull-Request: golang/tools#627\nReviewed-on: https://go-review.googlesource.com/c/tools/+/761740\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Junyang Shao \u003cshaojunyang@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "67b3d055a2cae977cf6c36d1085ebff388f91a67",
      "tree": "8fe121fce359a56e14e8586fdbe9cc0190adf6f6",
      "parents": [
        "b20ccfda7c4e7708ebc6e2af81e61fc42325701d"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Fri Apr 03 04:29:42 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Apr 03 04:45:38 2026 -0700"
      },
      "message": "gopls/internal/golang: improve invisibility error message\n\nresolve comment in CL 752920\n\nChange-Id: I55896b3be81cbeb5c54c34d1b753e4e95aeed709\nReviewed-on: https://go-review.googlesource.com/c/tools/+/762440\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b20ccfda7c4e7708ebc6e2af81e61fc42325701d",
      "tree": "68b554882e7152218cfc5d0f53a313248adde672",
      "parents": [
        "9a66ce6ebb19adc331fc8c02dbf3d8cefcbbe44b"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Sun Mar 08 13:17:05 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 01 11:22:38 2026 -0700"
      },
      "message": "gopls/internal/golang: detect package invisibility when stub methods\n\nWhen generating method stubs for the \"Implement Interface\" code action,\ngopls must ensure that the resulting method signatures do not require\nimporting inaccessible internal packages.\n\nThis change adds a visibility check before generating the stubs. If an\ninterface method references an internal type that the destination package\nis not permitted to import, the code action now correctly aborts with an\nerror instead of generating invalid, uncompilable Go code.\n\nAdded marker tests to verify behavior when internal types are required\n(notok.go) versus when only accessible types are used (ok.go).\n\nFor golang/vscode-go#1547\n\nChange-Id: I3787606f701a5c3804e340c2e9cb315ecdbce549\nReviewed-on: https://go-review.googlesource.com/c/tools/+/752920\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9a66ce6ebb19adc331fc8c02dbf3d8cefcbbe44b",
      "tree": "44453ca2975fcbaca3ea07c1b3f2adc004a3e9c5",
      "parents": [
        "25856b99bc307d6379c705d5e2bebb4aee970d52"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Thu Mar 05 12:53:10 2026 -0500"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Apr 01 11:22:34 2026 -0700"
      },
      "message": "gopls/internal/golang: detect import cycle when stub methods\n\nGo through all the packages being referenced in the interface\u0027s\nmethods signature and make sure those packages does not already\ndepending on the package contains the named type declaration.\n\nFor golang/vscode-go#1547\n\nChange-Id: I16312b4744bc99ef499f78aa386586bdbe3fe4d0\nReviewed-on: https://go-review.googlesource.com/c/tools/+/752320\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "25856b99bc307d6379c705d5e2bebb4aee970d52",
      "tree": "7f92778f6cf19b8037ce0abd310296751b8b5d6b",
      "parents": [
        "4f5f4d3ef6936b6c8ed2a8d76761b21beac1e9ca"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Mar 23 07:53:28 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Wed Apr 01 09:45:54 2026 -0700"
      },
      "message": "gopls/internal/protocol: preserve FormAnswers upon interactive resolution\n\nPreviously, the \"command/resolve\" loop terminated only when both\nFormFields and FormAnswers were empty. The server handled this by\ninjecting the user\u0027s answers directly into the command\u0027s Arguments array.\n\nWhile this worked for workspace/executeCommand, it prevented interactive\nforms from being attached to standard LSP requests (like textDocument/rename),\nwhich lack an arbitrary Arguments payload to absorb the answers.\n\nThis change updates the termination state: resolution is now considered\ncomplete as soon as FormFields is empty, and FormAnswers is deliberately\npreserved. The client is now responsible for attaching these validated\nFormAnswers to the ultimate execution request, allowing the server to\nextract the interactive choices out-of-band for any LSP method.\n\nvscode-go CL 758080\n\nFor golang/go#76331\n\nChange-Id: Id038c7b60bacc81ff47bce2ae5359ca58ae5afa1\nReviewed-on: https://go-review.googlesource.com/c/tools/+/758060\nReviewed-by: Peter Weinberger \u003cpjw@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "4f5f4d3ef6936b6c8ed2a8d76761b21beac1e9ca",
      "tree": "d1eb194b248e5dadd70202e0d4554fe956690c82",
      "parents": [
        "318e3139ea393885a924ac345b059ae6f513ad22"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Wed Apr 01 09:39:57 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Wed Apr 01 08:41:34 2026 -0700"
      },
      "message": "gopls/internal/test/marker: refactor code action marker with dialog\n\nChange-Id: Icef50091ea13b2d511b8b467451f1d93f751fa97\nReviewed-on: https://go-review.googlesource.com/c/tools/+/761760\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "318e3139ea393885a924ac345b059ae6f513ad22",
      "tree": "b7425c76e87e746996ea384eb86ac5c1e6335296",
      "parents": [
        "6e566d745637d47ec16505b17e496a09284ba45b"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 01 10:42:59 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Apr 01 08:21:57 2026 -0700"
      },
      "message": "gopls/internal/filewatcher: suppress flaky assertion on Windows\n\nTestStress is failing on Windows because reading a file (as the\npoll-based watched periodically does) prevents it from being\nwritten by another process.\n\nThis CL downgrades the Error to a Log.\n\nUpdates golang/go#78366\n\nChange-Id: I98c171406088f7b097f53896e06e995566c46a5c\nReviewed-on: https://go-review.googlesource.com/c/tools/+/761801\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    }
  ],
  "next": "6e566d745637d47ec16505b17e496a09284ba45b"
}
