)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "81ac46a0c4eb786859754c5309cd147d38ce64d8",
      "old_mode": 33188,
      "old_path": "internal/astutil/purge.go",
      "new_id": "d0a39415dcbb407560e7e164e78923a3bbb1fc61",
      "new_mode": 33188,
      "new_path": "internal/astutil/purge.go"
    },
    {
      "type": "modify",
      "old_id": "3de6bdcc64ea501f780d89a70845d0565d2e52b4",
      "old_mode": 33188,
      "old_path": "internal/astutil/purge_test.go",
      "new_id": "6db426defe0dbe7bc94df744957313c0f71db23a",
      "new_mode": 33188,
      "new_path": "internal/astutil/purge_test.go"
    }
  ]
}
