Skip to content

Commit

Permalink
doc/go1.22: document changes to vet loopclosure analyzer
Browse files Browse the repository at this point in the history
cmd/vet no longer reports loopclosure bugs within files built at
GoVersion>=1.22.

For golang#61422.

Change-Id: I6f29373bb236822ece4e7ae35914859538b8d57b
Reviewed-on: https://go-review.googlesource.com/c/go/+/551376
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Alan Donovan <[email protected]>
Run-TryBot: Tim King <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
  • Loading branch information
timothy-king authored and ezz-no committed Feb 17, 2024
1 parent 0011591 commit 3e083fd
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions doc/go1.22.html
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,20 @@ <h3 id="trace">Trace</h3>

<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>

Expand Down

0 comments on commit 3e083fd

Please sign in to comment.