From fe1daf2e439ec1d650ea1193f10f52525f83f8a7 Mon Sep 17 00:00:00 2001 From: David Chase Date: Wed, 5 Jul 2023 16:21:19 -0400 Subject: cmd/compile: use new for loop semantics for Go 1.22+ compilations This includes version-dependent support for GOEXPERIMENT and -d=loopvar, -d=loopvarhash, to allow testing/porting of old code. Includes tests of downgrade (1.22 -> 1.21) and upgrade (1.21 -> 1.22) based on //go:build lines (while running a 1.22 build/compiler). Change-Id: Idd3be61a2b46acec33c7e7edac0924158cc726b4 Reviewed-on: https://go-review.googlesource.com/c/go/+/508819 Run-TryBot: David Chase Reviewed-by: Russ Cox TryBot-Result: Gopher Robot --- src/cmd/compile/internal/noder/reader.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/cmd/compile/internal/noder/reader.go') diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index 610d02c07c..6dec060c8c 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -1897,10 +1897,10 @@ func (r *reader) forStmt(label *types.Sym) ir.Node { cond := r.optExpr() post := r.stmt() body := r.blockStmt() - dv := r.Bool() + perLoopVars := r.Bool() r.closeAnotherScope() - stmt := ir.NewForStmt(pos, init, cond, post, body, dv) + stmt := ir.NewForStmt(pos, init, cond, post, body, perLoopVars) stmt.Label = label return stmt } -- cgit v1.3