internal/lsp: remove multi-module support in tests

Mostly a rollback of CL 217541. No changes in the actual tests.

Change-Id: I910551d4750822bd2d8c5039d1cf194e42d01500
Reviewed-on: https://go-review.googlesource.com/c/tools/+/256363
Trust: Heschi Kreinick <heschi@google.com>
Run-TryBot: Heschi Kreinick <heschi@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/internal/lsp/cmd/test/cmdtest.go b/internal/lsp/cmd/test/cmdtest.go
index cb911cb..2339413 100644
--- a/internal/lsp/cmd/test/cmdtest.go
+++ b/internal/lsp/cmd/test/cmdtest.go
@@ -53,14 +53,9 @@
 		}
 		ctx := tests.Context(t)
 		ts := NewTestServer(ctx, options)
-		data := tests.Load(t, exporter, testdata)
-		for _, datum := range data {
-			defer datum.Exported.Cleanup()
-			t.Run(tests.FormatFolderName(datum.Folder), func(t *testing.T) {
-				t.Helper()
-				tests.Run(t, NewRunner(exporter, datum, ctx, ts.Addr, options), datum)
-			})
-		}
+		datum := tests.Load(t, exporter, testdata)
+		defer datum.Exported.Cleanup()
+		tests.Run(t, NewRunner(exporter, datum, ctx, ts.Addr, options), datum)
 		cmd.CloseTestConnections(ctx)
 	}
 }
