diff --git a/gopls/internal/lsp/lsp_test.go b/gopls/internal/lsp/lsp_test.go index fe3c3aa3dc2..b46eecfbf1b 100644 --- a/gopls/internal/lsp/lsp_test.go +++ b/gopls/internal/lsp/lsp_test.go @@ -10,7 +10,6 @@ import ( "fmt" "os" "path/filepath" - "sort" "strings" "testing" @@ -295,67 +294,6 @@ func (r *runner) InlayHints(t *testing.T, spn span.Span) { } } -func (r *runner) Rename(t *testing.T, spn span.Span, newText string) { - tag := fmt.Sprintf("%s-rename", newText) - - uri := spn.URI() - filename := uri.Filename() - sm, err := r.data.Mapper(uri) - if err != nil { - t.Fatal(err) - } - loc, err := sm.SpanLocation(spn) - if err != nil { - t.Fatalf("failed for %v: %v", spn, err) - } - - wedit, err := r.server.Rename(r.ctx, &protocol.RenameParams{ - TextDocument: protocol.TextDocumentIdentifier{URI: loc.URI}, - Position: loc.Range.Start, - NewName: newText, - }) - if err != nil { - renamed := string(r.data.Golden(t, tag, filename, func() ([]byte, error) { - return []byte(err.Error()), nil - })) - if err.Error() != renamed { - t.Errorf("%s: rename failed for %s, expected:\n%v\ngot:\n%v\n", spn, newText, renamed, err) - } - return - } - res, err := applyTextDocumentEdits(r, wedit.DocumentChanges) - if err != nil { - t.Fatal(err) - } - var orderedURIs []string - for uri := range res { - orderedURIs = append(orderedURIs, string(uri)) - } - sort.Strings(orderedURIs) - - // Print the name and content of each modified file, - // concatenated, and compare against the golden. - var buf bytes.Buffer - for i := 0; i < len(res); i++ { - if i != 0 { - buf.WriteByte('\n') - } - uri := span.URIFromURI(orderedURIs[i]) - if len(res) > 1 { - buf.WriteString(filepath.Base(uri.Filename())) - buf.WriteString(":\n") - } - buf.Write(res[uri]) - } - got := buf.Bytes() - want := r.data.Golden(t, tag, filename, func() ([]byte, error) { - return got, nil - }) - if diff := compare.Bytes(want, got); diff != "" { - t.Errorf("rename failed for %s:\n%s", newText, diff) - } -} - func applyTextDocumentEdits(r *runner, edits []protocol.DocumentChanges) (map[span.URI][]byte, error) { res := make(map[span.URI][]byte) for _, docEdits := range edits { diff --git a/gopls/internal/lsp/testdata/rename/a/random.go.golden b/gopls/internal/lsp/testdata/rename/a/random.go.golden deleted file mode 100644 index 7459863ec93..00000000000 --- a/gopls/internal/lsp/testdata/rename/a/random.go.golden +++ /dev/null @@ -1,616 +0,0 @@ --- GetSum-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) GetSum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.GetSum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- f2name-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2name "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2name.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- f2y-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2y "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2y.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- fmt2-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - fmt2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - fmt2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- fmty-rename -- -package a - -import ( - lg "log" - fmty "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmty.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- format-rename -- -package a - -import ( - lg "log" - format "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - format.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- log-rename -- -package a - -import ( - "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - log.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- myX-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - myX, y int -} - -func (p *Pos) Sum() int { - return p.myX + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- pos-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var pos Pos //@rename("p", "pos") - _ = pos.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- y0-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y0 := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y0) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y0) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y0) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- y1-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y1 := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y1) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y1) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y1) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- y2-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y2 := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y2) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y2) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y2) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- y3-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y3 := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y3) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y3) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y3) //@rename("y", "y3"),rename("f2","fmt2") - } -} - --- z-rename -- -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(z int) int { //@rename("y", "z") - return z -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} - diff --git a/gopls/internal/lsp/testdata/rename/a/random.go.in b/gopls/internal/lsp/testdata/rename/a/random.go.in deleted file mode 100644 index 069db27baac..00000000000 --- a/gopls/internal/lsp/testdata/rename/a/random.go.in +++ /dev/null @@ -1,42 +0,0 @@ -package a - -import ( - lg "log" - "fmt" //@rename("fmt", "fmty") - f2 "fmt" //@rename("f2", "f2name"),rename("fmt","f2y") -) - -func Random() int { - y := 6 + 7 - return y -} - -func Random2(y int) int { //@rename("y", "z") - return y -} - -type Pos struct { - x, y int -} - -func (p *Pos) Sum() int { - return p.x + p.y //@rename("x", "myX") -} - -func _() { - var p Pos //@rename("p", "pos") - _ = p.Sum() //@rename("Sum", "GetSum") -} - -func sw() { - var x interface{} - - switch y := x.(type) { //@rename("y", "y0") - case int: - fmt.Printf("%d", y) //@rename("y", "y1"),rename("fmt", "format") - case string: - lg.Printf("%s", y) //@rename("y", "y2"),rename("lg","log") - default: - f2.Printf("%v", y) //@rename("y", "y3"),rename("f2","fmt2") - } -} diff --git a/gopls/internal/lsp/testdata/rename/b/b.go b/gopls/internal/lsp/testdata/rename/b/b.go deleted file mode 100644 index 8455f035b5f..00000000000 --- a/gopls/internal/lsp/testdata/rename/b/b.go +++ /dev/null @@ -1,20 +0,0 @@ -package b - -var c int //@rename("int", "uint") - -func _() { - a := 1 //@rename("a", "error") - a = 2 - _ = a -} - -var ( - // Hello there. - // Foo does the thing. - Foo int //@rename("Foo", "Bob") -) - -/* -Hello description -*/ -func Hello() {} //@rename("Hello", "Goodbye") diff --git a/gopls/internal/lsp/testdata/rename/b/b.go.golden b/gopls/internal/lsp/testdata/rename/b/b.go.golden deleted file mode 100644 index add4049cd98..00000000000 --- a/gopls/internal/lsp/testdata/rename/b/b.go.golden +++ /dev/null @@ -1,78 +0,0 @@ --- Bob-rename -- -package b - -var c int //@rename("int", "uint") - -func _() { - a := 1 //@rename("a", "error") - a = 2 - _ = a -} - -var ( - // Hello there. - // Bob does the thing. - Bob int //@rename("Foo", "Bob") -) - -/* -Hello description -*/ -func Hello() {} //@rename("Hello", "Goodbye") - --- Goodbye-rename -- -b.go: -package b - -var c int //@rename("int", "uint") - -func _() { - a := 1 //@rename("a", "error") - a = 2 - _ = a -} - -var ( - // Hello there. - // Foo does the thing. - Foo int //@rename("Foo", "Bob") -) - -/* -Goodbye description -*/ -func Goodbye() {} //@rename("Hello", "Goodbye") - -c.go: -package c - -import "golang.org/lsptests/rename/b" - -func _() { - b.Goodbye() //@rename("Hello", "Goodbye") -} - --- error-rename -- -package b - -var c int //@rename("int", "uint") - -func _() { - error := 1 //@rename("a", "error") - error = 2 - _ = error -} - -var ( - // Hello there. - // Foo does the thing. - Foo int //@rename("Foo", "Bob") -) - -/* -Hello description -*/ -func Hello() {} //@rename("Hello", "Goodbye") - --- uint-rename -- -int is built in and cannot be renamed diff --git a/gopls/internal/lsp/testdata/rename/bad/bad.go.golden b/gopls/internal/lsp/testdata/rename/bad/bad.go.golden deleted file mode 100644 index 1b27e1782f3..00000000000 --- a/gopls/internal/lsp/testdata/rename/bad/bad.go.golden +++ /dev/null @@ -1,2 +0,0 @@ --- rFunc-rename -- -renaming "sFunc" to "rFunc" not possible because "golang.org/lsptests/rename/bad" has errors diff --git a/gopls/internal/lsp/testdata/rename/bad/bad.go.in b/gopls/internal/lsp/testdata/rename/bad/bad.go.in deleted file mode 100644 index 56dbee74e2b..00000000000 --- a/gopls/internal/lsp/testdata/rename/bad/bad.go.in +++ /dev/null @@ -1,8 +0,0 @@ -package bad - -type myStruct struct { -} - -func (s *myStruct) sFunc() bool { //@rename("sFunc", "rFunc") - return s.Bad -} diff --git a/gopls/internal/lsp/testdata/rename/bad/bad_test.go.in b/gopls/internal/lsp/testdata/rename/bad/bad_test.go.in deleted file mode 100644 index e695db14be8..00000000000 --- a/gopls/internal/lsp/testdata/rename/bad/bad_test.go.in +++ /dev/null @@ -1 +0,0 @@ -package bad \ No newline at end of file diff --git a/gopls/internal/lsp/testdata/rename/c/c.go b/gopls/internal/lsp/testdata/rename/c/c.go deleted file mode 100644 index 6332c78f3f9..00000000000 --- a/gopls/internal/lsp/testdata/rename/c/c.go +++ /dev/null @@ -1,7 +0,0 @@ -package c - -import "golang.org/lsptests/rename/b" - -func _() { - b.Hello() //@rename("Hello", "Goodbye") -} diff --git a/gopls/internal/lsp/testdata/rename/c/c.go.golden b/gopls/internal/lsp/testdata/rename/c/c.go.golden deleted file mode 100644 index d56250693a9..00000000000 --- a/gopls/internal/lsp/testdata/rename/c/c.go.golden +++ /dev/null @@ -1,32 +0,0 @@ --- Goodbye-rename -- -b.go: -package b - -var c int //@rename("int", "uint") - -func _() { - a := 1 //@rename("a", "error") - a = 2 - _ = a -} - -var ( - // Hello there. - // Foo does the thing. - Foo int //@rename("Foo", "Bob") -) - -/* -Goodbye description -*/ -func Goodbye() {} //@rename("Hello", "Goodbye") - -c.go: -package c - -import "golang.org/lsptests/rename/b" - -func _() { - b.Goodbye() //@rename("Hello", "Goodbye") -} - diff --git a/gopls/internal/lsp/testdata/rename/c/c2.go b/gopls/internal/lsp/testdata/rename/c/c2.go deleted file mode 100644 index 4fc484a1a31..00000000000 --- a/gopls/internal/lsp/testdata/rename/c/c2.go +++ /dev/null @@ -1,4 +0,0 @@ -package c - -//go:embed Static/* -var Static embed.FS //@rename("Static", "static") \ No newline at end of file diff --git a/gopls/internal/lsp/testdata/rename/c/c2.go.golden b/gopls/internal/lsp/testdata/rename/c/c2.go.golden deleted file mode 100644 index e509227a93f..00000000000 --- a/gopls/internal/lsp/testdata/rename/c/c2.go.golden +++ /dev/null @@ -1,5 +0,0 @@ --- static-rename -- -package c - -//go:embed Static/* -var static embed.FS //@rename("Static", "static") diff --git a/gopls/internal/lsp/testdata/rename/crosspkg/another/another.go b/gopls/internal/lsp/testdata/rename/crosspkg/another/another.go deleted file mode 100644 index 9b50af2cb9c..00000000000 --- a/gopls/internal/lsp/testdata/rename/crosspkg/another/another.go +++ /dev/null @@ -1,13 +0,0 @@ -package another - -type ( - I interface{ F() } - C struct{ I } -) - -func (C) g() - -func _() { - var x I = C{} - x.F() //@rename("F", "G") -} diff --git a/gopls/internal/lsp/testdata/rename/crosspkg/another/another.go.golden b/gopls/internal/lsp/testdata/rename/crosspkg/another/another.go.golden deleted file mode 100644 index d3fccdaf132..00000000000 --- a/gopls/internal/lsp/testdata/rename/crosspkg/another/another.go.golden +++ /dev/null @@ -1,15 +0,0 @@ --- G-rename -- -package another - -type ( - I interface{ G() } - C struct{ I } -) - -func (C) g() - -func _() { - var x I = C{} - x.G() //@rename("F", "G") -} - diff --git a/gopls/internal/lsp/testdata/rename/crosspkg/crosspkg.go b/gopls/internal/lsp/testdata/rename/crosspkg/crosspkg.go deleted file mode 100644 index 8510bcfe057..00000000000 --- a/gopls/internal/lsp/testdata/rename/crosspkg/crosspkg.go +++ /dev/null @@ -1,7 +0,0 @@ -package crosspkg - -func Foo() { //@rename("Foo", "Dolphin") - -} - -var Bar int //@rename("Bar", "Tomato") diff --git a/gopls/internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden b/gopls/internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden deleted file mode 100644 index 49ff7f841cf..00000000000 --- a/gopls/internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden +++ /dev/null @@ -1,40 +0,0 @@ --- Dolphin-rename -- -crosspkg.go: -package crosspkg - -func Dolphin() { //@rename("Foo", "Dolphin") - -} - -var Bar int //@rename("Bar", "Tomato") - -other.go: -package other - -import "golang.org/lsptests/rename/crosspkg" - -func Other() { - crosspkg.Bar - crosspkg.Dolphin() //@rename("Foo", "Flamingo") -} - --- Tomato-rename -- -crosspkg.go: -package crosspkg - -func Foo() { //@rename("Foo", "Dolphin") - -} - -var Tomato int //@rename("Bar", "Tomato") - -other.go: -package other - -import "golang.org/lsptests/rename/crosspkg" - -func Other() { - crosspkg.Tomato - crosspkg.Foo() //@rename("Foo", "Flamingo") -} - diff --git a/gopls/internal/lsp/testdata/rename/crosspkg/other/other.go b/gopls/internal/lsp/testdata/rename/crosspkg/other/other.go deleted file mode 100644 index 5fd147da62e..00000000000 --- a/gopls/internal/lsp/testdata/rename/crosspkg/other/other.go +++ /dev/null @@ -1,8 +0,0 @@ -package other - -import "golang.org/lsptests/rename/crosspkg" - -func Other() { - crosspkg.Bar - crosspkg.Foo() //@rename("Foo", "Flamingo") -} diff --git a/gopls/internal/lsp/testdata/rename/crosspkg/other/other.go.golden b/gopls/internal/lsp/testdata/rename/crosspkg/other/other.go.golden deleted file mode 100644 index f7b4aaad42f..00000000000 --- a/gopls/internal/lsp/testdata/rename/crosspkg/other/other.go.golden +++ /dev/null @@ -1,20 +0,0 @@ --- Flamingo-rename -- -crosspkg.go: -package crosspkg - -func Flamingo() { //@rename("Foo", "Dolphin") - -} - -var Bar int //@rename("Bar", "Tomato") - -other.go: -package other - -import "golang.org/lsptests/rename/crosspkg" - -func Other() { - crosspkg.Bar - crosspkg.Flamingo() //@rename("Foo", "Flamingo") -} - diff --git a/gopls/internal/lsp/testdata/rename/generics/embedded.go b/gopls/internal/lsp/testdata/rename/generics/embedded.go deleted file mode 100644 index b44bab8809b..00000000000 --- a/gopls/internal/lsp/testdata/rename/generics/embedded.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -package generics - -type foo[P any] int //@rename("foo","bar") - -var x struct{ foo[int] } - -var _ = x.foo diff --git a/gopls/internal/lsp/testdata/rename/generics/embedded.go.golden b/gopls/internal/lsp/testdata/rename/generics/embedded.go.golden deleted file mode 100644 index faa9afb69f6..00000000000 --- a/gopls/internal/lsp/testdata/rename/generics/embedded.go.golden +++ /dev/null @@ -1,12 +0,0 @@ --- bar-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type bar[P any] int //@rename("foo","bar") - -var x struct{ bar[int] } - -var _ = x.bar - diff --git a/gopls/internal/lsp/testdata/rename/generics/generics.go b/gopls/internal/lsp/testdata/rename/generics/generics.go deleted file mode 100644 index 977589c0c59..00000000000 --- a/gopls/internal/lsp/testdata/rename/generics/generics.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -package generics - -type G[P any] struct { - F int -} - -func (G[_]) M() {} - -func F[P any](P) { - var p P //@rename("P", "Q") - _ = p -} - -func _() { - var x G[int] //@rename("G", "H") - _ = x.F //@rename("F", "K") - x.M() //@rename("M", "N") - - var y G[string] - _ = y.F - y.M() -} diff --git a/gopls/internal/lsp/testdata/rename/generics/generics.go.golden b/gopls/internal/lsp/testdata/rename/generics/generics.go.golden deleted file mode 100644 index 7d39813e122..00000000000 --- a/gopls/internal/lsp/testdata/rename/generics/generics.go.golden +++ /dev/null @@ -1,108 +0,0 @@ --- H-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type H[P any] struct { - F int -} - -func (H[_]) M() {} - -func F[P any](P) { - var p P //@rename("P", "Q") - _ = p -} - -func _() { - var x H[int] //@rename("G", "H") - _ = x.F //@rename("F", "K") - x.M() //@rename("M", "N") - - var y H[string] - _ = y.F - y.M() -} - --- K-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type G[P any] struct { - K int -} - -func (G[_]) M() {} - -func F[P any](P) { - var p P //@rename("P", "Q") - _ = p -} - -func _() { - var x G[int] //@rename("G", "H") - _ = x.K //@rename("F", "K") - x.M() //@rename("M", "N") - - var y G[string] - _ = y.K - y.M() -} - --- N-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type G[P any] struct { - F int -} - -func (G[_]) N() {} - -func F[P any](P) { - var p P //@rename("P", "Q") - _ = p -} - -func _() { - var x G[int] //@rename("G", "H") - _ = x.F //@rename("F", "K") - x.N() //@rename("M", "N") - - var y G[string] - _ = y.F - y.N() -} - --- Q-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type G[P any] struct { - F int -} - -func (G[_]) M() {} - -func F[Q any](Q) { - var p Q //@rename("P", "Q") - _ = p -} - -func _() { - var x G[int] //@rename("G", "H") - _ = x.F //@rename("F", "K") - x.M() //@rename("M", "N") - - var y G[string] - _ = y.F - y.M() -} - diff --git a/gopls/internal/lsp/testdata/rename/generics/unions.go b/gopls/internal/lsp/testdata/rename/generics/unions.go deleted file mode 100644 index c737b5c27e2..00000000000 --- a/gopls/internal/lsp/testdata/rename/generics/unions.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -package generics - -type T string //@rename("T", "R") - -type C interface { - T | ~int //@rename("T", "S") -} diff --git a/gopls/internal/lsp/testdata/rename/generics/unions.go.golden b/gopls/internal/lsp/testdata/rename/generics/unions.go.golden deleted file mode 100644 index 463289629c5..00000000000 --- a/gopls/internal/lsp/testdata/rename/generics/unions.go.golden +++ /dev/null @@ -1,24 +0,0 @@ --- R-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type R string //@rename("T", "R") - -type C interface { - R | ~int //@rename("T", "S") -} - --- S-rename -- -//go:build go1.18 -// +build go1.18 - -package generics - -type S string //@rename("T", "R") - -type C interface { - S | ~int //@rename("T", "S") -} - diff --git a/gopls/internal/lsp/testdata/rename/issue39614/issue39614.go.golden b/gopls/internal/lsp/testdata/rename/issue39614/issue39614.go.golden deleted file mode 100644 index d87c58e832e..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue39614/issue39614.go.golden +++ /dev/null @@ -1,10 +0,0 @@ --- bar-rename -- -package issue39614 - -func fn() { - var bar bool //@rename("foo","bar") - make(map[string]bool - if true { - } -} - diff --git a/gopls/internal/lsp/testdata/rename/issue39614/issue39614.go.in b/gopls/internal/lsp/testdata/rename/issue39614/issue39614.go.in deleted file mode 100644 index 8222db2c441..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue39614/issue39614.go.in +++ /dev/null @@ -1,8 +0,0 @@ -package issue39614 - -func fn() { - var foo bool //@rename("foo","bar") - make(map[string]bool - if true { - } -} diff --git a/gopls/internal/lsp/testdata/rename/issue42134/1.go b/gopls/internal/lsp/testdata/rename/issue42134/1.go deleted file mode 100644 index 056f8476a27..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/1.go +++ /dev/null @@ -1,8 +0,0 @@ -package issue42134 - -func _() { - // foo computes things. - foo := func() {} - - foo() //@rename("foo", "bar") -} diff --git a/gopls/internal/lsp/testdata/rename/issue42134/1.go.golden b/gopls/internal/lsp/testdata/rename/issue42134/1.go.golden deleted file mode 100644 index 266aeef4b66..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/1.go.golden +++ /dev/null @@ -1,10 +0,0 @@ --- bar-rename -- -package issue42134 - -func _() { - // bar computes things. - bar := func() {} - - bar() //@rename("foo", "bar") -} - diff --git a/gopls/internal/lsp/testdata/rename/issue42134/2.go b/gopls/internal/lsp/testdata/rename/issue42134/2.go deleted file mode 100644 index e9f639575c8..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/2.go +++ /dev/null @@ -1,12 +0,0 @@ -package issue42134 - -import "fmt" - -func _() { - // minNumber is a min number. - // Second line. - minNumber := min(1, 2) - fmt.Println(minNumber) //@rename("minNumber", "res") -} - -func min(a, b int) int { return a } diff --git a/gopls/internal/lsp/testdata/rename/issue42134/2.go.golden b/gopls/internal/lsp/testdata/rename/issue42134/2.go.golden deleted file mode 100644 index 406a3833c45..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/2.go.golden +++ /dev/null @@ -1,14 +0,0 @@ --- res-rename -- -package issue42134 - -import "fmt" - -func _() { - // res is a min number. - // Second line. - res := min(1, 2) - fmt.Println(res) //@rename("minNumber", "res") -} - -func min(a, b int) int { return a } - diff --git a/gopls/internal/lsp/testdata/rename/issue42134/3.go b/gopls/internal/lsp/testdata/rename/issue42134/3.go deleted file mode 100644 index 7666f57d34a..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/3.go +++ /dev/null @@ -1,11 +0,0 @@ -package issue42134 - -func _() { - /* - tests contains test cases - */ - tests := []struct { //@rename("tests", "testCases") - in, out string - }{} - _ = tests -} diff --git a/gopls/internal/lsp/testdata/rename/issue42134/3.go.golden b/gopls/internal/lsp/testdata/rename/issue42134/3.go.golden deleted file mode 100644 index cdcae18089c..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/3.go.golden +++ /dev/null @@ -1,13 +0,0 @@ --- testCases-rename -- -package issue42134 - -func _() { - /* - testCases contains test cases - */ - testCases := []struct { //@rename("tests", "testCases") - in, out string - }{} - _ = testCases -} - diff --git a/gopls/internal/lsp/testdata/rename/issue42134/4.go b/gopls/internal/lsp/testdata/rename/issue42134/4.go deleted file mode 100644 index c953520bc94..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/4.go +++ /dev/null @@ -1,8 +0,0 @@ -package issue42134 - -func _() { - // a is equal to 5. Comment must stay the same - - a := 5 - _ = a //@rename("a", "b") -} diff --git a/gopls/internal/lsp/testdata/rename/issue42134/4.go.golden b/gopls/internal/lsp/testdata/rename/issue42134/4.go.golden deleted file mode 100644 index 2086cf74cfa..00000000000 --- a/gopls/internal/lsp/testdata/rename/issue42134/4.go.golden +++ /dev/null @@ -1,10 +0,0 @@ --- b-rename -- -package issue42134 - -func _() { - // a is equal to 5. Comment must stay the same - - b := 5 - _ = b //@rename("a", "b") -} - diff --git a/gopls/internal/lsp/testdata/rename/shadow/shadow.go b/gopls/internal/lsp/testdata/rename/shadow/shadow.go deleted file mode 100644 index 38329b4fea2..00000000000 --- a/gopls/internal/lsp/testdata/rename/shadow/shadow.go +++ /dev/null @@ -1,20 +0,0 @@ -package shadow - -func _() { - a := true - b, c, _ := A(), B(), D() //@rename("A", "a"),rename("B", "b"),rename("b", "c"),rename("D", "d") - d := false - _, _, _, _ = a, b, c, d -} - -func A() int { - return 0 -} - -func B() int { - return 0 -} - -func D() int { - return 0 -} diff --git a/gopls/internal/lsp/testdata/rename/shadow/shadow.go.golden b/gopls/internal/lsp/testdata/rename/shadow/shadow.go.golden deleted file mode 100644 index a34b5c0fefe..00000000000 --- a/gopls/internal/lsp/testdata/rename/shadow/shadow.go.golden +++ /dev/null @@ -1,51 +0,0 @@ --- a-rename -- -shadow/shadow.go:10:6: renaming this func "A" to "a" -shadow/shadow.go:5:13: would cause this reference to become shadowed -shadow/shadow.go:4:2: by this intervening var definition --- b-rename -- -package shadow - -func _() { - a := true - b, c, _ := A(), b(), D() //@rename("A", "a"),rename("B", "b"),rename("b", "c"),rename("D", "d") - d := false - _, _, _, _ = a, b, c, d -} - -func A() int { - return 0 -} - -func b() int { - return 0 -} - -func D() int { - return 0 -} - --- c-rename -- -shadow/shadow.go:5:2: renaming this var "b" to "c" -shadow/shadow.go:5:5: conflicts with var in same block --- d-rename -- -package shadow - -func _() { - a := true - b, c, _ := A(), B(), d() //@rename("A", "a"),rename("B", "b"),rename("b", "c"),rename("D", "d") - d := false - _, _, _, _ = a, b, c, d -} - -func A() int { - return 0 -} - -func B() int { - return 0 -} - -func d() int { - return 0 -} - diff --git a/gopls/internal/lsp/testdata/rename/testy/testy.go b/gopls/internal/lsp/testdata/rename/testy/testy.go deleted file mode 100644 index e46dc06cda2..00000000000 --- a/gopls/internal/lsp/testdata/rename/testy/testy.go +++ /dev/null @@ -1,7 +0,0 @@ -package testy - -type tt int //@rename("tt", "testyType") - -func a() { - foo := 42 //@rename("foo", "bar") -} diff --git a/gopls/internal/lsp/testdata/rename/testy/testy.go.golden b/gopls/internal/lsp/testdata/rename/testy/testy.go.golden deleted file mode 100644 index 288dfee9682..00000000000 --- a/gopls/internal/lsp/testdata/rename/testy/testy.go.golden +++ /dev/null @@ -1,18 +0,0 @@ --- bar-rename -- -package testy - -type tt int //@rename("tt", "testyType") - -func a() { - bar := 42 //@rename("foo", "bar") -} - --- testyType-rename -- -package testy - -type testyType int //@rename("tt", "testyType") - -func a() { - foo := 42 //@rename("foo", "bar") -} - diff --git a/gopls/internal/lsp/testdata/rename/testy/testy_test.go b/gopls/internal/lsp/testdata/rename/testy/testy_test.go deleted file mode 100644 index 3d86e845558..00000000000 --- a/gopls/internal/lsp/testdata/rename/testy/testy_test.go +++ /dev/null @@ -1,8 +0,0 @@ -package testy - -import "testing" - -func TestSomething(t *testing.T) { - var x int //@rename("x", "testyX") - a() //@rename("a", "b") -} diff --git a/gopls/internal/lsp/testdata/rename/testy/testy_test.go.golden b/gopls/internal/lsp/testdata/rename/testy/testy_test.go.golden deleted file mode 100644 index 480c8e99532..00000000000 --- a/gopls/internal/lsp/testdata/rename/testy/testy_test.go.golden +++ /dev/null @@ -1,30 +0,0 @@ --- b-rename -- -testy.go: -package testy - -type tt int //@rename("tt", "testyType") - -func b() { - foo := 42 //@rename("foo", "bar") -} - -testy_test.go: -package testy - -import "testing" - -func TestSomething(t *testing.T) { - var x int //@rename("x", "testyX") - b() //@rename("a", "b") -} - --- testyX-rename -- -package testy - -import "testing" - -func TestSomething(t *testing.T) { - var testyX int //@rename("x", "testyX") - a() //@rename("a", "b") -} - diff --git a/gopls/internal/lsp/testdata/summary.txt.golden b/gopls/internal/lsp/testdata/summary.txt.golden index 09336f18ec3..b557e55112e 100644 --- a/gopls/internal/lsp/testdata/summary.txt.golden +++ b/gopls/internal/lsp/testdata/summary.txt.golden @@ -2,6 +2,5 @@ CallHierarchyCount = 2 SemanticTokenCount = 3 InlayHintsCount = 5 -RenamesCount = 45 SelectionRangesCount = 3 diff --git a/gopls/internal/lsp/tests/tests.go b/gopls/internal/lsp/tests/tests.go index 2e098b21167..3ad96c93f5b 100644 --- a/gopls/internal/lsp/tests/tests.go +++ b/gopls/internal/lsp/tests/tests.go @@ -50,7 +50,6 @@ var UpdateGolden = flag.Bool("golden", false, "Update golden files") // type in the field name and the make() expression. type CallHierarchy = map[span.Span]*CallHierarchyResult type SemanticTokens = []span.Span -type Renames = map[span.Span]string type InlayHints = []span.Span type AddImport = map[span.URI]string type SelectionRanges = []span.Span @@ -60,7 +59,6 @@ type Data struct { Exported *packagestest.Exported CallHierarchy CallHierarchy SemanticTokens SemanticTokens - Renames Renames InlayHints InlayHints AddImport AddImport SelectionRanges SelectionRanges @@ -86,7 +84,6 @@ type Tests interface { CallHierarchy(*testing.T, span.Span, *CallHierarchyResult) SemanticTokens(*testing.T, span.Span) InlayHints(*testing.T, span.Span) - Rename(*testing.T, span.Span, string) AddImport(*testing.T, span.URI, string) SelectionRanges(*testing.T, span.Span) } @@ -175,7 +172,6 @@ func RunTests(t *testing.T, dataDir string, includeMultiModule bool, f func(*tes func load(t testing.TB, mode string, dir string) *Data { datum := &Data{ CallHierarchy: make(CallHierarchy), - Renames: make(Renames), AddImport: make(AddImport), dir: dir, @@ -311,7 +307,6 @@ func load(t testing.TB, mode string, dir string) *Data { if err := datum.Exported.Expect(map[string]interface{}{ "semantic": datum.collectSemanticTokens, "inlayHint": datum.collectInlayHints, - "rename": datum.collectRenames, "incomingcalls": datum.collectIncomingCalls, "outgoingcalls": datum.collectOutgoingCalls, "addimport": datum.collectAddImports, @@ -400,16 +395,6 @@ func Run(t *testing.T, tests Tests, data *Data) { } }) - t.Run("Renames", func(t *testing.T) { - t.Helper() - for spn, newText := range data.Renames { - t.Run(uriName(spn.URI())+"_"+newText, func(t *testing.T) { - t.Helper() - tests.Rename(t, spn, newText) - }) - } - }) - t.Run("AddImport", func(t *testing.T) { t.Helper() for uri, exp := range data.AddImport { @@ -449,7 +434,6 @@ func checkData(t *testing.T, data *Data) { fmt.Fprintf(buf, "CallHierarchyCount = %v\n", len(data.CallHierarchy)) fmt.Fprintf(buf, "SemanticTokenCount = %v\n", len(data.SemanticTokens)) fmt.Fprintf(buf, "InlayHintsCount = %v\n", len(data.InlayHints)) - fmt.Fprintf(buf, "RenamesCount = %v\n", len(data.Renames)) fmt.Fprintf(buf, "SelectionRangesCount = %v\n", len(data.SelectionRanges)) want := string(data.Golden(t, "summary", summaryFile, func() ([]byte, error) { @@ -581,10 +565,6 @@ func (data *Data) collectInlayHints(src span.Span) { data.InlayHints = append(data.InlayHints, src) } -func (data *Data) collectRenames(src span.Span, newText string) { - data.Renames[src] = newText -} - // mustRange converts spn into a protocol.Range, panicking on any error. func (data *Data) mustRange(spn span.Span) protocol.Range { m, err := data.Mapper(spn.URI()) diff --git a/gopls/internal/regtest/marker/testdata/rename/bad.txt b/gopls/internal/regtest/marker/testdata/rename/bad.txt new file mode 100644 index 00000000000..c596ad13c92 --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/bad.txt @@ -0,0 +1,19 @@ +This test checks that rename fails in the presence of errors. + +-- go.mod -- +module golang.org/lsptests/bad + +go 1.18 + +-- bad.go -- +package bad + +type myStruct struct { +} + +func (s *myStruct) sFunc() bool { //@renameerr("sFunc", "rFunc", re"not possible") + return s.Bad //@diag("Bad", re"no field or method") +} + +-- bad_test.go -- +package bad diff --git a/gopls/internal/regtest/marker/testdata/rename/crosspkg.txt b/gopls/internal/regtest/marker/testdata/rename/crosspkg.txt new file mode 100644 index 00000000000..c60930b0114 --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/crosspkg.txt @@ -0,0 +1,72 @@ +This test checks cross-package renaming. + +-- go.mod -- +module golang.org/lsptests/rename + +go 1.18 + +-- crosspkg/crosspkg.go -- +package crosspkg + +func Foo() { //@rename("Foo", "Dolphin", FooToDolphin) + +} + +var Bar int //@rename("Bar", "Tomato", BarToTomato) + +-- crosspkg/another/another.go -- +package another + +type ( + I interface{ F() } + C struct{ I } +) + +func (C) g() + +func _() { + var x I = C{} + x.F() //@rename("F", "G", FToG) +} + +-- crosspkg/other/other.go -- +package other + +import "golang.org/lsptests/rename/crosspkg" + +func Other() { + crosspkg.Bar //@diag("crosspkg", re"not used") + crosspkg.Foo() //@rename("Foo", "Flamingo", FooToFlamingo) +} + +-- @BarToTomato/crosspkg/crosspkg.go -- +@@ -7 +7 @@ +-var Bar int //@rename("Bar", "Tomato", BarToTomato) ++var Tomato int //@rename("Bar", "Tomato", BarToTomato) +-- @BarToTomato/crosspkg/other/other.go -- +@@ -6 +6 @@ +- crosspkg.Bar //@diag("crosspkg", re"not used") ++ crosspkg.Tomato //@diag("crosspkg", re"not used") +-- @FToG/crosspkg/another/another.go -- +@@ -4 +4 @@ +- I interface{ F() } ++ I interface{ G() } +@@ -12 +12 @@ +- x.F() //@rename("F", "G", FToG) ++ x.G() //@rename("F", "G", FToG) +-- @FooToDolphin/crosspkg/crosspkg.go -- +@@ -3 +3 @@ +-func Foo() { //@rename("Foo", "Dolphin", FooToDolphin) ++func Dolphin() { //@rename("Foo", "Dolphin", FooToDolphin) +-- @FooToDolphin/crosspkg/other/other.go -- +@@ -7 +7 @@ +- crosspkg.Foo() //@rename("Foo", "Flamingo", FooToFlamingo) ++ crosspkg.Dolphin() //@rename("Foo", "Flamingo", FooToFlamingo) +-- @FooToFlamingo/crosspkg/crosspkg.go -- +@@ -3 +3 @@ +-func Foo() { //@rename("Foo", "Dolphin", FooToDolphin) ++func Flamingo() { //@rename("Foo", "Dolphin", FooToDolphin) +-- @FooToFlamingo/crosspkg/other/other.go -- +@@ -7 +7 @@ +- crosspkg.Foo() //@rename("Foo", "Flamingo", FooToFlamingo) ++ crosspkg.Flamingo() //@rename("Foo", "Flamingo", FooToFlamingo) diff --git a/gopls/internal/regtest/marker/testdata/rename/generics_basic.txt b/gopls/internal/regtest/marker/testdata/rename/generics_basic.txt new file mode 100644 index 00000000000..16b0a00c87b --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/generics_basic.txt @@ -0,0 +1,107 @@ +This test exercise basic renaming of generic code. + +-- embedded.go -- +package a + +type foo[P any] int //@rename("foo", "bar", fooTobar) + +var x struct{ foo[int] } + +var _ = x.foo + +-- @fooTobar/embedded.go -- +@@ -3 +3 @@ +-type foo[P any] int //@rename("foo", "bar", fooTobar) ++type bar[P any] int //@rename("foo", "bar", fooTobar) +@@ -5 +5 @@ +-var x struct{ foo[int] } ++var x struct{ bar[int] } +@@ -7 +7 @@ +-var _ = x.foo ++var _ = x.bar +-- generics.go -- +package a + +type G[P any] struct { + F int +} + +func (G[_]) M() {} + +func F[P any](P) { + var p P //@rename("P", "Q", PToQ) + _ = p +} + +func _() { + var x G[int] //@rename("G", "H", GToH) + _ = x.F //@rename("F", "K", FToK) + x.M() //@rename("M", "N", MToN) + + var y G[string] + _ = y.F + y.M() +} + +-- @FToK/generics.go -- +@@ -4 +4 @@ +- F int ++ K int +@@ -16 +16 @@ +- _ = x.F //@rename("F", "K", FToK) ++ _ = x.K //@rename("F", "K", FToK) +@@ -20 +20 @@ +- _ = y.F ++ _ = y.K +-- @GToH/generics.go -- +@@ -3 +3 @@ +-type G[P any] struct { ++type H[P any] struct { +@@ -7 +7 @@ +-func (G[_]) M() {} ++func (H[_]) M() {} +@@ -15 +15 @@ +- var x G[int] //@rename("G", "H", GToH) ++ var x H[int] //@rename("G", "H", GToH) +@@ -19 +19 @@ +- var y G[string] ++ var y H[string] +-- @MToN/generics.go -- +@@ -7 +7 @@ +-func (G[_]) M() {} ++func (G[_]) N() {} +@@ -17 +17 @@ +- x.M() //@rename("M", "N", MToN) ++ x.N() //@rename("M", "N", MToN) +@@ -21 +21 @@ +- y.M() ++ y.N() +-- @PToQ/generics.go -- +@@ -9,2 +9,2 @@ +-func F[P any](P) { +- var p P //@rename("P", "Q", PToQ) ++func F[Q any](Q) { ++ var p Q //@rename("P", "Q", PToQ) +-- unions.go -- +package a + +type T string //@rename("T", "R", TToR) + +type C interface { + T | ~int //@rename("T", "S", TToS) +} + +-- @TToR/unions.go -- +@@ -3 +3 @@ +-type T string //@rename("T", "R", TToR) ++type R string //@rename("T", "R", TToR) +@@ -6 +6 @@ +- T | ~int //@rename("T", "S", TToS) ++ R | ~int //@rename("T", "S", TToS) +-- @TToS/unions.go -- +@@ -3 +3 @@ +-type T string //@rename("T", "R", TToR) ++type S string //@rename("T", "R", TToR) +@@ -6 +6 @@ +- T | ~int //@rename("T", "S", TToS) ++ S | ~int //@rename("T", "S", TToS) diff --git a/gopls/internal/regtest/marker/testdata/rename/issue39614.txt b/gopls/internal/regtest/marker/testdata/rename/issue39614.txt new file mode 100644 index 00000000000..d6d9c241ba7 --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/issue39614.txt @@ -0,0 +1,18 @@ + +-- flags -- +-ignore_extra_diags + +-- p.go -- +package issue39614 + +func fn() { + var foo bool //@rename("foo", "bar", fooTobar) + make(map[string]bool + if true { + } +} + +-- @fooTobar/p.go -- +@@ -4 +4 @@ +- var foo bool //@rename("foo", "bar", fooTobar) ++ var bar bool //@rename("foo", "bar", fooTobar) diff --git a/gopls/internal/regtest/marker/testdata/rename/issue42134.txt b/gopls/internal/regtest/marker/testdata/rename/issue42134.txt new file mode 100644 index 00000000000..6a83762d87c --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/issue42134.txt @@ -0,0 +1,78 @@ + +-- 1.go -- +package issue42134 + +func _() { + // foo computes things. + foo := func() {} + + foo() //@rename("foo", "bar", fooTobar) +} +-- @fooTobar/1.go -- +@@ -4,2 +4,2 @@ +- // foo computes things. +- foo := func() {} ++ // bar computes things. ++ bar := func() {} +@@ -7 +7 @@ +- foo() //@rename("foo", "bar", fooTobar) ++ bar() //@rename("foo", "bar", fooTobar) +-- 2.go -- +package issue42134 + +import "fmt" + +func _() { + // minNumber is a min number. + // Second line. + minNumber := min(1, 2) + fmt.Println(minNumber) //@rename("minNumber", "res", minNumberTores) +} + +func min(a, b int) int { return a } +-- @minNumberTores/2.go -- +@@ -6 +6 @@ +- // minNumber is a min number. ++ // res is a min number. +@@ -8,2 +8,2 @@ +- minNumber := min(1, 2) +- fmt.Println(minNumber) //@rename("minNumber", "res", minNumberTores) ++ res := min(1, 2) ++ fmt.Println(res) //@rename("minNumber", "res", minNumberTores) +-- 3.go -- +package issue42134 + +func _() { + /* + tests contains test cases + */ + tests := []struct { //@rename("tests", "testCases", testsTotestCases) + in, out string + }{} + _ = tests +} +-- @testsTotestCases/3.go -- +@@ -5 +5 @@ +- tests contains test cases ++ testCases contains test cases +@@ -7 +7 @@ +- tests := []struct { //@rename("tests", "testCases", testsTotestCases) ++ testCases := []struct { //@rename("tests", "testCases", testsTotestCases) +@@ -10 +10 @@ +- _ = tests ++ _ = testCases +-- 4.go -- +package issue42134 + +func _() { + // a is equal to 5. Comment must stay the same + + a := 5 + _ = a //@rename("a", "b", aTob) +} +-- @aTob/4.go -- +@@ -6,2 +6,2 @@ +- a := 5 +- _ = a //@rename("a", "b", aTob) ++ b := 5 ++ _ = b //@rename("a", "b", aTob) diff --git a/gopls/internal/regtest/marker/testdata/rename/random.txt b/gopls/internal/regtest/marker/testdata/rename/random.txt new file mode 100644 index 00000000000..5c58b3db626 --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/random.txt @@ -0,0 +1,238 @@ +This test ports some "random" rename tests from the old marker tests. + +-- flags -- +-ignore_extra_diags + +-- go.mod -- +module golang.org/lsptests/rename + +go 1.18 +-- a/a.go -- +package a + +import ( + lg "log" + "fmt" //@rename("fmt", "fmty", fmtTofmty) + f2 "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) +) + +func Random() int { + y := 6 + 7 + return y +} + +func Random2(y int) int { //@rename("y", "z", yToz) + return y +} + +type Pos struct { + x, y int +} + +func (p *Pos) Sum() int { + return p.x + p.y //@rename("x", "myX", xTomyX) +} + +func _() { + var p Pos //@rename("p", "pos", pTopos) + _ = p.Sum() //@rename("Sum", "GetSum", SumToGetSum) +} + +func sw() { + var x interface{} + + switch y := x.(type) { //@rename("y", "y0", yToy0) + case int: + fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) + case string: + lg.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) + default: + f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) + } +} +-- @SumToGetSum/a/a.go -- +@@ -22 +22 @@ +-func (p *Pos) Sum() int { ++func (p *Pos) GetSum() int { +@@ -28 +28 @@ +- _ = p.Sum() //@rename("Sum", "GetSum", SumToGetSum) ++ _ = p.GetSum() //@rename("Sum", "GetSum", SumToGetSum) +-- @f2Tof2name/a/a.go -- +@@ -6 +6 @@ +- f2 "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) ++ f2name "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ f2name.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @f2Tofmt2/a/a.go -- +@@ -6 +6 @@ +- f2 "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) ++ fmt2 "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ fmt2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @fmtTof2y/a/a.go -- +@@ -6 +6 @@ +- f2 "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) ++ f2y "fmt" //@rename("f2", "f2name", f2Tof2name),rename("fmt", "f2y", fmtTof2y) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ f2y.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @fmtTofmty/a/a.go -- +@@ -5 +5 @@ +- "fmt" //@rename("fmt", "fmty", fmtTofmty) ++ fmty "fmt" //@rename("fmt", "fmty", fmtTofmty) +@@ -36 +36 @@ +- fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) ++ fmty.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) +-- @fmtToformat/a/a.go -- +@@ -5 +5 @@ +- "fmt" //@rename("fmt", "fmty", fmtTofmty) ++ format "fmt" //@rename("fmt", "fmty", fmtTofmty) +@@ -36 +36 @@ +- fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) ++ format.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) +-- @lgTolog/a/a.go -- +@@ -4 +4 @@ +- lg "log" ++ "log" +@@ -38 +38 @@ +- lg.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) ++ log.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) +-- @pTopos/a/a.go -- +@@ -27,2 +27,2 @@ +- var p Pos //@rename("p", "pos", pTopos) +- _ = p.Sum() //@rename("Sum", "GetSum", SumToGetSum) ++ var pos Pos //@rename("p", "pos", pTopos) ++ _ = pos.Sum() //@rename("Sum", "GetSum", SumToGetSum) +-- @xTomyX/a/a.go -- +@@ -19 +19 @@ +- x, y int ++ myX, y int +@@ -23 +23 @@ +- return p.x + p.y //@rename("x", "myX", xTomyX) ++ return p.myX + p.y //@rename("x", "myX", xTomyX) +-- @yToy0/a/a.go -- +@@ -34 +34 @@ +- switch y := x.(type) { //@rename("y", "y0", yToy0) ++ switch y0 := x.(type) { //@rename("y", "y0", yToy0) +@@ -36 +36 @@ +- fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) ++ fmt.Printf("%d", y0) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) +@@ -38 +38 @@ +- lg.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) ++ lg.Printf("%s", y0) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ f2.Printf("%v", y0) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @yToy1/a/a.go -- +@@ -34 +34 @@ +- switch y := x.(type) { //@rename("y", "y0", yToy0) ++ switch y1 := x.(type) { //@rename("y", "y0", yToy0) +@@ -36 +36 @@ +- fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) ++ fmt.Printf("%d", y1) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) +@@ -38 +38 @@ +- lg.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) ++ lg.Printf("%s", y1) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ f2.Printf("%v", y1) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @yToy2/a/a.go -- +@@ -34 +34 @@ +- switch y := x.(type) { //@rename("y", "y0", yToy0) ++ switch y2 := x.(type) { //@rename("y", "y0", yToy0) +@@ -36 +36 @@ +- fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) ++ fmt.Printf("%d", y2) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) +@@ -38 +38 @@ +- lg.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) ++ lg.Printf("%s", y2) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ f2.Printf("%v", y2) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @yToy3/a/a.go -- +@@ -34 +34 @@ +- switch y := x.(type) { //@rename("y", "y0", yToy0) ++ switch y3 := x.(type) { //@rename("y", "y0", yToy0) +@@ -36 +36 @@ +- fmt.Printf("%d", y) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) ++ fmt.Printf("%d", y3) //@rename("y", "y1", yToy1),rename("fmt", "format", fmtToformat) +@@ -38 +38 @@ +- lg.Printf("%s", y) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) ++ lg.Printf("%s", y3) //@rename("y", "y2", yToy2),rename("lg", "log", lgTolog) +@@ -40 +40 @@ +- f2.Printf("%v", y) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) ++ f2.Printf("%v", y3) //@rename("y", "y3", yToy3),rename("f2", "fmt2", f2Tofmt2) +-- @yToz/a/a.go -- +@@ -14,2 +14,2 @@ +-func Random2(y int) int { //@rename("y", "z", yToz) +- return y ++func Random2(z int) int { //@rename("y", "z", yToz) ++ return z +-- b/b.go -- +package b + +var c int //@renameerr("int", "uint", re"cannot be renamed") + +func _() { + a := 1 //@rename("a", "error", aToerror) + a = 2 + _ = a +} + +var ( + // Hello there. + // Foo does the thing. + Foo int //@rename("Foo", "Bob", FooToBob) +) + +/* +Hello description +*/ +func Hello() {} //@rename("Hello", "Goodbye", HelloToGoodbye) + +-- c/c.go -- +package c + +import "golang.org/lsptests/rename/b" + +func _() { + b.Hello() //@rename("Hello", "Goodbye", HelloToGoodbye) +} + +-- c/c2.go -- +package c + +//go:embed Static/* +var Static embed.FS //@rename("Static", "static", StaticTostatic) + +-- @FooToBob/b/b.go -- +@@ -13,2 +13,2 @@ +- // Foo does the thing. +- Foo int //@rename("Foo", "Bob", FooToBob) ++ // Bob does the thing. ++ Bob int //@rename("Foo", "Bob", FooToBob) +-- @HelloToGoodbye/b/b.go -- +@@ -18 +18 @@ +-Hello description ++Goodbye description +@@ -20 +20 @@ +-func Hello() {} //@rename("Hello", "Goodbye", HelloToGoodbye) ++func Goodbye() {} //@rename("Hello", "Goodbye", HelloToGoodbye) +-- @aToerror/b/b.go -- +@@ -6,3 +6,3 @@ +- a := 1 //@rename("a", "error", aToerror) +- a = 2 +- _ = a ++ error := 1 //@rename("a", "error", aToerror) ++ error = 2 ++ _ = error +-- @HelloToGoodbye/c/c.go -- +@@ -6 +6 @@ +- b.Hello() //@rename("Hello", "Goodbye", HelloToGoodbye) ++ b.Goodbye() //@rename("Hello", "Goodbye", HelloToGoodbye) +-- @StaticTostatic/c/c2.go -- +@@ -4 +4 @@ +-var Static embed.FS //@rename("Static", "static", StaticTostatic) ++var static embed.FS //@rename("Static", "static", StaticTostatic) diff --git a/gopls/internal/regtest/marker/testdata/rename/shadow.txt b/gopls/internal/regtest/marker/testdata/rename/shadow.txt new file mode 100644 index 00000000000..8f6239e7dbb --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/shadow.txt @@ -0,0 +1,36 @@ + +-- shadow.go -- +package shadow + +func _() { + a := true + b, c, _ := A(), B(), D() //@renameerr("A", "a", re"shadowed"),rename("B", "b", BTob),renameerr("b", "c", re"conflict"),rename("D", "d", DTod) + d := false + _, _, _, _ = a, b, c, d +} + +func A() int { + return 0 +} + +func B() int { + return 0 +} + +func D() int { + return 0 +} +-- @BTob/shadow.go -- +@@ -5 +5 @@ +- b, c, _ := A(), B(), D() //@renameerr("A", "a", re"shadowed"),rename("B", "b", BTob),renameerr("b", "c", re"conflict"),rename("D", "d", DTod) ++ b, c, _ := A(), b(), D() //@renameerr("A", "a", re"shadowed"),rename("B", "b", BTob),renameerr("b", "c", re"conflict"),rename("D", "d", DTod) +@@ -14 +14 @@ +-func B() int { ++func b() int { +-- @DTod/shadow.go -- +@@ -5 +5 @@ +- b, c, _ := A(), B(), D() //@renameerr("A", "a", re"shadowed"),rename("B", "b", BTob),renameerr("b", "c", re"conflict"),rename("D", "d", DTod) ++ b, c, _ := A(), B(), d() //@renameerr("A", "a", re"shadowed"),rename("B", "b", BTob),renameerr("b", "c", re"conflict"),rename("D", "d", DTod) +@@ -18 +18 @@ +-func D() int { ++func d() int { diff --git a/gopls/internal/regtest/marker/testdata/rename/testy.txt b/gopls/internal/regtest/marker/testdata/rename/testy.txt new file mode 100644 index 00000000000..e7f75038a06 --- /dev/null +++ b/gopls/internal/regtest/marker/testdata/rename/testy.txt @@ -0,0 +1,41 @@ + +-- flags -- +-ignore_extra_diags + +-- testy.go -- +package testy + +type tt int //@rename("tt", "testyType", ttTotestyType) + +func a() { + foo := 42 //@rename("foo", "bar", fooTobar) +} +-- testy_test.go -- +package testy + +import "testing" + +func TestSomething(t *testing.T) { + var x int //@rename("x", "testyX", xTotestyX) + a() //@rename("a", "b", aTob) +} +-- @aTob/testy.go -- +@@ -5 +5 @@ +-func a() { ++func b() { +-- @aTob/testy_test.go -- +@@ -7 +7 @@ +- a() //@rename("a", "b", aTob) ++ b() //@rename("a", "b", aTob) +-- @fooTobar/testy.go -- +@@ -6 +6 @@ +- foo := 42 //@rename("foo", "bar", fooTobar) ++ bar := 42 //@rename("foo", "bar", fooTobar) +-- @ttTotestyType/testy.go -- +@@ -3 +3 @@ +-type tt int //@rename("tt", "testyType", ttTotestyType) ++type testyType int //@rename("tt", "testyType", ttTotestyType) +-- @xTotestyX/testy_test.go -- +@@ -6 +6 @@ +- var x int //@rename("x", "testyX", xTotestyX) ++ var testyX int //@rename("x", "testyX", xTotestyX)