test: use goexperiment.genericmethods for tests

Change-Id: I0f0627122a54e88a18d1547d9d5ea6a1c02b72dd
Reviewed-on: https://go-review.googlesource.com/c/go/+/772541
Reviewed-by: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/src/cmd/compile/internal/importer/gcimporter_test.go b/src/cmd/compile/internal/importer/gcimporter_test.go
index 6513370..11e4ee6 100644
--- a/src/cmd/compile/internal/importer/gcimporter_test.go
+++ b/src/cmd/compile/internal/importer/gcimporter_test.go
@@ -720,72 +720,3 @@
 		t.Errorf("Check failed: %v", err)
 	}
 }
-
-func TestGenMeth(t *testing.T) {
-	t.SkipNow() // TODO(mark): Turn on with UIR V4.
-	testenv.MustHaveGoBuild(t)
-
-	// This package only handles gc export data.
-	if runtime.Compiler != "gc" {
-		t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler)
-	}
-
-	tmpdir := t.TempDir()
-	testoutdir := filepath.Join(tmpdir, "testdata")
-	if err := os.Mkdir(testoutdir, 0700); err != nil {
-		t.Fatalf("making output dir: %v", err)
-	}
-
-	compile(t, "testdata", "genmeth.go", testoutdir, nil)
-
-	genmeth, err := Import(make(map[string]*types2.Package), "./testdata/genmeth", tmpdir, nil)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	check := func(pkgname, src string, imports importMap) (*types2.Package, error) {
-		f, err := syntax.Parse(syntax.NewFileBase(pkgname), strings.NewReader(src), nil, nil, 0)
-		if err != nil {
-			return nil, err
-		}
-		config := &types2.Config{
-			Importer: imports,
-		}
-		return config.Check(pkgname, []*syntax.File{f}, nil)
-	}
-
-	const pSrc = `package p
-
-import "genmeth"
-
-func _() {
-	var ex func(int) genmeth.List[int]
-	var fl func(genmeth.List[int]) genmeth.List[int]
-
-	var l genmeth.List[int]
-	l = l.Map(ex).FlatMap(fl)
-
-	var bl genmeth.BiList[int, any]
-	bl = bl.MapKeys(ex).Flip().FlatMapValues(fl).Flip()
-
-	var id func(int) int
-
-	var op genmeth.Option[int]
-	var _ int = op.MapIfPresent(id).Get()
-
-	var ol genmeth.OrderedList[int]
-	var _ int = ol.Min().Get()
-
-	var b genmeth.Box[int]
-	b.Set(42)
-	var _ int = b.Get()
-}
-`
-
-	importer := importMap{
-		"genmeth": genmeth,
-	}
-	if _, err := check("p", pSrc, importer); err != nil {
-		t.Errorf("Check failed: %v", err)
-	}
-}
diff --git a/src/cmd/compile/internal/importer/genmeth_test.go b/src/cmd/compile/internal/importer/genmeth_test.go
new file mode 100644
index 0000000..fa827a7
--- /dev/null
+++ b/src/cmd/compile/internal/importer/genmeth_test.go
@@ -0,0 +1,86 @@
+// Copyright 2026 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build goexperiment.genericmethods
+
+package importer
+
+import (
+	"cmd/compile/internal/syntax"
+	"cmd/compile/internal/types2"
+	"internal/testenv"
+	"os"
+	"path/filepath"
+	"runtime"
+	"strings"
+	"testing"
+)
+
+func TestGenMeth(t *testing.T) {
+	testenv.MustHaveGoBuild(t)
+
+	// This package only handles gc export data.
+	if runtime.Compiler != "gc" {
+		t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler)
+	}
+
+	tmpdir := t.TempDir()
+	testoutdir := filepath.Join(tmpdir, "testdata")
+	if err := os.Mkdir(testoutdir, 0700); err != nil {
+		t.Fatalf("making output dir: %v", err)
+	}
+
+	compile(t, "testdata", "genmeth.go", testoutdir, nil)
+
+	genmeth, err := Import(make(map[string]*types2.Package), "./testdata/genmeth", tmpdir, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	check := func(pkgname, src string, imports importMap) (*types2.Package, error) {
+		f, err := syntax.Parse(syntax.NewFileBase(pkgname), strings.NewReader(src), nil, nil, 0)
+		if err != nil {
+			return nil, err
+		}
+		config := &types2.Config{
+			Importer: imports,
+		}
+		return config.Check(pkgname, []*syntax.File{f}, nil)
+	}
+
+	const pSrc = `package p
+
+import "genmeth"
+
+func _() {
+	var ex func(int) genmeth.List[int]
+	var fl func(genmeth.List[int]) genmeth.List[int]
+
+	var l genmeth.List[int]
+	l = l.Map(ex).FlatMap(fl)
+
+	var bl genmeth.BiList[int, any]
+	bl = bl.MapKeys(ex).Flip().FlatMapValues(fl).Flip()
+
+	var id func(int) int
+
+	var op genmeth.Option[int]
+	var _ int = op.MapIfPresent(id).Get()
+
+	var ol genmeth.OrderedList[int]
+	var _ int = ol.Min().Get()
+
+	var b genmeth.Box[int]
+	b.Set(42)
+	var _ int = b.Get()
+}
+`
+
+	importer := importMap{
+		"genmeth": genmeth,
+	}
+	if _, err := check("p", pSrc, importer); err != nil {
+		t.Errorf("Check failed: %v", err)
+	}
+}
diff --git a/src/go/internal/gcimporter/gcimporter_test.go b/src/go/internal/gcimporter/gcimporter_test.go
index d2a8e3a..c4861c7 100644
--- a/src/go/internal/gcimporter/gcimporter_test.go
+++ b/src/go/internal/gcimporter/gcimporter_test.go
@@ -827,74 +827,3 @@
 	}
 	wg.Wait()
 }
