From 4f8fe0b563aa5687f4f77bac82458c7116e2c745 Mon Sep 17 00:00:00 2001 From: luoliwoshang <2643523683@qq.com> Date: Thu, 9 May 2024 15:09:08 +0800 Subject: [PATCH] test:overload anonymous reference --- .../regtest/misc/references_gox_test.go | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 gopls/internal/regtest/misc/references_gox_test.go diff --git a/gopls/internal/regtest/misc/references_gox_test.go b/gopls/internal/regtest/misc/references_gox_test.go new file mode 100644 index 00000000000..cef36f0ee7d --- /dev/null +++ b/gopls/internal/regtest/misc/references_gox_test.go @@ -0,0 +1,51 @@ +package misc + +import ( + "fmt" + "strings" + "testing" + + "github.com/google/go-cmp/cmp" + . "golang.org/x/tools/gopls/internal/lsp/regtest" +) + +func TestReferencesOnOverloadMember(t *testing.T) { + const files = ` +-- go.mod -- +module mod.com + +go 1.12 +-- def.gop -- +func add = ( + func(a, b int) int { + return a + b + } + func(a, b string) string { + return a + b + } +) +-- test.gop -- +println add(1,2) +println add("Hello", "World") +println add("Bye", "World") +` + Run(t, files, func(t *testing.T, env *Env) { + env.OpenFile("test.gop") + loc := env.GoToDefinition(env.RegexpSearch("test.gop", `println (add)\("Hello", "World"\)`)) + refs, err := env.Editor.References(env.Ctx, loc) + if err != nil { + t.Fatalf("references on (*s).Error failed: %v", err) + } + var buf strings.Builder + for _, ref := range refs { + fmt.Fprintf(&buf, "%s %s\n", env.Sandbox.Workdir.URIToPath(ref.URI), ref.Range) + } + got := buf.String() + want := "def.gop 4:1-4:25\n" + // anonymous overload func + "test.gop 1:8-1:11\n" + + "test.gop 2:8-2:11\n" + if diff := cmp.Diff(want, got); diff != "" { + t.Errorf("unexpected references on (*s).Error (-want +got):\n%s", diff) + } + }) +}