mirror of
https://github.com/golang/go
synced 2024-11-26 04:07:59 -07:00
doc/go1.22: document changes to vet loopclosure analyzer
cmd/vet no longer reports loopclosure bugs within files built at GoVersion>=1.22. For #61422. Change-Id: I6f29373bb236822ece4e7ae35914859538b8d57b Reviewed-on: https://go-review.googlesource.com/c/go/+/551376 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Alan Donovan <adonovan@google.com> Run-TryBot: Tim King <taking@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
a2a2c5b947
commit
adec22b9f7
@ -136,9 +136,20 @@ packages that do not have their own test files. Prior to Go 1.22 a
|
||||
|
||||
<h3 id="vet">Vet</h3>
|
||||
|
||||
<!-- <p><\!-- CL 539016 -\-> -->
|
||||
<!-- TODO: <a href="https://go.dev/cl/539016">https://go.dev/cl/539016</a>: go/analysis/passes/loopclosure: disable checker after go1.22.; loopclosure was modified to only not report in files with GoVersion after 1.22. -->
|
||||
<!-- </p> -->
|
||||
<h4 id="vet-loopclosure">References to loop variables</h4>
|
||||
|
||||
<p><!-- CL 539016, https://go.dev/issue/63888: cmd/vet: do not report variable capture for loop variables with the new lifetime rules -->
|
||||
The behavior of the <code>vet</code> tool has changed to match
|
||||
the new semantics (see above) of loop variables in Go 1.22.
|
||||
When analyzing a file that requires Go 1.22 or newer
|
||||
(due to its go.mod file or a per-file build constraint),
|
||||
<code>vet</code>code> no longer reports references to
|
||||
loop variables from within a function literal that
|
||||
might outlive the iteration of the loop.
|
||||
In Go 1.22, loop variables are created anew for each iteration,
|
||||
so such references are no longer at risk of using a variable
|
||||
after it has been updated by the loop.
|
||||
</p>
|
||||
|
||||
<h4 id="vet-appends">New warnings for missing values after append</h4>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user