]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/types2/check_test.go
cmd/compile, go/types: typechecking of range over int, func
[gostls13.git] / src / cmd / compile / internal / types2 / check_test.go
index 94dfda7d33b7e258ef5149dbb5bd6df95524cedd..791d9f028c19955eaf51326fd900d3fab5dd4935 100644 (file)
@@ -34,11 +34,13 @@ import (
        "cmd/compile/internal/syntax"
        "flag"
        "fmt"
+       "internal/buildcfg"
        "internal/testenv"
        "os"
        "path/filepath"
        "reflect"
        "regexp"
+       "runtime"
        "strconv"
        "strings"
        "testing"
@@ -123,12 +125,23 @@ func testFiles(t *testing.T, filenames []string, srcs [][]byte, colDelta uint, m
        }
 
        var conf Config
+       var goexperiment string
        flags := flag.NewFlagSet("", flag.PanicOnError)
        flags.StringVar(&conf.GoVersion, "lang", "", "")
+       flags.StringVar(&goexperiment, "goexperiment", "", "")
        flags.BoolVar(&conf.FakeImportC, "fakeImportC", false, "")
        if err := parseFlags(srcs[0], flags); err != nil {
                t.Fatal(err)
        }
+       exp, err := buildcfg.ParseGOEXPERIMENT(runtime.GOOS, runtime.GOARCH, goexperiment)
+       if err != nil {
+               t.Fatal(err)
+       }
+       old := buildcfg.Experiment
+       defer func() {
+               buildcfg.Experiment = old
+       }()
+       buildcfg.Experiment = *exp
 
        files, errlist := parseFiles(t, filenames, srcs, 0)
 
@@ -355,6 +368,12 @@ func TestIssue47243_TypedRHS(t *testing.T) {
 }
 
 func TestCheck(t *testing.T) {
+       old := buildcfg.Experiment.Range
+       defer func() {
+               buildcfg.Experiment.Range = old
+       }()
+       buildcfg.Experiment.Range = true
+
        DefPredeclaredTestFuncs()
        testDirFiles(t, "../../../../internal/types/testdata/check", 50, false) // TODO(gri) narrow column tolerance
 }