]> Cypherpunks repositories - gostls13.git/commitdiff
internal/goexperiment: delete RangeFunc goexperiment
authorCherry Mui <cherryyz@google.com>
Mon, 30 Jun 2025 21:34:01 +0000 (17:34 -0400)
committerCherry Mui <cherryyz@google.com>
Tue, 29 Jul 2025 19:44:58 +0000 (12:44 -0700)
It is now always enabeld. The GOEXPERIMENT doesn't control
anything. Remove.

Change-Id: I50eb09f4537f90ec28152eb59a5a689127843fce
Reviewed-on: https://go-review.googlesource.com/c/go/+/684838
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

15 files changed:
src/cmd/compile/internal/types2/check_test.go
src/cmd/compile/internal/types2/range.go
src/go/types/check_test.go
src/go/types/range.go
src/internal/goexperiment/exp_rangefunc_off.go [deleted file]
src/internal/goexperiment/exp_rangefunc_on.go [deleted file]
src/internal/goexperiment/flags.go
src/internal/trace/trace_test.go
src/runtime/crash_test.go
src/runtime/race/testdata/rangefunc_test.go
src/runtime/testdata/testprog/coro.go
src/runtime/testdata/testprogcgo/coro.go
test/range2.go
test/range4.go
test/rangegen.go

index 35bbcec5c58d7c4c8666a8c30e689ffa9ec0b8ac..8b97a9f676e0734230ad0da24d9b7a74092687f9 100644 (file)
@@ -399,12 +399,6 @@ func TestIssue47243_TypedRHS(t *testing.T) {
 }
 
 func TestCheck(t *testing.T) {
-       old := buildcfg.Experiment.RangeFunc
-       defer func() {
-               buildcfg.Experiment.RangeFunc = old
-       }()
-       buildcfg.Experiment.RangeFunc = true
-
        DefPredeclaredTestFuncs()
        testDirFiles(t, "../../../../internal/types/testdata/check", 50, false) // TODO(gri) narrow column tolerance
 }
index dc0d81d05b7bec11bb0d55866e14b436ed0d672f..b654601eafc73ef95410590c2ded7c9d3e01f266 100644 (file)
@@ -9,7 +9,6 @@ package types2
 import (
        "cmd/compile/internal/syntax"
        "go/constant"
-       "internal/buildcfg"
        . "internal/types/errors"
 )
 
