aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorDmitri Shuralyov <dmitshur@golang.org>2026-01-02 11:36:00 -0500
committerGopher Robot <gobot@golang.org>2026-01-07 11:30:02 -0800
commitf6ebd91129e13ef7f495550a4fc8fa74769f6a2d (patch)
tree4b4296087b084c75b908362b692e0f593382f1e5 /src/cmd
parentd1d0fc7a97539206e33f04bac935f6450597137c (diff)
downloadgo-f6ebd91129e13ef7f495550a4fc8fa74769f6a2d.tar.xz
all: update vendored x/tools
Pull in the following x/tools changes: - CL 732260: go/analysis/passes/modernize: disable BLoop analyzer - CL 733340: gopls/internal/analysis/modernize: mapsloop: undefined loop-var For #74967. For #77008. [git-generate] go install golang.org/x/build/cmd/updatestd@latest go install golang.org/x/tools/cmd/bundle@latest updatestd -goroot=$(pwd) -branch=internal-branch.go1.26-vendor Change-Id: Ic0c10569a4a3a292aec9164e6dd034e55d052904 Reviewed-on: https://go-review.googlesource.com/c/go/+/733780 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/go.mod2
-rw-r--r--src/cmd/go.sum4
-rw-r--r--src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/doc.go2
-rw-r--r--src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/maps.go21
-rw-r--r--src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/modernize.go2
-rw-r--r--src/cmd/vendor/modules.txt2
6 files changed, 27 insertions, 6 deletions
diff --git a/src/cmd/go.mod b/src/cmd/go.mod
index c7d3cc6136..85e8c4cb5f 100644
--- a/src/cmd/go.mod
+++ b/src/cmd/go.mod
@@ -11,7 +11,7 @@ require (
golang.org/x/sys v0.39.0
golang.org/x/telemetry v0.0.0-20251128220624-abf20d0e57ec
golang.org/x/term v0.38.0
- golang.org/x/tools v0.39.1-0.20251205000126-062ef7b6ced2
+ golang.org/x/tools v0.39.1-0.20251230210517-d44be789a05c
)
require (
diff --git a/src/cmd/go.sum b/src/cmd/go.sum
index b02c469a41..61c88e5253 100644
--- a/src/cmd/go.sum
+++ b/src/cmd/go.sum
@@ -22,7 +22,7 @@ golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
-golang.org/x/tools v0.39.1-0.20251205000126-062ef7b6ced2 h1:2Qqv605Nus9iUp3ErvEU/q92Q3HAzeROztzl9pzAno8=
-golang.org/x/tools v0.39.1-0.20251205000126-062ef7b6ced2/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
+golang.org/x/tools v0.39.1-0.20251230210517-d44be789a05c h1:0pZej6BQOooNbOfjJEu4v5qx9hdwFX8HnvHCcNXcs2w=
+golang.org/x/tools v0.39.1-0.20251230210517-d44be789a05c/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
rsc.io/markdown v0.0.0-20240306144322-0bf8f97ee8ef h1:mqLYrXCXYEZOop9/Dbo6RPX11539nwiCNBb1icVPmw8=
rsc.io/markdown v0.0.0-20240306144322-0bf8f97ee8ef/go.mod h1:8xcPgWmwlZONN1D9bjxtHEjrUtSEa3fakVF8iaewYKQ=
diff --git a/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/doc.go b/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/doc.go
index 45aed7909c..f1202c7a11 100644
--- a/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/doc.go
+++ b/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/doc.go
@@ -80,6 +80,8 @@ or b.ResetTimer within the same function will also be removed.
Caveats: The b.Loop() method is designed to prevent the compiler from
optimizing away the benchmark loop, which can occasionally result in
slower execution due to increased allocations in some specific cases.
+Since its fix may change the performance of nanosecond-scale benchmarks,
+bloop is disabled by default in the `go fix` analyzer suite; see golang/go#74967.
# Analyzer any
diff --git a/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/maps.go b/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/maps.go
index f97541d4b3..795f5b6c6b 100644
--- a/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/maps.go
+++ b/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/maps.go
@@ -231,9 +231,28 @@ func mapsloop(pass *analysis.Pass) (any, error) {
// Have: for k, v := range x { lhs = rhs }
assign := rng.Body.List[0].(*ast.AssignStmt)
+
+ // usesKV reports whether e references vars k or v.
+ usesKV := func(e ast.Expr) bool {
+ k := info.Defs[rng.Key.(*ast.Ident)]
+ v := info.Defs[rng.Value.(*ast.Ident)]
+ for n := range ast.Preorder(e) {
+ if id, ok := n.(*ast.Ident); ok {
+ obj := info.Uses[id]
+ if obj != nil && // don't rely on k, v being non-nil
+ (obj == k || obj == v) {
+ return true
+ }
+ }
+ }
+ return false
+ }
+
if index, ok := assign.Lhs[0].(*ast.IndexExpr); ok &&
+ len(assign.Lhs) == 1 &&
astutil.EqualSyntax(rng.Key, index.Index) &&
- astutil.EqualSyntax(rng.Value, assign.Rhs[0]) {
+ astutil.EqualSyntax(rng.Value, assign.Rhs[0]) &&
+ !usesKV(index.X) { // reject (e.g.) f(k, v)[k] = v
if tmap, ok := typeparams.CoreType(info.TypeOf(index.X)).(*types.Map); ok &&
types.Identical(info.TypeOf(index), info.TypeOf(rng.Value)) && // m[k], v
types.Identical(tmap.Key(), info.TypeOf(rng.Key)) {
diff --git a/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/modernize.go b/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/modernize.go
index 013ce79d6c..f09a2d26ca 100644
--- a/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/modernize.go
+++ b/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/modernize/modernize.go
@@ -34,7 +34,7 @@ var doc string
var Suite = []*analysis.Analyzer{
AnyAnalyzer,
// AppendClippedAnalyzer, // not nil-preserving!
- BLoopAnalyzer,
+ // BLoopAnalyzer, // may skew benchmark results, see golang/go#74967
FmtAppendfAnalyzer,
ForVarAnalyzer,
MapsLoopAnalyzer,
diff --git a/src/cmd/vendor/modules.txt b/src/cmd/vendor/modules.txt
index 7c122cd9d1..9c179c4bcd 100644
--- a/src/cmd/vendor/modules.txt
+++ b/src/cmd/vendor/modules.txt
@@ -73,7 +73,7 @@ golang.org/x/text/internal/tag
golang.org/x/text/language
golang.org/x/text/transform
golang.org/x/text/unicode/norm
-# golang.org/x/tools v0.39.1-0.20251205000126-062ef7b6ced2
+# golang.org/x/tools v0.39.1-0.20251230210517-d44be789a05c
## explicit; go 1.24.0
golang.org/x/tools/cmd/bisect
golang.org/x/tools/cover