diff --git a/go/ssa/builder_test.go b/go/ssa/builder_test.go
index 0307ff7c8..c2e5590b2 100644
--- a/go/ssa/builder_test.go
+++ b/go/ssa/builder_test.go
@@ -500,24 +500,7 @@ func h(error)
// t8 = phi [1: t7, 3: t4] #e
// ...
- // Parse
- var conf loader.Config
- f, err := conf.ParseFile("", input)
- if err != nil {
- t.Fatalf("parse: %v", err)
- }
- conf.CreateFromFiles("p", f)
-
- // Load
- lprog, err := conf.Load()
- if err != nil {
- t.Fatalf("Load: %v", err)
- }
-
- // Create and build SSA
- prog := ssautil.CreateProgram(lprog, ssa.BuilderMode(0))
- p := prog.Package(lprog.Package("p").Pkg)
- p.Build()
+ p, _ := buildPackage(t, input, ssa.BuilderMode(0))
g := p.Func("g")
phis := 0
@@ -566,24 +549,7 @@ func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer)
// func init func()
// var init$guard bool
- // Parse
- var conf loader.Config
- f, err := conf.ParseFile("", input)
- if err != nil {
- t.Fatalf("parse: %v", err)
- }
- conf.CreateFromFiles("p", f)
-
- // Load
- lprog, err := conf.Load()
- if err != nil {
- t.Fatalf("Load: %v", err)
- }
-
- // Create and build SSA
- prog := ssautil.CreateProgram(lprog, ssa.BuilderMode(0))
- p := prog.Package(lprog.Package("p").Pkg)
- p.Build()
+ p, _ := buildPackage(t, input, ssa.BuilderMode(0))
if load := p.Func("Load"); load.Signature.TypeParams().Len() != 1 {
t.Errorf("expected a single type param T for Load got %q", load.Signature)
@@ -619,25 +585,8 @@ var indirect = R[int].M
// var thunk func(S[int]) int
// var wrapper func(R[int]) int
- // Parse
- var conf loader.Config
- f, err := conf.ParseFile("", input)
- if err != nil {
- t.Fatalf("parse: %v", err)
- }
- conf.CreateFromFiles("p", f)
-
- // Load
- lprog, err := conf.Load()
- if err != nil {
- t.Fatalf("Load: %v", err)
- }
-
for _, mode := range []ssa.BuilderMode{ssa.BuilderMode(0), ssa.InstantiateGenerics} {
- // Create and build SSA
- prog := ssautil.CreateProgram(lprog, mode)
- p := prog.Package(lprog.Package("p").Pkg)
- p.Build()
+ p, _ := buildPackage(t, input, mode)
for _, entry := range []struct {
name string // name of the package variable
@@ -800,24 +749,7 @@ func sliceMax(s []int) []int { return s[a():b():c()] }
`
- // Parse
- var conf loader.Config
- f, err := conf.ParseFile("", input)
- if err != nil {
- t.Fatalf("parse: %v", err)
- }
- conf.CreateFromFiles("p", f)
-
- // Load
- lprog, err := conf.Load()
- if err != nil {
- t.Fatalf("Load: %v", err)
- }
-
- // Create and build SSA
- prog := ssautil.CreateProgram(lprog, ssa.BuilderMode(0))
- p := prog.Package(lprog.Package("p").Pkg)
- p.Build()
+ p, _ := buildPackage(t, input, ssa.BuilderMode(0))
for _, item := range []struct {
fn string
@@ -1031,23 +963,8 @@ func TestSyntax(t *testing.T) {
var _ = F[P] // unreferenced => not instantiated
`
- // Parse
- var conf loader.Config
- f, err := conf.ParseFile("", input)
- if err != nil {
- t.Fatalf("parse: %v", err)
- }
- conf.CreateFromFiles("p", f)
-
- // Load
- lprog, err := conf.Load()
- if err != nil {
- t.Fatalf("Load: %v", err)
- }
-
- // Create and build SSA
- prog := ssautil.CreateProgram(lprog, ssa.InstantiateGenerics)
- prog.Build()
+ p, _ := buildPackage(t, input, ssa.InstantiateGenerics)
+ prog := p.Prog
// Collect syntax information for all of the functions.
got := make(map[string]string)
@@ -1120,21 +1037,7 @@ func TestLabels(t *testing.T) {
func main() { _:println(1); _:println(2)}`,
}
for _, test := range tests {
- conf := loader.Config{Fset: token.NewFileSet()}
- f, err := parser.ParseFile(conf.Fset, "", test, 0)
- if err != nil {
- t.Errorf("parse error: %s", err)
- return
- }
- conf.CreateFromFiles("main", f)
- iprog, err := conf.Load()
- if err != nil {
- t.Error(err)
- continue
- }
- prog := ssautil.CreateProgram(iprog, ssa.BuilderMode(0))
- pkg := prog.Package(iprog.Created[0].Pkg)
- pkg.Build()
+ buildPackage(t, test, ssa.BuilderMode(0))
}
}
@@ -1168,22 +1071,8 @@ func TestIssue67079(t *testing.T) {
// Load the package.
const src = `package p; type T int; func (T) f() {}; var _ = (*T).f`
- conf := loader.Config{Fset: token.NewFileSet()}
- f, err := parser.ParseFile(conf.Fset, "p.go", src, 0)
- if err != nil {
- t.Fatal(err)
- }
- conf.CreateFromFiles("p", f)
- iprog, err := conf.Load()
- if err != nil {
- t.Fatal(err)
- }
- pkg := iprog.Created[0].Pkg
-
- // Create and build SSA program.
- prog := ssautil.CreateProgram(iprog, ssa.BuilderMode(0))
- prog.Build()
-
+ spkg, ppkg := buildPackage(t, src, ssa.BuilderMode(0))
+ prog := spkg.Prog
var g errgroup.Group
// Access bodies of all functions.
@@ -1202,7 +1091,7 @@ func TestIssue67079(t *testing.T) {
// Force building of wrappers.
g.Go(func() error {
- ptrT := types.NewPointer(pkg.Scope().Lookup("T").Type())
+ ptrT := types.NewPointer(ppkg.Types.Scope().Lookup("T").Type())
ptrTf := types.NewMethodSet(ptrT).At(0) // (*T).f symbol
prog.MethodValue(ptrTf)
return nil