Revert "x/playground: remove -mod=mod and execute go mod tidy before command"

This reverts CL 458895.

Reason for revert: Broke the playground with "no space left on device".

Change-Id: I0ae0a8489446bd66b49196dce64ee79de6f85486
Reviewed-on: https://go-review.googlesource.com/c/playground/+/560460
Commit-Queue: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
Auto-Submit: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
diff --git a/mod.go b/mod.go
deleted file mode 100644
index 6f523a2..0000000
--- a/mod.go
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2024 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.
-
-package main
-
-import (
-	"context"
-	"fmt"
-	"os"
-	"os/exec"
-	"strings"
-)
-
-func modTidy(ctx context.Context, dir, goPath string) (output string, execErr error) {
-	cmd := exec.Command("go", "mod", "tidy")
-	cmd.Dir = dir
-	cmd.Env = append(os.Environ(), "CGO_ENABLED=0", "GOPATH="+goPath)
-	cmd.Env = append(cmd.Env,
-		"GO111MODULE=on",
-		"GOPROXY="+playgroundGoproxy(),
-	)
-	out, err := cmd.CombinedOutput()
-	if err == nil {
-		return "", nil
-	}
-	if _, ok := err.(*exec.ExitError); !ok {
-		return "", fmt.Errorf("error vetting go source: %v", err)
-	}
-
-	// Rewrite compiler errors to refer to progName
-	// instead of '/tmp/sandbox1234/main.go'.
-	errs := strings.Replace(string(out), dir, "", -1)
-
-	return errs, nil
-}
diff --git a/sandbox.go b/sandbox.go
index b009c74..c081e06 100644
--- a/sandbox.go
+++ b/sandbox.go
@@ -460,6 +460,7 @@
 	// Create a GOPATH just for modules to be downloaded
 	// into GOPATH/pkg/mod.
 	cmd.Args = append(cmd.Args, "-modcacherw")
+	cmd.Args = append(cmd.Args, "-mod=mod")
 	br.goPath, err = os.MkdirTemp("", "gopath")
 	if err != nil {
 		log.Printf("error creating temp directory: %v", err)
@@ -471,12 +472,6 @@
 	out := &bytes.Buffer{}
 	cmd.Stderr, cmd.Stdout = out, out
 
-	// Run "go mod tidy" before executing a command.
-	_, err = modTidy(ctx, tmpDir, br.goPath)
-	if err != nil {
-		return nil, fmt.Errorf("error running go mod tidy: %v", err)
-	}
-
 	if err := cmd.Start(); err != nil {
 		return nil, fmt.Errorf("error starting go build: %v", err)
 	}
diff --git a/tests.go b/tests.go
index aa59aa0..46731a6 100644
--- a/tests.go
+++ b/tests.go
@@ -633,40 +633,4 @@
 `, errors: `./foo.go:6:2: syntax error: unexpected =, expecting }
 `,
 	},
-	{
-		name: "workspace",
-		prog: `
-package main
-
-import "internal/bar"
-
-func main() {
-	bar.Print()
-}
--- go.work --
-go 1.18
-
-use (
-	.
-	./projects/bar
-)
--- go.mod --
-module internal/foo
-
-go 1.18
-
-require internal/bar v0.0.0
--- projects/bar/go.mod --
-module internal/bar
-
-go 1.18
--- projects/bar/upper.go --
-package bar
-
-import "fmt"
-
-func Print() {
-	fmt.Println("bar")
-}
-`, want: "bar\n"},
 }
diff --git a/vet.go b/vet.go
index ae9043a..d58c0f7 100644
--- a/vet.go
+++ b/vet.go
@@ -62,7 +62,7 @@
 			mGoVetLatency.M(float64(time.Since(start))/float64(time.Millisecond)))
 	}()
 
-	cmd := exec.Command("go", "vet", "--tags=faketime")
+	cmd := exec.Command("go", "vet", "--tags=faketime", "--mod=mod")
 	cmd.Dir = dir
 	// Linux go binary is not built with CGO_ENABLED=0.
 	// Prevent vet to compile packages in cgo mode.