)]}'
{
  "commit": "92fdfdaa96e3c1dd4c15446bc6c1ff855e68361b",
  "tree": "4ea2419d8502ae07ebfc7dcb8f6c934e4dd00b76",
  "parents": [
    "133beb8a8563307e759b535d226d0718dccabc9c"
  ],
  "author": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Fri Oct 03 11:33:49 2025 -0400"
  },
  "committer": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Tue Oct 07 14:23:10 2025 -0700"
  },
  "message": "go/analysis/passes/modernize: errorsastype: errors.As -\u003e AsType[T]\n\nThis CL adds a modernizer that replaces simple uses of\nerrors.As such as:\n\n\tvar myerr *MyErr\n\tif errors.As(err, \u0026myerr) {\n\t\thandle(myerr)\n\t}\n\nwith the less error-prone generic [errors.AsType] function,\nintroduced in Go 1.26:\n\n\tif myerr, ok :\u003d errors.AsType[*MyErr](err); ok {\n\t\thandle(myerr)\n\t}\n\nAlso, redo the existing errorsas vet check (for actual bugs)\nto take advantage of newer analysis features.\n\nFixes golang/go#75692\nUpdates golang/go#51945\n\nChange-Id: I56bd5370449daeacedf5634e46c2a29697dcbf19\nReviewed-on: https://go-review.googlesource.com/c/tools/+/708895\nReviewed-by: Robert Findley \u003crfindley@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b8d29d019db0b0d7dcd6b79994d2a851dfc1a8d5",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/errorsas/errorsas.go",
      "new_id": "b3df99929dc6fc33aff066a70104923fce006003",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/errorsas/errorsas.go"
    },
    {
      "type": "modify",
      "old_id": "5414f9e8b6d3e8c281df2d5b208d409f6a2ce861",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/errorsas/errorsas_test.go",
      "new_id": "35e90f95cb4310f35e643d5086a28b6ff64ffb4b",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/errorsas/errorsas_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee0d3e12dbcf61f23ede70434e709d5b6082eac4",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/errorsas/main.go"
    },
    {
      "type": "modify",
      "old_id": "43a883f46d77c76fac20a52a9aaa392cd7d1000c",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/doc.go",
      "new_id": "5d8f93c18c4f985ad7716ae7d23bcfd7e778c2ef",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/doc.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef8ce8ba7be69a22e6912176ffd65f3d96e23ac2",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/errorsastype.go"
    },
    {
      "type": "modify",
      "old_id": "c71d38c272ddff5a1c18b086d3be531f7a9d8838",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/modernize_test.go",
      "new_id": "0ca72ca4862625a2e27d945231f81212117d2e68",
      "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": "272aab9b0c501bd9cafe3f56599f3bc0e9a5fd79",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/errorsastype/dotimport/a.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8e92433f97cb2ab49c21578c0812cdfa7ee7ab5c",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/errorsastype/dotimport/a.go.golden"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3cf8308109fcbbd0c70e03a2900a95d36a08112",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/errorsastype/errorsastype.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e8a06bcaf094c2856d307abf704caef513bd047",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/errorsastype/errorsastype.go.golden"
    },
    {
      "type": "modify",
      "old_id": "b63f2d7fece91a5f8d61d50a7de09caa2bf51f52",
      "old_mode": 33188,
      "old_path": "gopls/doc/analyzers.md",
      "new_id": "39ca9bfd06af35dba27ff6dbbd9099634c813dd4",
      "new_mode": 33188,
      "new_path": "gopls/doc/analyzers.md"
    },
    {
      "type": "modify",
      "old_id": "93ed9ff81465894b2d341c5a78c8219453869bba",
      "old_mode": 33188,
      "old_path": "gopls/internal/doc/api.json",
      "new_id": "4627fb3b19908da7457ec139bf77b6fa7ae522b8",
      "new_mode": 33188,
      "new_path": "gopls/internal/doc/api.json"
    },
    {
      "type": "modify",
      "old_id": "9ea6a55167da648ab1614da251dfbf2aa78fd240",
      "old_mode": 33188,
      "old_path": "gopls/internal/settings/analysis.go",
      "new_id": "97fae1fa439b5e460b354ada317d0ac061a1a458",
      "new_mode": 33188,
      "new_path": "gopls/internal/settings/analysis.go"
    },
    {
      "type": "modify",
      "old_id": "01e02880a265d6659bdaece7a83cd666e1984404",
      "old_mode": 33188,
      "old_path": "internal/goplsexport/export.go",
      "new_id": "d7c2b9f3c82b8e01c736a647fc1e7350233770f0",
      "new_mode": 33188,
      "new_path": "internal/goplsexport/export.go"
    }
  ]
}