-
-func TestGenMeth(t *testing.T) {
-	t.SkipNow() // TODO(mark): Turn on with UIR V4.
-	testenv.MustHaveGoBuild(t)
-
-	// This package only handles gc export data.
-	if runtime.Compiler != "gc" {
-		t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler)
-	}
-
-	tmpdir := t.TempDir()
-	testoutdir := filepath.Join(tmpdir, "testdata")
-	if err := os.Mkdir(testoutdir, 0700); err != nil {
-		t.Fatalf("making output dir: %v", err)
-	}
-
-	compile(t, "testdata", "genmeth.go", testoutdir, nil)
-
-	fset := token.NewFileSet()
-
-	genmeth, err := Import(fset, make(map[string]*types.Package), "./testdata/genmeth", tmpdir, nil)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	check := func(pkgname, src string, imports importMap) (*types.Package, error) {
-		f, err := parser.ParseFile(fset, "genmeth.go", src, 0)
-		if err != nil {
-			return nil, err
-		}
-		config := &types.Config{
-			Importer: imports,
-		}
-		return config.Check(pkgname, fset, []*ast.File{f}, nil)
-	}
-
-	const pSrc = `package p
-
-import "genmeth"
-
-func _() {
-	var ex func(int) genmeth.List[int]
-	var fl func(genmeth.List[int]) genmeth.List[int]
-
-	var l genmeth.List[int]
-	l = l.Map(ex).FlatMap(fl)
-
-	var bl genmeth.BiList[int, any]
-	bl = bl.MapKeys(ex).Flip().FlatMapValues(fl).Flip()
-
-	var id func(int) int
-
-	var op genmeth.Option[int]
-	var _ int = op.MapIfPresent(id).Get()
-
-	var ol genmeth.OrderedList[int]
-	var _ int = ol.Min().Get()
-
-	var b genmeth.Box[int]
-	b.Set(42)
-	var _ int = b.Get()
-}
-`
-
-	importer := importMap{
-		"genmeth": genmeth,
-	}
-	if _, err := check("p", pSrc, importer); err != nil {
-		t.Errorf("Check failed: %v", err)
-	}
-}
diff --git a/src/go/internal/gcimporter/genmeth_test.go b/src/go/internal/gcimporter/genmeth_test.go
new file mode 100644
index 0000000..63b8858
--- /dev/null
+++ b/src/go/internal/gcimporter/genmeth_test.go
@@ -0,0 +1,92 @@
+// Copyright 2026 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build goexperiment.genericmethods
+
+package gcimporter_test
+
+import (
+	"internal/testenv"
+	"os"
+	"path/filepath"
+	"runtime"
+	"testing"
+
+	"go/ast"
+	"go/parser"
+	"go/token"
+	"go/types"
+
+	. "go/internal/gcimporter"
+)
+
+func TestGenMeth(t *testing.T) {
+	testenv.MustHaveGoBuild(t)
+
+	// This package only handles gc export data.
+	if runtime.Compiler != "gc" {
+		t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler)
+	}
+
+	tmpdir := t.TempDir()
+	testoutdir := filepath.Join(tmpdir, "testdata")
+	if err := os.Mkdir(testoutdir, 0700); err != nil {
+		t.Fatalf("making output dir: %v", err)
+	}
+
+	compile(t, "testdata", "genmeth.go", testoutdir, nil)
+
+	fset := token.NewFileSet()
+
+	genmeth, err := Import(fset, make(map[string]*types.Package), "./testdata/genmeth", tmpdir, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	check := func(pkgname, src string, imports importMap) (*types.Package, error) {
+		f, err := parser.ParseFile(fset, "genmeth.go", src, 0)
+		if err != nil {
+			return nil, err
+		}
+		config := &types.Config{
+			Importer: imports,
+		}
+		return config.Check(pkgname, fset, []*ast.File{f}, nil)
+	}
+
+	const pSrc = `package p
+
+import "genmeth"
+
+func _() {
+	var ex func(int) genmeth.List[int]
+	var fl func(genmeth.List[int]) genmeth.List[int]
+
+	var l genmeth.List[int]
+	l = l.Map(ex).FlatMap(fl)
+
+	var bl genmeth.BiList[int, any]
+	bl = bl.MapKeys(ex).Flip().FlatMapValues(fl).Flip()
+
+	var id func(int) int
+
+	var op genmeth.Option[int]
+	var _ int = op.MapIfPresent(id).Get()
+
+	var ol genmeth.OrderedList[int]
+	var _ int = ol.Min().Get()
+
+	var b genmeth.Box[int]
+	b.Set(42)
+	var _ int = b.Get()
+}
+`
+
+	importer := importMap{
+		"genmeth": genmeth,
+	}
+	if _, err := check("p", pSrc, importer); err != nil {
+		t.Errorf("Check failed: %v", err)
+	}
+}
diff --git a/test/genmeth.go b/test/genmeth.go
index 41c23a0..55f7b89 100644
--- a/test/genmeth.go
+++ b/test/genmeth.go
@@ -1,4 +1,5 @@
-// skip
+// run
+//go:build goexperiment.genericmethods
 
 // Copyright 2026 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/test/genmeth1.go b/test/genmeth1.go
index 311b82d..9effd43 100644
--- a/test/genmeth1.go
+++ b/test/genmeth1.go
@@ -1,4 +1,5 @@
-// skip
+// run
+//go:build goexperiment.genericmethods
 
 // Copyright 2026 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/test/genmeth2.go b/test/genmeth2.go
index 259ccb5..1d1c6af 100644
--- a/test/genmeth2.go
+++ b/test/genmeth2.go
@@ -1,4 +1,5 @@
-// skip
+// run
+//go:build goexperiment.genericmethods
 
 // Copyright 2026 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style