)]}'
{
  "commit": "133beb8a8563307e759b535d226d0718dccabc9c",
  "tree": "b1241e14706e48d379205e84046d33e776dc5619",
  "parents": [
    "077f3852f0fa489cb2a91edd13caa3a49ac1fcb3"
  ],
  "author": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Thu Oct 02 20:59:00 2025 -0400"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Tue Oct 07 14:22:19 2025 -0700"
  },
  "message": "go/analysis/passes/modernize: modernizer for iterator APIs\n\nThis CL adds the stditerators modernizer, which replaces loops\nof the form\n\n  for i :\u003d 0; i \u003c x.Len(); i++ {\n      use(x.At(i))\n  }\n\nor their \"range x.Len()\" equivalent by\n\n  for elem :\u003d range x.All() {\n      use(x.At(i)\n  }\n\nfor various well-known std types.\n\nPublishing each new Analyzer symbol requires going through the\nproposal process, so we plan to do them in one batch per Go\nrelease. In the interim, we cannot make such symbols public,\nso we use a backdoor mechanism to export them to gopls.\n\n+ test, doc, relnote\n\nUpdates golang/go#75693\n\nChange-Id: I3accd1925ad990b84500a9e77c3c589aeaeabfb0\nReviewed-on: https://go-review.googlesource.com/c/tools/+/708775\nReviewed-by: Robert Findley \u003crfindley@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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "debe9677f8907ad24be59e0f3fb0c3c7ed27afc0",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/bloop.go",
      "new_id": "5d7c9e51f9367611a5f22bf349b2279982ae2505",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/bloop.go"
    },
    {
      "type": "modify",
      "old_id": "9848a59b8fee78361cdd8e17d4dc2c6bdc8d564c",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/doc.go",
      "new_id": "43a883f46d77c76fac20a52a9aaa392cd7d1000c",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/doc.go"
    },
    {
      "type": "modify",
      "old_id": "6c7fce5373450a885c668b502276ea0e6d1eb766",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/modernize.go",
      "new_id": "58814f043676408638f45e2ede61ccaa384e5c79",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/modernize.go"
    },
    {
      "type": "modify",
      "old_id": "e1fb76a85b9c66a46913d30399474b9926c9a09e",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/modernize_test.go",
      "new_id": "c71d38c272ddff5a1c18b086d3be531f7a9d8838",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/modernize_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1af3a595dc8dabeef1ad46d1b5967ea9619c38cd",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/stditerators.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "22ac0c53b81b2d3e5ed2daa4048cdcbf3196eaa5",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/stditerators/stditerators.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "84329e2b9eb8ce083e39ba29a8e535c9bcba9925",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/stditerators/stditerators.go.golden"
    },
    {
      "type": "modify",
      "old_id": "6389b3b1899803cbe463e6f421aa065836579620",
      "old_mode": 33188,
      "old_path": "gopls/doc/analyzers.md",
      "new_id": "b63f2d7fece91a5f8d61d50a7de09caa2bf51f52",
      "new_mode": 33188,
      "new_path": "gopls/doc/analyzers.md"
    },
    {
      "type": "modify",
      "old_id": "f09b4f206e4acef3058d8ad6f3ea7bd5bbc3a609",
      "old_mode": 33188,
      "old_path": "gopls/doc/release/v0.21.0.md",
      "new_id": "2403b9f1846536eb47f14eb4d5b8f659ebbf5e77",
      "new_mode": 33188,
      "new_path": "gopls/doc/release/v0.21.0.md"
    },
    {
      "type": "modify",
      "old_id": "603ea3266e7bbdb0930d0e2bd9c720574a7e3e94",
      "old_mode": 33188,
      "old_path": "gopls/internal/doc/api.json",
      "new_id": "93ed9ff81465894b2d341c5a78c8219453869bba",
      "new_mode": 33188,
      "new_path": "gopls/internal/doc/api.json"
    },
    {
      "type": "modify",
      "old_id": "df78cab3eed5994dbfcd3389c54710b62028781f",
      "old_mode": 33188,
      "old_path": "gopls/internal/settings/analysis.go",
      "new_id": "9ea6a55167da648ab1614da251dfbf2aa78fd240",
      "new_mode": 33188,
      "new_path": "gopls/internal/settings/analysis.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01e02880a265d6659bdaece7a83cd666e1984404",
      "new_mode": 33188,
      "new_path": "internal/goplsexport/export.go"
    }
  ]
}