diff --git a/internal/lsp/lsp_test.go b/internal/lsp/lsp_test.go
index b829001..7766940 100644
--- a/internal/lsp/lsp_test.go
+++ b/internal/lsp/lsp_test.go
@@ -43,60 +43,55 @@
 
 func testLSP(t *testing.T, exporter packagestest.Exporter) {
 	ctx := tests.Context(t)
-	data := tests.Load(t, exporter, "testdata")
+	datum := tests.Load(t, exporter, "testdata")
+	defer datum.Exported.Cleanup()
 
-	for _, datum := range data {
-		defer datum.Exported.Cleanup()
+	cache := cache.New(ctx, nil)
+	session := cache.NewSession(ctx)
+	options := source.DefaultOptions().Clone()
+	tests.DefaultOptions(options)
+	session.SetOptions(options)
+	options.Env = datum.Config.Env
+	view, _, release, err := session.NewView(ctx, datum.Config.Dir, span.URIFromPath(datum.Config.Dir), options)
+	release()
+	if err != nil {
+		t.Fatal(err)
+	}
 
-		cache := cache.New(ctx, nil)
-		session := cache.NewSession(ctx)
-		options := source.DefaultOptions().Clone()
-		tests.DefaultOptions(options)
-		session.SetOptions(options)
-		options.Env = datum.Config.Env
-		view, _, release, err := session.NewView(ctx, datum.Config.Dir, span.URIFromPath(datum.Config.Dir), options)
-		release()
-		if err != nil {
-			t.Fatal(err)
+	defer view.Shutdown(ctx)
+
+	// Enable type error analyses for tests.
+	// TODO(golang/go#38212): Delete this once they are enabled by default.
+	tests.EnableAllAnalyzers(view, options)
+	view.SetOptions(ctx, options)
+
+	// Only run the -modfile specific tests in module mode with Go 1.14 or above.
+	datum.ModfileFlagAvailable = view.ModFile() != "" && testenv.Go1Point() >= 14
+
+	var modifications []source.FileModification
+	for filename, content := range datum.Config.Overlay {
+		kind := source.DetectLanguage("", filename)
+		if kind != source.Go {
+			continue
 		}
-
-		defer view.Shutdown(ctx)
-
-		// Enable type error analyses for tests.
-		// TODO(golang/go#38212): Delete this once they are enabled by default.
-		tests.EnableAllAnalyzers(view, options)
-		view.SetOptions(ctx, options)
-
-		// Only run the -modfile specific tests in module mode with Go 1.14 or above.
-		datum.ModfileFlagAvailable = view.ModFile() != "" && testenv.Go1Point() >= 14
-
-		var modifications []source.FileModification
-		for filename, content := range datum.Config.Overlay {
-			kind := source.DetectLanguage("", filename)
-			if kind != source.Go {
-				continue
-			}
-			modifications = append(modifications, source.FileModification{
-				URI:        span.URIFromPath(filename),
-				Action:     source.Open,
-				Version:    -1,
-				Text:       content,
-				LanguageID: "go",
-			})
-		}
-		if err := session.ModifyFiles(ctx, modifications); err != nil {
-			t.Fatal(err)
-		}
-		r := &runner{
-			server: NewServer(session, nil),
-			data:   datum,
-			ctx:    ctx,
-		}
-		t.Run(tests.FormatFolderName(datum.Folder), func(t *testing.T) {
-			t.Helper()
-			tests.Run(t, r, datum)
+		modifications = append(modifications, source.FileModification{
+			URI:        span.URIFromPath(filename),
+			Action:     source.Open,
+			Version:    -1,
+			Text:       content,
+			LanguageID: "go",
 		})
 	}
+	if err := session.ModifyFiles(ctx, modifications); err != nil {
+		t.Fatal(err)
+	}
+	r := &runner{
+		server: NewServer(session, nil),
+		data:   datum,
+		ctx:    ctx,
+	}
+	tests.Run(t, r, datum)
+
 }
 
 func (r *runner) CallHierarchy(t *testing.T, spn span.Span, expectedCalls *tests.CallHierarchyResult) {
diff --git a/internal/lsp/source/source_test.go b/internal/lsp/source/source_test.go
index ce790bb..37ebc6a 100644
--- a/internal/lsp/source/source_test.go
+++ b/internal/lsp/source/source_test.go
@@ -46,56 +46,51 @@
 
 func testSource(t *testing.T, exporter packagestest.Exporter) {
 	ctx := tests.Context(t)
-	data := tests.Load(t, exporter, "../testdata")
-	for _, datum := range data {
-		defer datum.Exported.Cleanup()
+	datum := tests.Load(t, exporter, "../testdata")
+	defer datum.Exported.Cleanup()
 
-		cache := cache.New(ctx, nil)
-		session := cache.NewSession(ctx)
-		options := source.DefaultOptions().Clone()
-		tests.DefaultOptions(options)
-		options.Env = datum.Config.Env
-		view, _, release, err := session.NewView(ctx, "source_test", span.URIFromPath(datum.Config.Dir), options)
-		release()
-		if err != nil {
-			t.Fatal(err)
-		}
-		defer view.Shutdown(ctx)
+	cache := cache.New(ctx, nil)
+	session := cache.NewSession(ctx)
+	options := source.DefaultOptions().Clone()
+	tests.DefaultOptions(options)
+	options.Env = datum.Config.Env
+	view, _, release, err := session.NewView(ctx, "source_test", span.URIFromPath(datum.Config.Dir), options)
+	release()
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer view.Shutdown(ctx)
 
-		// Enable type error analyses for tests.
-		// TODO(golang/go#38212): Delete this once they are enabled by default.
-		tests.EnableAllAnalyzers(view, options)
-		view.SetOptions(ctx, options)
-		var modifications []source.FileModification
-		for filename, content := range datum.Config.Overlay {
-			kind := source.DetectLanguage("", filename)
-			if kind != source.Go {
-				continue
-			}
-			modifications = append(modifications, source.FileModification{
-				URI:        span.URIFromPath(filename),
-				Action:     source.Open,
-				Version:    -1,
-				Text:       content,
-				LanguageID: "go",
-			})
+	// Enable type error analyses for tests.
+	// TODO(golang/go#38212): Delete this once they are enabled by default.
+	tests.EnableAllAnalyzers(view, options)
+	view.SetOptions(ctx, options)
+	var modifications []source.FileModification
+	for filename, content := range datum.Config.Overlay {
+		kind := source.DetectLanguage("", filename)
+		if kind != source.Go {
+			continue
 		}
-		if err := session.ModifyFiles(ctx, modifications); err != nil {
-			t.Fatal(err)
-		}
-		snapshot, release := view.Snapshot(ctx)
-		defer release()
-		r := &runner{
-			view:     view,
-			snapshot: snapshot,
-			data:     datum,
-			ctx:      ctx,
-		}
-		t.Run(tests.FormatFolderName(datum.Folder), func(t *testing.T) {
-			t.Helper()
-			tests.Run(t, r, datum)
+		modifications = append(modifications, source.FileModification{
+			URI:        span.URIFromPath(filename),
+			Action:     source.Open,
+			Version:    -1,
+			Text:       content,
+			LanguageID: "go",
 		})
 	}
+	if err := session.ModifyFiles(ctx, modifications); err != nil {
+		t.Fatal(err)
+	}
+	snapshot, release := view.Snapshot(ctx)
+	defer release()
+	r := &runner{
+		view:     view,
+		snapshot: snapshot,
+		data:     datum,
+		ctx:      ctx,
+	}
+	tests.Run(t, r, datum)
 }
 
 func (r *runner) CallHierarchy(t *testing.T, spn span.Span, expectedCalls *tests.CallHierarchyResult) {
diff --git a/internal/lsp/testdata/lsp/primarymod/%percent/perc%ent.go b/internal/lsp/testdata/%percent/perc%ent.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/%percent/perc%ent.go
rename to internal/lsp/testdata/%percent/perc%ent.go
diff --git a/internal/lsp/testdata/lsp/primarymod/address/address.go b/internal/lsp/testdata/address/address.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/address/address.go
rename to internal/lsp/testdata/address/address.go
diff --git a/internal/lsp/testdata/lsp/primarymod/analyzer/bad_test.go b/internal/lsp/testdata/analyzer/bad_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/analyzer/bad_test.go
rename to internal/lsp/testdata/analyzer/bad_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/anon/anon.go.in b/internal/lsp/testdata/anon/anon.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/anon/anon.go.in
rename to internal/lsp/testdata/anon/anon.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/append/append.go b/internal/lsp/testdata/append/append.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/append/append.go
rename to internal/lsp/testdata/append/append.go
diff --git a/internal/lsp/testdata/lsp/primarymod/append/append2.go.in b/internal/lsp/testdata/append/append2.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/append/append2.go.in
rename to internal/lsp/testdata/append/append2.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/arraytype/array_type.go.in b/internal/lsp/testdata/arraytype/array_type.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/arraytype/array_type.go.in
rename to internal/lsp/testdata/arraytype/array_type.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/assign/assign.go.in b/internal/lsp/testdata/assign/assign.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/assign/assign.go.in
rename to internal/lsp/testdata/assign/assign.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/assign/internal/secret/secret.go b/internal/lsp/testdata/assign/internal/secret/secret.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/assign/internal/secret/secret.go
rename to internal/lsp/testdata/assign/internal/secret/secret.go
diff --git a/internal/lsp/testdata/lsp/primarymod/bad/bad0.go b/internal/lsp/testdata/bad/bad0.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bad/bad0.go
rename to internal/lsp/testdata/bad/bad0.go
diff --git a/internal/lsp/testdata/lsp/primarymod/bad/bad1.go b/internal/lsp/testdata/bad/bad1.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bad/bad1.go
rename to internal/lsp/testdata/bad/bad1.go
diff --git a/internal/lsp/testdata/lsp/primarymod/bad/badimport.go b/internal/lsp/testdata/bad/badimport.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bad/badimport.go
rename to internal/lsp/testdata/bad/badimport.go
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt.go.in b/internal/lsp/testdata/badstmt/badstmt.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt.go.in
rename to internal/lsp/testdata/badstmt/badstmt.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_2.go.in b/internal/lsp/testdata/badstmt/badstmt_2.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_2.go.in
rename to internal/lsp/testdata/badstmt/badstmt_2.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_3.go.in b/internal/lsp/testdata/badstmt/badstmt_3.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_3.go.in
rename to internal/lsp/testdata/badstmt/badstmt_3.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_4.go.in b/internal/lsp/testdata/badstmt/badstmt_4.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_4.go.in
rename to internal/lsp/testdata/badstmt/badstmt_4.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/bar/bar.go.in b/internal/lsp/testdata/bar/bar.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bar/bar.go.in
rename to internal/lsp/testdata/bar/bar.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/basiclit/basiclit.go b/internal/lsp/testdata/basiclit/basiclit.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/basiclit/basiclit.go
rename to internal/lsp/testdata/basiclit/basiclit.go
diff --git a/internal/lsp/testdata/lsp/primarymod/baz/baz.go.in b/internal/lsp/testdata/baz/baz.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/baz/baz.go.in
rename to internal/lsp/testdata/baz/baz.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go b/internal/lsp/testdata/builtins/builtin_args.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go
rename to internal/lsp/testdata/builtins/builtin_args.go
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtin_types.go b/internal/lsp/testdata/builtins/builtin_types.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/builtin_types.go
rename to internal/lsp/testdata/builtins/builtin_types.go
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtins.go b/internal/lsp/testdata/builtins/builtins.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/builtins.go
rename to internal/lsp/testdata/builtins/builtins.go
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/constants.go b/internal/lsp/testdata/builtins/constants.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/constants.go
rename to internal/lsp/testdata/builtins/constants.go
diff --git a/internal/lsp/testdata/lsp/primarymod/callhierarchy/callhierarchy.go b/internal/lsp/testdata/callhierarchy/callhierarchy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/callhierarchy/callhierarchy.go
rename to internal/lsp/testdata/callhierarchy/callhierarchy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/callhierarchy/incoming/incoming.go b/internal/lsp/testdata/callhierarchy/incoming/incoming.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/callhierarchy/incoming/incoming.go
rename to internal/lsp/testdata/callhierarchy/incoming/incoming.go
diff --git a/internal/lsp/testdata/lsp/primarymod/callhierarchy/outgoing/outgoing.go b/internal/lsp/testdata/callhierarchy/outgoing/outgoing.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/callhierarchy/outgoing/outgoing.go
rename to internal/lsp/testdata/callhierarchy/outgoing/outgoing.go
diff --git a/internal/lsp/testdata/lsp/primarymod/casesensitive/casesensitive.go b/internal/lsp/testdata/casesensitive/casesensitive.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/casesensitive/casesensitive.go
rename to internal/lsp/testdata/casesensitive/casesensitive.go
diff --git a/internal/lsp/testdata/lsp/primarymod/cast/cast.go.in b/internal/lsp/testdata/cast/cast.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cast/cast.go.in
rename to internal/lsp/testdata/cast/cast.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go b/internal/lsp/testdata/cgo/declarecgo.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go
rename to internal/lsp/testdata/cgo/declarecgo.go
diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden b/internal/lsp/testdata/cgo/declarecgo.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden
rename to internal/lsp/testdata/cgo/declarecgo.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo_nocgo.go b/internal/lsp/testdata/cgo/declarecgo_nocgo.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgo/declarecgo_nocgo.go
rename to internal/lsp/testdata/cgo/declarecgo_nocgo.go
diff --git a/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden b/internal/lsp/testdata/cgoimport/usecgo.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden
rename to internal/lsp/testdata/cgoimport/usecgo.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.in b/internal/lsp/testdata/cgoimport/usecgo.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.in
rename to internal/lsp/testdata/cgoimport/usecgo.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/channel/channel.go b/internal/lsp/testdata/channel/channel.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/channel/channel.go
rename to internal/lsp/testdata/channel/channel.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/double/b/b.go b/internal/lsp/testdata/circular/double/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/double/b/b.go
rename to internal/lsp/testdata/circular/double/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/double/one/one.go b/internal/lsp/testdata/circular/double/one/one.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/double/one/one.go
rename to internal/lsp/testdata/circular/double/one/one.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/self.go b/internal/lsp/testdata/circular/self.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/self.go
rename to internal/lsp/testdata/circular/self.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/triple/a/a.go b/internal/lsp/testdata/circular/triple/a/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/triple/a/a.go
rename to internal/lsp/testdata/circular/triple/a/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/triple/b/b.go b/internal/lsp/testdata/circular/triple/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/triple/b/b.go
rename to internal/lsp/testdata/circular/triple/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/triple/c/c.go b/internal/lsp/testdata/circular/triple/c/c.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/triple/c/c.go
rename to internal/lsp/testdata/circular/triple/c/c.go
diff --git a/internal/lsp/testdata/lsp/primarymod/codelens/codelens_test.go b/internal/lsp/testdata/codelens/codelens_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/codelens/codelens_test.go
rename to internal/lsp/testdata/codelens/codelens_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/comment_completion/comment_completion.go.in b/internal/lsp/testdata/comment_completion/comment_completion.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/comment_completion/comment_completion.go.in
rename to internal/lsp/testdata/comment_completion/comment_completion.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/complit/complit.go.in b/internal/lsp/testdata/complit/complit.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/complit/complit.go.in
rename to internal/lsp/testdata/complit/complit.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/constant/constant.go b/internal/lsp/testdata/constant/constant.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/constant/constant.go
rename to internal/lsp/testdata/constant/constant.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for.go b/internal/lsp/testdata/danglingstmt/dangling_for.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for.go
rename to internal/lsp/testdata/danglingstmt/dangling_for.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init.go b/internal/lsp/testdata/danglingstmt/dangling_for_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init.go
rename to internal/lsp/testdata/danglingstmt/dangling_for_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond.go b/internal/lsp/testdata/danglingstmt/dangling_for_init_cond.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond.go
rename to internal/lsp/testdata/danglingstmt/dangling_for_init_cond.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond_post.go b/internal/lsp/testdata/danglingstmt/dangling_for_init_cond_post.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond_post.go
rename to internal/lsp/testdata/danglingstmt/dangling_for_init_cond_post.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if.go b/internal/lsp/testdata/danglingstmt/dangling_if.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if.go
rename to internal/lsp/testdata/danglingstmt/dangling_if.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_eof.go b/internal/lsp/testdata/danglingstmt/dangling_if_eof.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_eof.go
rename to internal/lsp/testdata/danglingstmt/dangling_if_eof.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init.go b/internal/lsp/testdata/danglingstmt/dangling_if_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init.go
rename to internal/lsp/testdata/danglingstmt/dangling_if_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init_cond.go b/internal/lsp/testdata/danglingstmt/dangling_if_init_cond.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init_cond.go
rename to internal/lsp/testdata/danglingstmt/dangling_if_init_cond.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_multiline_if.go b/internal/lsp/testdata/danglingstmt/dangling_multiline_if.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_multiline_if.go
rename to internal/lsp/testdata/danglingstmt/dangling_multiline_if.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_1.go b/internal/lsp/testdata/danglingstmt/dangling_selector_1.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_1.go
rename to internal/lsp/testdata/danglingstmt/dangling_selector_1.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_2.go b/internal/lsp/testdata/danglingstmt/dangling_selector_2.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_2.go
rename to internal/lsp/testdata/danglingstmt/dangling_selector_2.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init.go b/internal/lsp/testdata/danglingstmt/dangling_switch_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init.go
rename to internal/lsp/testdata/danglingstmt/dangling_switch_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init_tag.go b/internal/lsp/testdata/danglingstmt/dangling_switch_init_tag.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init_tag.go
rename to internal/lsp/testdata/danglingstmt/dangling_switch_init_tag.go
diff --git a/internal/lsp/testdata/lsp/primarymod/deep/deep.go b/internal/lsp/testdata/deep/deep.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/deep/deep.go
rename to internal/lsp/testdata/deep/deep.go
diff --git a/internal/lsp/testdata/lsp/primarymod/errors/errors.go b/internal/lsp/testdata/errors/errors.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/errors/errors.go
rename to internal/lsp/testdata/errors/errors.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go b/internal/lsp/testdata/extract/extract_function/extract_args_returns.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go
rename to internal/lsp/testdata/extract/extract_function/extract_args_returns.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go.golden b/internal/lsp/testdata/extract/extract_function/extract_args_returns.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_args_returns.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go b/internal/lsp/testdata/extract/extract_function/extract_basic.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go
rename to internal/lsp/testdata/extract/extract_function/extract_basic.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go.golden b/internal/lsp/testdata/extract/extract_function/extract_basic.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_basic.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go b/internal/lsp/testdata/extract/extract_function/extract_redefine.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go
rename to internal/lsp/testdata/extract/extract_function/extract_redefine.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go.golden b/internal/lsp/testdata/extract/extract_function/extract_redefine.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_redefine.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go b/internal/lsp/testdata/extract/extract_function/extract_return_basic.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_basic.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_basic.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_basic.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go b/internal/lsp/testdata/extract/extract_function/extract_return_complex.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_complex.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_complex.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_complex.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go b/internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go b/internal/lsp/testdata/extract/extract_function/extract_return_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_init.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_init.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go b/internal/lsp/testdata/extract/extract_function/extract_scope.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go
rename to internal/lsp/testdata/extract/extract_function/extract_scope.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go.golden b/internal/lsp/testdata/extract/extract_function/extract_scope.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_scope.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go b/internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go
rename to internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go.golden b/internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go b/internal/lsp/testdata/extract/extract_function/extract_smart_return.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go
rename to internal/lsp/testdata/extract/extract_function/extract_smart_return.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go.golden b/internal/lsp/testdata/extract/extract_function/extract_smart_return.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_smart_return.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go b/internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go
rename to internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go.golden b/internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go b/internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go
rename to internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go.golden b/internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go.golden
rename to internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go b/internal/lsp/testdata/extract/extract_variable/extract_func_call.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go
rename to internal/lsp/testdata/extract/extract_variable/extract_func_call.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go.golden b/internal/lsp/testdata/extract/extract_variable/extract_func_call.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go.golden
rename to internal/lsp/testdata/extract/extract_variable/extract_func_call.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go b/internal/lsp/testdata/extract/extract_variable/extract_scope.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go
rename to internal/lsp/testdata/extract/extract_variable/extract_scope.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go.golden b/internal/lsp/testdata/extract/extract_variable/extract_scope.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go.golden
rename to internal/lsp/testdata/extract/extract_variable/extract_scope.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fieldlist/field_list.go b/internal/lsp/testdata/fieldlist/field_list.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fieldlist/field_list.go
rename to internal/lsp/testdata/fieldlist/field_list.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a.go b/internal/lsp/testdata/fillstruct/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a.go
rename to internal/lsp/testdata/fillstruct/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a.go.golden b/internal/lsp/testdata/fillstruct/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a.go.golden
rename to internal/lsp/testdata/fillstruct/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go b/internal/lsp/testdata/fillstruct/a2.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go
rename to internal/lsp/testdata/fillstruct/a2.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go.golden b/internal/lsp/testdata/fillstruct/a2.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go.golden
rename to internal/lsp/testdata/fillstruct/a2.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go b/internal/lsp/testdata/fillstruct/a3.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go
rename to internal/lsp/testdata/fillstruct/a3.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go.golden b/internal/lsp/testdata/fillstruct/a3.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go.golden
rename to internal/lsp/testdata/fillstruct/a3.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go b/internal/lsp/testdata/fillstruct/a4.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go
rename to internal/lsp/testdata/fillstruct/a4.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go.golden b/internal/lsp/testdata/fillstruct/a4.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go.golden
rename to internal/lsp/testdata/fillstruct/a4.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/data/a.go b/internal/lsp/testdata/fillstruct/data/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/data/a.go
rename to internal/lsp/testdata/fillstruct/data/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go b/internal/lsp/testdata/fillstruct/fill_struct.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go
rename to internal/lsp/testdata/fillstruct/fill_struct.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go.golden b/internal/lsp/testdata/fillstruct/fill_struct.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go b/internal/lsp/testdata/fillstruct/fill_struct_anon.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go
rename to internal/lsp/testdata/fillstruct/fill_struct_anon.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_anon.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_anon.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go b/internal/lsp/testdata/fillstruct/fill_struct_nested.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go
rename to internal/lsp/testdata/fillstruct/fill_struct_nested.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_nested.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_nested.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go b/internal/lsp/testdata/fillstruct/fill_struct_package.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go
rename to internal/lsp/testdata/fillstruct/fill_struct_package.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_package.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_package.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go b/internal/lsp/testdata/fillstruct/fill_struct_spaces.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go
rename to internal/lsp/testdata/fillstruct/fill_struct_spaces.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_spaces.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_spaces.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/a.go b/internal/lsp/testdata/folding/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/a.go
rename to internal/lsp/testdata/folding/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/a.go.golden b/internal/lsp/testdata/folding/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/a.go.golden
rename to internal/lsp/testdata/folding/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/bad.go.golden b/internal/lsp/testdata/folding/bad.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/bad.go.golden
rename to internal/lsp/testdata/folding/bad.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/bad.go.in b/internal/lsp/testdata/folding/bad.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/bad.go.in
rename to internal/lsp/testdata/folding/bad.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/foo/foo.go b/internal/lsp/testdata/foo/foo.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/foo/foo.go
rename to internal/lsp/testdata/foo/foo.go
diff --git a/internal/lsp/testdata/lsp/primarymod/format/bad_format.go.golden b/internal/lsp/testdata/format/bad_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/bad_format.go.golden
rename to internal/lsp/testdata/format/bad_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/bad_format.go.in b/internal/lsp/testdata/format/bad_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/bad_format.go.in
rename to internal/lsp/testdata/format/bad_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/format/good_format.go b/internal/lsp/testdata/format/good_format.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/good_format.go
rename to internal/lsp/testdata/format/good_format.go
diff --git a/internal/lsp/testdata/lsp/primarymod/format/good_format.go.golden b/internal/lsp/testdata/format/good_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/good_format.go.golden
rename to internal/lsp/testdata/format/good_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/newline_format.go.golden b/internal/lsp/testdata/format/newline_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/newline_format.go.golden
rename to internal/lsp/testdata/format/newline_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/newline_format.go.in b/internal/lsp/testdata/format/newline_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/newline_format.go.in
rename to internal/lsp/testdata/format/newline_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/format/one_line.go.golden b/internal/lsp/testdata/format/one_line.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/one_line.go.golden
rename to internal/lsp/testdata/format/one_line.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/one_line.go.in b/internal/lsp/testdata/format/one_line.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/one_line.go.in
rename to internal/lsp/testdata/format/one_line.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/func_rank/func_rank.go.in b/internal/lsp/testdata/func_rank/func_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/func_rank/func_rank.go.in
rename to internal/lsp/testdata/func_rank/func_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/funcsig/func_sig.go b/internal/lsp/testdata/funcsig/func_sig.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/funcsig/func_sig.go
rename to internal/lsp/testdata/funcsig/func_sig.go
diff --git a/internal/lsp/testdata/lsp/primarymod/funcvalue/func_value.go b/internal/lsp/testdata/funcvalue/func_value.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/funcvalue/func_value.go
rename to internal/lsp/testdata/funcvalue/func_value.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fuzzymatch/fuzzymatch.go b/internal/lsp/testdata/fuzzymatch/fuzzymatch.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fuzzymatch/fuzzymatch.go
rename to internal/lsp/testdata/fuzzymatch/fuzzymatch.go
diff --git a/internal/lsp/testdata/lsp/primarymod/generate/generate.go b/internal/lsp/testdata/generate/generate.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/generate/generate.go
rename to internal/lsp/testdata/generate/generate.go
diff --git a/internal/lsp/testdata/lsp/primarymod/generated/generated.go b/internal/lsp/testdata/generated/generated.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/generated/generated.go
rename to internal/lsp/testdata/generated/generated.go
diff --git a/internal/lsp/testdata/lsp/primarymod/generated/generator.go b/internal/lsp/testdata/generated/generator.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/generated/generator.go
rename to internal/lsp/testdata/generated/generator.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a.go b/internal/lsp/testdata/godef/a/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a.go
rename to internal/lsp/testdata/godef/a/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden b/internal/lsp/testdata/godef/a/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden
rename to internal/lsp/testdata/godef/a/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go b/internal/lsp/testdata/godef/a/a_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go
rename to internal/lsp/testdata/godef/a/a_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go.golden b/internal/lsp/testdata/godef/a/a_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go.golden
rename to internal/lsp/testdata/godef/a/a_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go b/internal/lsp/testdata/godef/a/a_x_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go
rename to internal/lsp/testdata/godef/a/a_x_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go.golden b/internal/lsp/testdata/godef/a/a_x_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go.golden
rename to internal/lsp/testdata/godef/a/a_x_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/d.go b/internal/lsp/testdata/godef/a/d.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/d.go
rename to internal/lsp/testdata/godef/a/d.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden b/internal/lsp/testdata/godef/a/d.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden
rename to internal/lsp/testdata/godef/a/d.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/f.go b/internal/lsp/testdata/godef/a/f.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/f.go
rename to internal/lsp/testdata/godef/a/f.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/f.go.golden b/internal/lsp/testdata/godef/a/f.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/f.go.golden
rename to internal/lsp/testdata/godef/a/f.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/random.go b/internal/lsp/testdata/godef/a/random.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/random.go
rename to internal/lsp/testdata/godef/a/random.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden b/internal/lsp/testdata/godef/a/random.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden
rename to internal/lsp/testdata/godef/a/random.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/b.go b/internal/lsp/testdata/godef/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/b.go
rename to internal/lsp/testdata/godef/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden b/internal/lsp/testdata/godef/b/b.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden
rename to internal/lsp/testdata/godef/b/b.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go b/internal/lsp/testdata/godef/b/c.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/c.go
rename to internal/lsp/testdata/godef/b/c.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden b/internal/lsp/testdata/godef/b/c.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden
rename to internal/lsp/testdata/godef/b/c.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.saved b/internal/lsp/testdata/godef/b/c.go.saved
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/c.go.saved
rename to internal/lsp/testdata/godef/b/c.go.saved
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/e.go b/internal/lsp/testdata/godef/b/e.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/e.go
rename to internal/lsp/testdata/godef/b/e.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden b/internal/lsp/testdata/godef/b/e.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden
rename to internal/lsp/testdata/godef/b/e.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden b/internal/lsp/testdata/godef/broken/unclosedIf.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden
rename to internal/lsp/testdata/godef/broken/unclosedIf.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.in b/internal/lsp/testdata/godef/broken/unclosedIf.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.in
rename to internal/lsp/testdata/godef/broken/unclosedIf.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/good/good0.go b/internal/lsp/testdata/good/good0.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/good/good0.go
rename to internal/lsp/testdata/good/good0.go
diff --git a/internal/lsp/testdata/lsp/primarymod/good/good1.go b/internal/lsp/testdata/good/good1.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/good/good1.go
rename to internal/lsp/testdata/good/good1.go
diff --git a/internal/lsp/testdata/lsp/primarymod/highlights/highlights.go b/internal/lsp/testdata/highlights/highlights.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/highlights/highlights.go
rename to internal/lsp/testdata/highlights/highlights.go
diff --git a/internal/lsp/testdata/lsp/primarymod/implementation/implementation.go b/internal/lsp/testdata/implementation/implementation.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/implementation/implementation.go
rename to internal/lsp/testdata/implementation/implementation.go
diff --git a/internal/lsp/testdata/lsp/primarymod/implementation/other/other.go b/internal/lsp/testdata/implementation/other/other.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/implementation/other/other.go
rename to internal/lsp/testdata/implementation/other/other.go
diff --git a/internal/lsp/testdata/lsp/primarymod/implementation/other/other_test.go b/internal/lsp/testdata/implementation/other/other_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/implementation/other/other_test.go
rename to internal/lsp/testdata/implementation/other/other_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/importedcomplit/imported_complit.go.in b/internal/lsp/testdata/importedcomplit/imported_complit.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/importedcomplit/imported_complit.go.in
rename to internal/lsp/testdata/importedcomplit/imported_complit.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/add_import.go.golden b/internal/lsp/testdata/imports/add_import.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/add_import.go.golden
rename to internal/lsp/testdata/imports/add_import.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/add_import.go.in b/internal/lsp/testdata/imports/add_import.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/add_import.go.in
rename to internal/lsp/testdata/imports/add_import.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.golden b/internal/lsp/testdata/imports/good_imports.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.golden
rename to internal/lsp/testdata/imports/good_imports.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.in b/internal/lsp/testdata/imports/good_imports.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.in
rename to internal/lsp/testdata/imports/good_imports.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.golden b/internal/lsp/testdata/imports/issue35458.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.golden
rename to internal/lsp/testdata/imports/issue35458.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.in b/internal/lsp/testdata/imports/issue35458.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.in
rename to internal/lsp/testdata/imports/issue35458.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.golden b/internal/lsp/testdata/imports/multiple_blocks.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.golden
rename to internal/lsp/testdata/imports/multiple_blocks.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.in b/internal/lsp/testdata/imports/multiple_blocks.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.in
rename to internal/lsp/testdata/imports/multiple_blocks.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.golden b/internal/lsp/testdata/imports/needs_imports.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.golden
rename to internal/lsp/testdata/imports/needs_imports.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.in b/internal/lsp/testdata/imports/needs_imports.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.in
rename to internal/lsp/testdata/imports/needs_imports.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.golden b/internal/lsp/testdata/imports/remove_import.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.golden
rename to internal/lsp/testdata/imports/remove_import.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.in b/internal/lsp/testdata/imports/remove_import.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.in
rename to internal/lsp/testdata/imports/remove_import.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.golden b/internal/lsp/testdata/imports/remove_imports.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.golden
rename to internal/lsp/testdata/imports/remove_imports.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.in b/internal/lsp/testdata/imports/remove_imports.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.in
rename to internal/lsp/testdata/imports/remove_imports.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.golden b/internal/lsp/testdata/imports/two_lines.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.golden
rename to internal/lsp/testdata/imports/two_lines.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.in b/internal/lsp/testdata/imports/two_lines.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.in
rename to internal/lsp/testdata/imports/two_lines.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/index/index.go b/internal/lsp/testdata/index/index.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/index/index.go
rename to internal/lsp/testdata/index/index.go
diff --git a/internal/lsp/testdata/lsp/primarymod/interfacerank/interface_rank.go b/internal/lsp/testdata/interfacerank/interface_rank.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/interfacerank/interface_rank.go
rename to internal/lsp/testdata/interfacerank/interface_rank.go
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/accidental_keywords.go.in b/internal/lsp/testdata/keywords/accidental_keywords.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/accidental_keywords.go.in
rename to internal/lsp/testdata/keywords/accidental_keywords.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/empty_select.go b/internal/lsp/testdata/keywords/empty_select.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/empty_select.go
rename to internal/lsp/testdata/keywords/empty_select.go
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/empty_switch.go b/internal/lsp/testdata/keywords/empty_switch.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/empty_switch.go
rename to internal/lsp/testdata/keywords/empty_switch.go
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/keywords.go b/internal/lsp/testdata/keywords/keywords.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/keywords.go
rename to internal/lsp/testdata/keywords/keywords.go
diff --git a/internal/lsp/testdata/lsp/primarymod/labels/labels.go b/internal/lsp/testdata/labels/labels.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/labels/labels.go
rename to internal/lsp/testdata/labels/labels.go
diff --git a/internal/lsp/testdata/lsp/primarymod/links/links.go b/internal/lsp/testdata/links/links.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/links/links.go
rename to internal/lsp/testdata/links/links.go
diff --git a/internal/lsp/testdata/lsp/primarymod/maps/maps.go.in b/internal/lsp/testdata/maps/maps.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/maps/maps.go.in
rename to internal/lsp/testdata/maps/maps.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/multireturn/multi_return.go.in b/internal/lsp/testdata/multireturn/multi_return.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/multireturn/multi_return.go.in
rename to internal/lsp/testdata/multireturn/multi_return.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/nested_complit/nested_complit.go.in b/internal/lsp/testdata/nested_complit/nested_complit.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/nested_complit/nested_complit.go.in
rename to internal/lsp/testdata/nested_complit/nested_complit.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/nodisk/empty b/internal/lsp/testdata/nodisk/empty
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/nodisk/empty
rename to internal/lsp/testdata/nodisk/empty
diff --git a/internal/lsp/testdata/lsp/primarymod/nodisk/nodisk.overlay.go b/internal/lsp/testdata/nodisk/nodisk.overlay.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/nodisk/nodisk.overlay.go
rename to internal/lsp/testdata/nodisk/nodisk.overlay.go
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse/noparse.go.in b/internal/lsp/testdata/noparse/noparse.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse/noparse.go.in
rename to internal/lsp/testdata/noparse/noparse.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.golden b/internal/lsp/testdata/noparse_format/noparse_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.golden
rename to internal/lsp/testdata/noparse_format/noparse_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.in b/internal/lsp/testdata/noparse_format/noparse_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.in
rename to internal/lsp/testdata/noparse_format/noparse_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.golden b/internal/lsp/testdata/noparse_format/parse_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.golden
rename to internal/lsp/testdata/noparse_format/parse_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.in b/internal/lsp/testdata/noparse_format/parse_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.in
rename to internal/lsp/testdata/noparse_format/parse_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/printf/printf.go b/internal/lsp/testdata/printf/printf.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/printf/printf.go
rename to internal/lsp/testdata/printf/printf.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/assign_rank.go.in b/internal/lsp/testdata/rank/assign_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/assign_rank.go.in
rename to internal/lsp/testdata/rank/assign_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/binexpr_rank.go.in b/internal/lsp/testdata/rank/binexpr_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/binexpr_rank.go.in
rename to internal/lsp/testdata/rank/binexpr_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/boolexpr_rank.go b/internal/lsp/testdata/rank/boolexpr_rank.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/boolexpr_rank.go
rename to internal/lsp/testdata/rank/boolexpr_rank.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/convert_rank.go.in b/internal/lsp/testdata/rank/convert_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/convert_rank.go.in
rename to internal/lsp/testdata/rank/convert_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/switch_rank.go.in b/internal/lsp/testdata/rank/switch_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/switch_rank.go.in
rename to internal/lsp/testdata/rank/switch_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/type_assert_rank.go.in b/internal/lsp/testdata/rank/type_assert_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/type_assert_rank.go.in
rename to internal/lsp/testdata/rank/type_assert_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/type_switch_rank.go.in b/internal/lsp/testdata/rank/type_switch_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/type_switch_rank.go.in
rename to internal/lsp/testdata/rank/type_switch_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/references/another/another.go b/internal/lsp/testdata/references/another/another.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/another/another.go
rename to internal/lsp/testdata/references/another/another.go
diff --git a/internal/lsp/testdata/lsp/primarymod/references/other/other.go b/internal/lsp/testdata/references/other/other.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/other/other.go
rename to internal/lsp/testdata/references/other/other.go
diff --git a/internal/lsp/testdata/lsp/primarymod/references/refs.go b/internal/lsp/testdata/references/refs.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/refs.go
rename to internal/lsp/testdata/references/refs.go
diff --git a/internal/lsp/testdata/lsp/primarymod/references/refs_test.go b/internal/lsp/testdata/references/refs_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/refs_test.go
rename to internal/lsp/testdata/references/refs_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/a/random.go.golden b/internal/lsp/testdata/rename/a/random.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/a/random.go.golden
rename to internal/lsp/testdata/rename/a/random.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/a/random.go.in b/internal/lsp/testdata/rename/a/random.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/a/random.go.in
rename to internal/lsp/testdata/rename/a/random.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go b/internal/lsp/testdata/rename/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/b/b.go
rename to internal/lsp/testdata/rename/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden b/internal/lsp/testdata/rename/b/b.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden
rename to internal/lsp/testdata/rename/b/b.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.golden b/internal/lsp/testdata/rename/bad/bad.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.golden
rename to internal/lsp/testdata/rename/bad/bad.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.in b/internal/lsp/testdata/rename/bad/bad.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.in
rename to internal/lsp/testdata/rename/bad/bad.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/bad/bad_test.go.in b/internal/lsp/testdata/rename/bad/bad_test.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/bad/bad_test.go.in
rename to internal/lsp/testdata/rename/bad/bad_test.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/c/c.go b/internal/lsp/testdata/rename/c/c.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/c/c.go
rename to internal/lsp/testdata/rename/c/c.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/c/c.go.golden b/internal/lsp/testdata/rename/c/c.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/c/c.go.golden
rename to internal/lsp/testdata/rename/c/c.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go b/internal/lsp/testdata/rename/crosspkg/another/another.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go
rename to internal/lsp/testdata/rename/crosspkg/another/another.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go.golden b/internal/lsp/testdata/rename/crosspkg/another/another.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go.golden
rename to internal/lsp/testdata/rename/crosspkg/another/another.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go b/internal/lsp/testdata/rename/crosspkg/crosspkg.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go
rename to internal/lsp/testdata/rename/crosspkg/crosspkg.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go.golden b/internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go.golden
rename to internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go b/internal/lsp/testdata/rename/crosspkg/other/other.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go
rename to internal/lsp/testdata/rename/crosspkg/other/other.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go.golden b/internal/lsp/testdata/rename/crosspkg/other/other.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go.golden
rename to internal/lsp/testdata/rename/crosspkg/other/other.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.golden b/internal/lsp/testdata/rename/issue39614/issue39614.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.golden
rename to internal/lsp/testdata/rename/issue39614/issue39614.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.in b/internal/lsp/testdata/rename/issue39614/issue39614.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.in
rename to internal/lsp/testdata/rename/issue39614/issue39614.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go b/internal/lsp/testdata/rename/testy/testy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go
rename to internal/lsp/testdata/rename/testy/testy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go.golden b/internal/lsp/testdata/rename/testy/testy.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go.golden
rename to internal/lsp/testdata/rename/testy/testy.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go b/internal/lsp/testdata/rename/testy/testy_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go
rename to internal/lsp/testdata/rename/testy/testy_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go.golden b/internal/lsp/testdata/rename/testy/testy_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go.golden
rename to internal/lsp/testdata/rename/testy/testy_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/selector/selector.go.in b/internal/lsp/testdata/selector/selector.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/selector/selector.go.in
rename to internal/lsp/testdata/selector/selector.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature.go b/internal/lsp/testdata/signature/signature.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature.go
rename to internal/lsp/testdata/signature/signature.go
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature.go.golden b/internal/lsp/testdata/signature/signature.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature.go.golden
rename to internal/lsp/testdata/signature/signature.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature2.go.golden b/internal/lsp/testdata/signature/signature2.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature2.go.golden
rename to internal/lsp/testdata/signature/signature2.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature2.go.in b/internal/lsp/testdata/signature/signature2.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature2.go.in
rename to internal/lsp/testdata/signature/signature2.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature3.go.golden b/internal/lsp/testdata/signature/signature3.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature3.go.golden
rename to internal/lsp/testdata/signature/signature3.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature3.go.in b/internal/lsp/testdata/signature/signature3.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature3.go.in
rename to internal/lsp/testdata/signature/signature3.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature_test.go b/internal/lsp/testdata/signature/signature_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature_test.go
rename to internal/lsp/testdata/signature/signature_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature_test.go.golden b/internal/lsp/testdata/signature/signature_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature_test.go.golden
rename to internal/lsp/testdata/signature/signature_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/literal.go b/internal/lsp/testdata/snippets/literal.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/literal.go
rename to internal/lsp/testdata/snippets/literal.go
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/literal.go.golden b/internal/lsp/testdata/snippets/literal.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/literal.go.golden
rename to internal/lsp/testdata/snippets/literal.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/literal_snippets.go.in b/internal/lsp/testdata/snippets/literal_snippets.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/literal_snippets.go.in
rename to internal/lsp/testdata/snippets/literal_snippets.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.golden b/internal/lsp/testdata/snippets/snippets.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.golden
rename to internal/lsp/testdata/snippets/snippets.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.in b/internal/lsp/testdata/snippets/snippets.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.in
rename to internal/lsp/testdata/snippets/snippets.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/statements/append.go b/internal/lsp/testdata/statements/append.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/statements/append.go
rename to internal/lsp/testdata/statements/append.go
diff --git a/internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return.go b/internal/lsp/testdata/statements/if_err_check_return.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return.go
rename to internal/lsp/testdata/statements/if_err_check_return.go
diff --git a/internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return_2.go b/internal/lsp/testdata/statements/if_err_check_return_2.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return_2.go
rename to internal/lsp/testdata/statements/if_err_check_return_2.go
diff --git a/internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go b/internal/lsp/testdata/suggestedfix/has_suggested_fix.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go
rename to internal/lsp/testdata/suggestedfix/has_suggested_fix.go
diff --git a/internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go.golden b/internal/lsp/testdata/suggestedfix/has_suggested_fix.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go.golden
rename to internal/lsp/testdata/suggestedfix/has_suggested_fix.go.golden
diff --git a/internal/lsp/testdata/lsp/summary.txt.golden b/internal/lsp/testdata/summary.txt.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/summary.txt.golden
rename to internal/lsp/testdata/summary.txt.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/symbols/main.go b/internal/lsp/testdata/symbols/main.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/symbols/main.go
rename to internal/lsp/testdata/symbols/main.go
diff --git a/internal/lsp/testdata/lsp/primarymod/symbols/main.go.golden b/internal/lsp/testdata/symbols/main.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/symbols/main.go.golden
rename to internal/lsp/testdata/symbols/main.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/testy/testy.go b/internal/lsp/testdata/testy/testy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/testy/testy.go
rename to internal/lsp/testdata/testy/testy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/testy/testy_test.go b/internal/lsp/testdata/testy/testy_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/testy/testy_test.go
rename to internal/lsp/testdata/testy/testy_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/testy/testy_test.go.golden b/internal/lsp/testdata/testy/testy_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/testy/testy_test.go.golden
rename to internal/lsp/testdata/testy/testy_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/typeassert/type_assert.go b/internal/lsp/testdata/typeassert/type_assert.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/typeassert/type_assert.go
rename to internal/lsp/testdata/typeassert/type_assert.go
diff --git a/internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go b/internal/lsp/testdata/typeerrors/noresultvalues.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go
rename to internal/lsp/testdata/typeerrors/noresultvalues.go
diff --git a/internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go.golden b/internal/lsp/testdata/typeerrors/noresultvalues.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go.golden
rename to internal/lsp/testdata/typeerrors/noresultvalues.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/types/types.go b/internal/lsp/testdata/types/types.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/types/types.go
rename to internal/lsp/testdata/types/types.go
diff --git a/internal/lsp/testdata/lsp/primarymod/undeclared/var.go b/internal/lsp/testdata/undeclared/var.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/undeclared/var.go
rename to internal/lsp/testdata/undeclared/var.go
diff --git a/internal/lsp/testdata/lsp/primarymod/undeclared/var.go.golden b/internal/lsp/testdata/undeclared/var.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/undeclared/var.go.golden
rename to internal/lsp/testdata/undeclared/var.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/export_test.go b/internal/lsp/testdata/unimported/export_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/export_test.go
rename to internal/lsp/testdata/unimported/export_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/unimported.go.in b/internal/lsp/testdata/unimported/unimported.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/unimported.go.in
rename to internal/lsp/testdata/unimported/unimported.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/unimported_cand_type.go b/internal/lsp/testdata/unimported/unimported_cand_type.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/unimported_cand_type.go
rename to internal/lsp/testdata/unimported/unimported_cand_type.go
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/x_test.go b/internal/lsp/testdata/unimported/x_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/x_test.go
rename to internal/lsp/testdata/unimported/x_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/unresolved/unresolved.go.in b/internal/lsp/testdata/unresolved/unresolved.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unresolved/unresolved.go.in
rename to internal/lsp/testdata/unresolved/unresolved.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/unsafe/unsafe.go b/internal/lsp/testdata/unsafe/unsafe.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unsafe/unsafe.go
rename to internal/lsp/testdata/unsafe/unsafe.go
diff --git a/internal/lsp/testdata/lsp/primarymod/variadic/variadic.go.in b/internal/lsp/testdata/variadic/variadic.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/variadic/variadic.go.in
rename to internal/lsp/testdata/variadic/variadic.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/variadic/variadic_intf.go b/internal/lsp/testdata/variadic/variadic_intf.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/variadic/variadic_intf.go
rename to internal/lsp/testdata/variadic/variadic_intf.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/EmptyQuery.golden b/internal/lsp/testdata/workspacesymbol/EmptyQuery.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/EmptyQuery.golden
rename to internal/lsp/testdata/workspacesymbol/EmptyQuery.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go b/internal/lsp/testdata/workspacesymbol/a/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go
rename to internal/lsp/testdata/workspacesymbol/a/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go.golden b/internal/lsp/testdata/workspacesymbol/a/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go.golden
rename to internal/lsp/testdata/workspacesymbol/a/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go b/internal/lsp/testdata/workspacesymbol/a/a_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go
rename to internal/lsp/testdata/workspacesymbol/a/a_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go.golden b/internal/lsp/testdata/workspacesymbol/a/a_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go.golden
rename to internal/lsp/testdata/workspacesymbol/a/a_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go b/internal/lsp/testdata/workspacesymbol/a/a_x_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go
rename to internal/lsp/testdata/workspacesymbol/a/a_x_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go.golden b/internal/lsp/testdata/workspacesymbol/a/a_x_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go.golden
rename to internal/lsp/testdata/workspacesymbol/a/a_x_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go b/internal/lsp/testdata/workspacesymbol/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go
rename to internal/lsp/testdata/workspacesymbol/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go.golden b/internal/lsp/testdata/workspacesymbol/b/b.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go.golden
rename to internal/lsp/testdata/workspacesymbol/b/b.go.golden
diff --git "a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/\041dunk.golden" "b/internal/lsp/testdata/workspacesymbol/casesensitive/\041dunk.golden"
similarity index 100%
rename from "internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/\041dunk.golden"
rename to "internal/lsp/testdata/workspacesymbol/casesensitive/\041dunk.golden"
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/casesensitive.go b/internal/lsp/testdata/workspacesymbol/casesensitive/casesensitive.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/casesensitive.go
rename to internal/lsp/testdata/workspacesymbol/casesensitive/casesensitive.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/dunk.golden b/internal/lsp/testdata/workspacesymbol/casesensitive/dunk.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/dunk.golden
rename to internal/lsp/testdata/workspacesymbol/casesensitive/dunk.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/fuzzy.go b/internal/lsp/testdata/workspacesymbol/fuzzy/fuzzy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/fuzzy.go
rename to internal/lsp/testdata/workspacesymbol/fuzzy/fuzzy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randoma.golden b/internal/lsp/testdata/workspacesymbol/fuzzy/randoma.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randoma.golden
rename to internal/lsp/testdata/workspacesymbol/fuzzy/randoma.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randomb.golden b/internal/lsp/testdata/workspacesymbol/fuzzy/randomb.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randomb.golden
rename to internal/lsp/testdata/workspacesymbol/fuzzy/randomb.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/rgop.golden b/internal/lsp/testdata/workspacesymbol/fuzzy/rgop.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/rgop.golden
rename to internal/lsp/testdata/workspacesymbol/fuzzy/rgop.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/randomgophervar.golden b/internal/lsp/testdata/workspacesymbol/randomgophervar.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/randomgophervar.golden
rename to internal/lsp/testdata/workspacesymbol/randomgophervar.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/workspacesymbol.go b/internal/lsp/testdata/workspacesymbol/workspacesymbol.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/workspacesymbol.go
rename to internal/lsp/testdata/workspacesymbol/workspacesymbol.go
diff --git a/internal/lsp/tests/tests.go b/internal/lsp/tests/tests.go
index 8f899ad..9f7a648 100644
--- a/internal/lsp/tests/tests.go
+++ b/internal/lsp/tests/tests.go
@@ -110,7 +110,6 @@
 	t         testing.TB
 	fragments map[string]string
 	dir       string
-	Folder    string
 	golden    map[string]*Golden
 
 	ModfileFlagAvailable bool
@@ -243,216 +242,177 @@
 	o.ExperimentalWorkspaceModule = true
 }
 
-// Load creates the folder structure required when testing with modules.
-// The directory structure of a test needs to look like the example below:
-//
-// - dir
-// 	 - primarymod
-// 		 - .go files
-// 		 - packages
-// 		 - go.mod (optional)
-// 	 - modules
-//		 - repoa
-//			 - mod1
-//				 - .go files
-//				 -  packages
-//				 - go.mod (optional)
-//			 - mod2
-//		 - repob
-//			 - mod1
-//
-// All the files that are primarily being tested should be in the primarymod folder,
-// any auxillary packages should be declared in the modules folder.
-// The modules folder requires each module to have the following format: repo/module
-// Then inside each repo/module, there can be any number of packages and files that are
-// needed to test the primarymod.
-func Load(t testing.TB, exporter packagestest.Exporter, dir string) []*Data {
+func Load(t testing.TB, exporter packagestest.Exporter, dir string) *Data {
 	t.Helper()
 
-	folders, err := testFolders(dir)
-	if err != nil {
-		t.Fatalf("could not get test folders for %v, %v", dir, err)
+	datum := &Data{
+		CallHierarchy:                 make(CallHierarchy),
+		CodeLens:                      make(CodeLens),
+		Diagnostics:                   make(Diagnostics),
+		CompletionItems:               make(CompletionItems),
+		Completions:                   make(Completions),
+		CompletionSnippets:            make(CompletionSnippets),
+		UnimportedCompletions:         make(UnimportedCompletions),
+		DeepCompletions:               make(DeepCompletions),
+		FuzzyCompletions:              make(FuzzyCompletions),
+		RankCompletions:               make(RankCompletions),
+		CaseSensitiveCompletions:      make(CaseSensitiveCompletions),
+		Definitions:                   make(Definitions),
+		Implementations:               make(Implementations),
+		Highlights:                    make(Highlights),
+		References:                    make(References),
+		Renames:                       make(Renames),
+		PrepareRenames:                make(PrepareRenames),
+		SuggestedFixes:                make(SuggestedFixes),
+		FunctionExtractions:           make(FunctionExtractions),
+		Symbols:                       make(Symbols),
+		symbolsChildren:               make(SymbolsChildren),
+		symbolInformation:             make(SymbolInformation),
+		WorkspaceSymbols:              make(WorkspaceSymbols),
+		FuzzyWorkspaceSymbols:         make(WorkspaceSymbols),
+		CaseSensitiveWorkspaceSymbols: make(WorkspaceSymbols),
+		Signatures:                    make(Signatures),
+		Links:                         make(Links),
+
+		t:         t,
+		dir:       dir,
+		fragments: map[string]string{},
+		golden:    map[string]*Golden{},
+		mappers:   map[span.URI]*protocol.ColumnMapper{},
 	}
 
-	var data []*Data
-	for _, folder := range folders {
-		datum := &Data{
-			CallHierarchy:                 make(CallHierarchy),
-			CodeLens:                      make(CodeLens),
-			Diagnostics:                   make(Diagnostics),
-			CompletionItems:               make(CompletionItems),
-			Completions:                   make(Completions),
-			CompletionSnippets:            make(CompletionSnippets),
-			UnimportedCompletions:         make(UnimportedCompletions),
-			DeepCompletions:               make(DeepCompletions),
-			FuzzyCompletions:              make(FuzzyCompletions),
-			RankCompletions:               make(RankCompletions),
-			CaseSensitiveCompletions:      make(CaseSensitiveCompletions),
-			Definitions:                   make(Definitions),
-			Implementations:               make(Implementations),
-			Highlights:                    make(Highlights),
-			References:                    make(References),
-			Renames:                       make(Renames),
-			PrepareRenames:                make(PrepareRenames),
-			SuggestedFixes:                make(SuggestedFixes),
-			FunctionExtractions:           make(FunctionExtractions),
-			Symbols:                       make(Symbols),
-			symbolsChildren:               make(SymbolsChildren),
-			symbolInformation:             make(SymbolInformation),
-			WorkspaceSymbols:              make(WorkspaceSymbols),
-			FuzzyWorkspaceSymbols:         make(WorkspaceSymbols),
-			CaseSensitiveWorkspaceSymbols: make(WorkspaceSymbols),
-			Signatures:                    make(Signatures),
-			Links:                         make(Links),
-
-			t:         t,
-			dir:       folder,
-			Folder:    folder,
-			fragments: map[string]string{},
-			golden:    map[string]*Golden{},
-			mappers:   map[span.URI]*protocol.ColumnMapper{},
+	if !*UpdateGolden {
+		summary := filepath.Join(filepath.FromSlash(dir), summaryFile+goldenFileSuffix)
+		if _, err := os.Stat(summary); os.IsNotExist(err) {
+			t.Fatalf("could not find golden file summary.txt in %#v", dir)
 		}
+		archive, err := txtar.ParseFile(summary)
+		if err != nil {
+			t.Fatalf("could not read golden file %v/%v: %v", dir, summary, err)
+		}
+		datum.golden[summaryFile] = &Golden{
+			Filename: summary,
+			Archive:  archive,
+		}
+	}
 
-		if !*UpdateGolden {
-			summary := filepath.Join(filepath.FromSlash(folder), summaryFile+goldenFileSuffix)
-			if _, err := os.Stat(summary); os.IsNotExist(err) {
-				t.Fatalf("could not find golden file summary.txt in %#v", folder)
-			}
-			archive, err := txtar.ParseFile(summary)
+	files := packagestest.MustCopyFileTree(dir)
+	overlays := map[string][]byte{}
+	for fragment, operation := range files {
+		if trimmed := strings.TrimSuffix(fragment, goldenFileSuffix); trimmed != fragment {
+			delete(files, fragment)
+			goldFile := filepath.Join(dir, fragment)
+			archive, err := txtar.ParseFile(goldFile)
 			if err != nil {
-				t.Fatalf("could not read golden file %v/%v: %v", folder, summary, err)
+				t.Fatalf("could not read golden file %v: %v", fragment, err)
 			}
-			datum.golden[summaryFile] = &Golden{
-				Filename: summary,
+			datum.golden[trimmed] = &Golden{
+				Filename: goldFile,
 				Archive:  archive,
 			}
-		}
-
-		modules, _ := packagestest.GroupFilesByModules(folder)
-		for i, m := range modules {
-			for fragment, operation := range m.Files {
-				if trimmed := strings.TrimSuffix(fragment, goldenFileSuffix); trimmed != fragment {
-					delete(m.Files, fragment)
-					goldFile := filepath.Join(m.Name, fragment)
-					if i == 0 {
-						goldFile = filepath.Join(m.Name, "primarymod", fragment)
-					}
-					archive, err := txtar.ParseFile(goldFile)
-					if err != nil {
-						t.Fatalf("could not read golden file %v: %v", fragment, err)
-					}
-					datum.golden[trimmed] = &Golden{
-						Filename: goldFile,
-						Archive:  archive,
-					}
-				} else if trimmed := strings.TrimSuffix(fragment, inFileSuffix); trimmed != fragment {
-					delete(m.Files, fragment)
-					m.Files[trimmed] = operation
-				} else if index := strings.Index(fragment, overlayFileSuffix); index >= 0 {
-					delete(m.Files, fragment)
-					partial := fragment[:index] + fragment[index+len(overlayFileSuffix):]
-					overlayFile := filepath.Join(m.Name, fragment)
-					if i == 0 {
-						overlayFile = filepath.Join(m.Name, "primarymod", fragment)
-					}
-					contents, err := ioutil.ReadFile(overlayFile)
-					if err != nil {
-						t.Fatal(err)
-					}
-					m.Overlay[partial] = contents
-				}
+		} else if trimmed := strings.TrimSuffix(fragment, inFileSuffix); trimmed != fragment {
+			delete(files, fragment)
+			files[trimmed] = operation
+		} else if index := strings.Index(fragment, overlayFileSuffix); index >= 0 {
+			delete(files, fragment)
+			partial := fragment[:index] + fragment[index+len(overlayFileSuffix):]
+			contents, err := ioutil.ReadFile(filepath.Join(dir, fragment))
+			if err != nil {
+				t.Fatal(err)
 			}
+			overlays[partial] = contents
 		}
-		if len(modules) > 0 {
-			// For certain LSP related tests to run, make sure that the primary
-			// module for the passed in directory is testModule.
-			modules[0].Name = testModule
-		}
-		// Add exampleModule to provide tests with another pkg.
-		datum.Exported = packagestest.Export(t, exporter, modules)
-		for _, m := range modules {
-			for fragment := range m.Files {
-				filename := datum.Exported.File(m.Name, fragment)
-				datum.fragments[filename] = fragment
-			}
-		}
-
-		// Turn off go/packages debug logging.
-		datum.Exported.Config.Logf = nil
-		datum.Config.Logf = nil
-
-		// Merge the exported.Config with the view.Config.
-		datum.Config = *datum.Exported.Config
-		datum.Config.Fset = token.NewFileSet()
-		datum.Config.Context = Context(nil)
-		datum.Config.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
-			panic("ParseFile should not be called")
-		}
-
-		// Do a first pass to collect special markers for completion and workspace symbols.
-		if err := datum.Exported.Expect(map[string]interface{}{
-			"item": func(name string, r packagestest.Range, _ []string) {
-				datum.Exported.Mark(name, r)
-			},
-			"symbol": func(name string, r packagestest.Range, _ []string) {
-				datum.Exported.Mark(name, r)
-			},
-		}); err != nil {
-			t.Fatal(err)
-		}
-
-		// Collect any data that needs to be used by subsequent tests.
-		if err := datum.Exported.Expect(map[string]interface{}{
-			"codelens":        datum.collectCodeLens,
-			"diag":            datum.collectDiagnostics,
-			"item":            datum.collectCompletionItems,
-			"complete":        datum.collectCompletions(CompletionDefault),
-			"unimported":      datum.collectCompletions(CompletionUnimported),
-			"deep":            datum.collectCompletions(CompletionDeep),
-			"fuzzy":           datum.collectCompletions(CompletionFuzzy),
-			"casesensitive":   datum.collectCompletions(CompletionCaseSensitive),
-			"rank":            datum.collectCompletions(CompletionRank),
-			"snippet":         datum.collectCompletionSnippets,
-			"fold":            datum.collectFoldingRanges,
-			"format":          datum.collectFormats,
-			"import":          datum.collectImports,
-			"godef":           datum.collectDefinitions,
-			"implementations": datum.collectImplementations,
-			"typdef":          datum.collectTypeDefinitions,
-			"hover":           datum.collectHoverDefinitions,
-			"highlight":       datum.collectHighlights,
-			"refs":            datum.collectReferences,
-			"rename":          datum.collectRenames,
-			"prepare":         datum.collectPrepareRenames,
-			"symbol":          datum.collectSymbols,
-			"signature":       datum.collectSignatures,
-			"link":            datum.collectLinks,
-			"suggestedfix":    datum.collectSuggestedFixes,
-			"extractfunc":     datum.collectFunctionExtractions,
-			"incomingcalls":   datum.collectIncomingCalls,
-			"outgoingcalls":   datum.collectOutgoingCalls,
-		}); err != nil {
-			t.Fatal(err)
-		}
-		for _, symbols := range datum.Symbols {
-			for i := range symbols {
-				children := datum.symbolsChildren[symbols[i].Name]
-				symbols[i].Children = children
-			}
-		}
-		// Collect names for the entries that require golden files.
-		if err := datum.Exported.Expect(map[string]interface{}{
-			"godef":                        datum.collectDefinitionNames,
-			"hover":                        datum.collectDefinitionNames,
-			"workspacesymbol":              datum.collectWorkspaceSymbols(WorkspaceSymbolsDefault),
-			"workspacesymbolfuzzy":         datum.collectWorkspaceSymbols(WorkspaceSymbolsFuzzy),
-			"workspacesymbolcasesensitive": datum.collectWorkspaceSymbols(WorkspaceSymbolsCaseSensitive),
-		}); err != nil {
-			t.Fatal(err)
-		}
-		data = append(data, datum)
 	}
-	return data
+
+	modules := []packagestest.Module{
+		{
+			Name:    testModule,
+			Files:   files,
+			Overlay: overlays,
+		},
+	} // Add exampleModule to provide tests with another pkg.
+	datum.Exported = packagestest.Export(t, exporter, modules)
+	for _, m := range modules {
+		for fragment := range m.Files {
+			filename := datum.Exported.File(m.Name, fragment)
+			datum.fragments[filename] = fragment
+		}
+	}
+
+	// Turn off go/packages debug logging.
+	datum.Exported.Config.Logf = nil
+	datum.Config.Logf = nil
+
+	// Merge the exported.Config with the view.Config.
+	datum.Config = *datum.Exported.Config
+	datum.Config.Fset = token.NewFileSet()
+	datum.Config.Context = Context(nil)
+	datum.Config.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
+		panic("ParseFile should not be called")
+	}
+
+	// Do a first pass to collect special markers for completion and workspace symbols.
+	if err := datum.Exported.Expect(map[string]interface{}{
+		"item": func(name string, r packagestest.Range, _ []string) {
+			datum.Exported.Mark(name, r)
+		},
+		"symbol": func(name string, r packagestest.Range, _ []string) {
+			datum.Exported.Mark(name, r)
+		},
+	}); err != nil {
+		t.Fatal(err)
+	}
+
+	// Collect any data that needs to be used by subsequent tests.
+	if err := datum.Exported.Expect(map[string]interface{}{
+		"codelens":        datum.collectCodeLens,
+		"diag":            datum.collectDiagnostics,
+		"item":            datum.collectCompletionItems,
+		"complete":        datum.collectCompletions(CompletionDefault),
+		"unimported":      datum.collectCompletions(CompletionUnimported),
+		"deep":            datum.collectCompletions(CompletionDeep),
+		"fuzzy":           datum.collectCompletions(CompletionFuzzy),
+		"casesensitive":   datum.collectCompletions(CompletionCaseSensitive),
+		"rank":            datum.collectCompletions(CompletionRank),
+		"snippet":         datum.collectCompletionSnippets,
+		"fold":            datum.collectFoldingRanges,
+		"format":          datum.collectFormats,
+		"import":          datum.collectImports,
+		"godef":           datum.collectDefinitions,
+		"implementations": datum.collectImplementations,
+		"typdef":          datum.collectTypeDefinitions,
+		"hover":           datum.collectHoverDefinitions,
+		"highlight":       datum.collectHighlights,
+		"refs":            datum.collectReferences,
+		"rename":          datum.collectRenames,
+		"prepare":         datum.collectPrepareRenames,
+		"symbol":          datum.collectSymbols,
+		"signature":       datum.collectSignatures,
+		"link":            datum.collectLinks,
+		"suggestedfix":    datum.collectSuggestedFixes,
+		"extractfunc":     datum.collectFunctionExtractions,
+		"incomingcalls":   datum.collectIncomingCalls,
+		"outgoingcalls":   datum.collectOutgoingCalls,
+	}); err != nil {
+		t.Fatal(err)
+	}
+	for _, symbols := range datum.Symbols {
+		for i := range symbols {
+			children := datum.symbolsChildren[symbols[i].Name]
+			symbols[i].Children = children
+		}
+	}
+	// Collect names for the entries that require golden files.
+	if err := datum.Exported.Expect(map[string]interface{}{
+		"godef":                        datum.collectDefinitionNames,
+		"hover":                        datum.collectDefinitionNames,
+		"workspacesymbol":              datum.collectWorkspaceSymbols(WorkspaceSymbolsDefault),
+		"workspacesymbolfuzzy":         datum.collectWorkspaceSymbols(WorkspaceSymbolsFuzzy),
+		"workspacesymbolcasesensitive": datum.collectWorkspaceSymbols(WorkspaceSymbolsCaseSensitive),
+	}); err != nil {
+		t.Fatal(err)
+	}
+	return datum
 }
 
 func Run(t *testing.T, tests Tests, data *Data) {
@@ -1318,28 +1278,6 @@
 	return dst, nil
 }
 
-func testFolders(root string) ([]string, error) {
-	// Check if this only has one test directory.
-	if _, err := os.Stat(filepath.Join(filepath.FromSlash(root), "primarymod")); !os.IsNotExist(err) {
-		return []string{root}, nil
-	}
-	folders := []string{}
-	root = filepath.FromSlash(root)
-	// Get all test directories that are one level deeper than root.
-	if err := filepath.Walk(root, func(path string, info os.FileInfo, _ error) error {
-		if !info.IsDir() {
-			return nil
-		}
-		if filepath.Dir(path) == root {
-			folders = append(folders, filepath.ToSlash(path))
-		}
-		return nil
-	}); err != nil {
-		return nil, err
-	}
-	return folders, nil
-}
-
 func shouldSkip(data *Data, uri span.URI) bool {
 	if data.ModfileFlagAvailable {
 		return false
diff --git a/internal/lsp/tests/util.go b/internal/lsp/tests/util.go
index 346eea3..f002683 100644
--- a/internal/lsp/tests/util.go
+++ b/internal/lsp/tests/util.go
@@ -518,13 +518,6 @@
 	return msg.String()
 }
 
-func FormatFolderName(folder string) string {
-	if index := strings.Index(folder, "testdata"); index != -1 {
-		return folder[index:]
-	}
-	return folder
-}
-
 func EnableAllAnalyzers(view source.View, opts *source.Options) {
 	if opts.Analyses == nil {
 		opts.Analyses = make(map[string]bool)