@@ -237,7 +236,7 @@ func rangeKeyVal(check *Checker, orig Type, allowVersion func(goVersion) bool) (
                assert(typ.dir != SendOnly)
                return typ.elem, nil, "", true
        case *Signature:
-               if !buildcfg.Experiment.RangeFunc && allowVersion != nil && !allowVersion(go1_23) {
+               if allowVersion != nil && !allowVersion(go1_23) {
                        return bad("requires go1.23 or later")
                }
                // check iterator arity
index 823525828ae3e45ac7a831b4ead9361623b290b6..44e4fd01049b7e3d729b689a7daa1422b7d24b5c 100644 (file)
@@ -426,12 +426,6 @@ func TestIssue47243_TypedRHS(t *testing.T) {
 }
 
 func TestCheck(t *testing.T) {
-       old := buildcfg.Experiment.RangeFunc
-       defer func() {
-               buildcfg.Experiment.RangeFunc = old
-       }()
-       buildcfg.Experiment.RangeFunc = true
-
        DefPredeclaredTestFuncs()
        testDirFiles(t, "../../internal/types/testdata/check", false)
 }
index ed7d83283c5fb6ca2aa7395c181801642bb2792a..303d001c72d05be11b14b812753d04e43fb046bf 100644 (file)
@@ -12,7 +12,6 @@ package types
 import (
        "go/ast"
        "go/constant"
-       "internal/buildcfg"
        . "internal/types/errors"
 )
 
@@ -240,7 +239,7 @@ func rangeKeyVal(check *Checker, orig Type, allowVersion func(goVersion) bool) (
                assert(typ.dir != SendOnly)
                return typ.elem, nil, "", true
        case *Signature:
-               if !buildcfg.Experiment.RangeFunc && allowVersion != nil && !allowVersion(go1_23) {
+               if allowVersion != nil && !allowVersion(go1_23) {
                        return bad("requires go1.23 or later")
                }
                // check iterator arity
diff --git a/src/internal/goexperiment/exp_rangefunc_off.go b/src/internal/goexperiment/exp_rangefunc_off.go
deleted file mode 100644 (file)
index fc02820..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// Code generated by mkconsts.go. DO NOT EDIT.
-
-//go:build !goexperiment.rangefunc
-
-package goexperiment
-
-const RangeFunc = false
-const RangeFuncInt = 0
diff --git a/src/internal/goexperiment/exp_rangefunc_on.go b/src/internal/goexperiment/exp_rangefunc_on.go
deleted file mode 100644 (file)
index 25e7bd3..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// Code generated by mkconsts.go. DO NOT EDIT.
-
-//go:build goexperiment.rangefunc
-
-package goexperiment
-
-const RangeFunc = true
-const RangeFuncInt = 1
index 8faf3cd72c3447c42d295cd5bac4c265d9c1eae8..ca99bfbb5cb0343ec4857d42f2e136996dba6a67 100644 (file)
@@ -100,9 +100,6 @@ type Flags struct {
        // inlining phase within the Go compiler.
        NewInliner bool
 
-       // RangeFunc enables range over func.
-       RangeFunc bool
-
        // AliasTypeParams enables type parameters for alias types.
        // Requires that gotypesalias=1 is set with GODEBUG.
        // This flag will be removed with Go 1.25.
index bd3f078f05b40035ec6d5526a4a1bbdbf8bdc658..ce79960065ba1d01c9a9a9b6dfec339c3d527312 100644 (file)
@@ -610,7 +610,6 @@ func testTraceProg(t *testing.T, progName string, extra func(t *testing.T, trace
                        buildCmd.Args = append(buildCmd.Args, "-race")
                }
                buildCmd.Args = append(buildCmd.Args, testPath)
-               buildCmd.Env = append(os.Environ(), "GOEXPERIMENT=rangefunc")
                buildOutput, err := buildCmd.CombinedOutput()
                if err != nil {
                        t.Fatalf("failed to build %s: %v: output:\n%s", testPath, err, buildOutput)
index 8696672065c26a999ef338e16f9bf34b2ba5b19d..2db86e0562d6ae79e2f159cd869cebba0ccaad2b 100644 (file)
@@ -186,21 +186,6 @@ func buildTestProg(t *testing.T, binary string, flags ...string) (string, error)
                t.Logf("running %v", cmd)
                cmd.Dir = "testdata/" + binary
                cmd = testenv.CleanCmdEnv(cmd)
-
-               // Add the rangefunc GOEXPERIMENT unconditionally since some tests depend on it.
-               // TODO(61405): Remove this once it's enabled by default.
-               edited := false
-               for i := range cmd.Env {
-                       e := cmd.Env[i]
-                       if _, vars, ok := strings.Cut(e, "GOEXPERIMENT="); ok {
-                               cmd.Env[i] = "GOEXPERIMENT=" + vars + ",rangefunc"
-                               edited = true
-                       }
-               }
-               if !edited {
-                       cmd.Env = append(cmd.Env, "GOEXPERIMENT=rangefunc")
-               }
-
                out, err := cmd.CombinedOutput()
                if err != nil {
                        target.err = fmt.Errorf("building %s %v: %v\n%s", binary, flags, err, out)
index 453c0733edeee3d0f666f61b7e212a8c6eaf84de..986395bfb94e5b33136a0099a48db045bf6613f1 100644 (file)
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build goexperiment.rangefunc
-
 package race_test
 
 import (
index 032215b801282013faa5e426f80da17b5d92d2b9..5f3d30298789a84ec4e021d6fc71b776f9b03dab 100644 (file)
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build goexperiment.rangefunc
-
 package main
 
 import (
index e0cb9451121421ba4158025d4f9b23ee8b2b8a94..93be92cb7a046af8e8ead0981b42b9992c05101d 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build goexperiment.rangefunc && !windows
+//go:build !windows
 
 package main
 
index 6ccf1e53d82e230df129b5ce23f7e95afb6206ea..83f19adc20c73a4c36122af49d7e16d08c1e57ee 100644 (file)
@@ -1,4 +1,4 @@
-// errorcheck -goexperiment rangefunc
+// errorcheck
 
 // Copyright 2023 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
index 0b051f6d3c0f4bf2ff7d160f71f398107fed30d1..e8c8da0ae36ef53df2106b1e4c06dd1e5c7e4c45 100644 (file)
@@ -1,4 +1,4 @@
-// run -goexperiment rangefunc
+// run
 
 // Copyright 2023 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
index 8231c64db758474fa3d30a9a6fcf472267b0adfb..9d7025bd2adc19a869a5eb416812db0957594a5f 100644 (file)
@@ -1,4 +1,4 @@
-// runoutput -goexperiment rangefunc
+// runoutput
 
 // Copyright 2023 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style