)]}'
{
  "commit": "cd7d17b664fc3769ed34b444294ccb2eb2e3310e",
  "tree": "c1198f25709ef368dd2ba0c3dd7d952ee2e44945",
  "parents": [
    "687891a6772b75ef1b7f18b510eaed9879e366e8"
  ],
  "author": {
    "name": "Salih Muhammed",
    "email": "root@lr0.org",
    "time": "Thu Jul 09 21:48:29 2026 +0000"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Thu Jul 09 15:01:45 2026 -0700"
  },
  "message": "go/analysis/passes/modernize: add reflecttypeassert analyzer\n\nThe new analyzer suggests replacing two-valued type assertions on the\nresult of (reflect.Value).Interface, x, ok :\u003d v.Interface().(T), with\nreflect.TypeAssert[T](v), added in go1.25, which avoids allocating the\nintermediate interface value.\n\nSingle-valued assertions are not rewritten, since they panic when the\nassertion fails whereas TypeAssert does not, per the discussion on the\nissue. Pointer receivers and files below go1.25 are also skipped.\n\nFixes golang/go#75422\n\nChange-Id: Ia804899edc25e9291116614311ecf360126bfcf3\nGitHub-Last-Rev: c92ceb1ab2f2ab5ed4260f23dafdbf52beff5a31\nGitHub-Pull-Request: golang/tools#654\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796740\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nTryBot-Bypass: Alan Donovan \u003cadonovan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c5545c0cc2afec0d43f217125ed7c2777d7ed90c",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/doc.go",
      "new_id": "bf83de38163b9c3e462895da5fee737e9c48e003",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/doc.go"
    },
    {
      "type": "modify",
      "old_id": "0401cf0351acd34a02fbbff7ec17d261e324bb1c",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/export_test.go",
      "new_id": "1ca7539cd7aea97367bff093077db838b2cda6c0",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/export_test.go"
    },
    {
      "type": "modify",
      "old_id": "23dd8ab5074aa8dec735206616fd4b6c214e40ad",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/modernize.go",
      "new_id": "5f44ba8699bd70d645d2f3f1303ce3e3aae9c4c6",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/modernize.go"
    },
    {
      "type": "modify",
      "old_id": "bb2f7ac6ed216e4cd5e86292f4ea76e6d6884972",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/modernize/modernize_test.go",
      "new_id": "e93951044e7e7136bac50a32e203d277144edf04",
      "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": "f9c120785cda0ce1fa1d821c82e32c50b4d4b02d",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/reflecttypeassert.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b7ad8a3b0d763312497e1121a9d7e259c23870b2",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/reflecttypeassert/reflecttypeassert.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d53437aac5f58006ad2270d08aa04119461954b",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/modernize/testdata/src/reflecttypeassert/reflecttypeassert.go.golden"
    },
    {
      "type": "modify",
      "old_id": "70d2b917ad083e7c57fde021417d2c31fcaec2de",
      "old_mode": 33188,
      "old_path": "gopls/doc/analyzers.md",
      "new_id": "d97f05b47ff38f92f1017b2229fe66135d133f0b",
      "new_mode": 33188,
      "new_path": "gopls/doc/analyzers.md"
    },
    {
      "type": "modify",
      "old_id": "c01dbcaf48d3f94e03bb4ef544e668173a1f7bbb",
      "old_mode": 33188,
      "old_path": "gopls/internal/doc/api.json",
      "new_id": "7df214970c7a449f9e0de8e9f5dd389638a4cf3f",
      "new_mode": 33188,
      "new_path": "gopls/internal/doc/api.json"
    }
  ]
}
