diff options
Diffstat (limited to 'gopls/internal/lsp/testdata/rename/generics')
6 files changed, 189 insertions, 0 deletions
diff --git a/gopls/internal/lsp/testdata/rename/generics/embedded.go b/gopls/internal/lsp/testdata/rename/generics/embedded.go new file mode 100644 index 000000000..b44bab880 --- /dev/null +++ b/gopls/internal/lsp/testdata/rename/generics/embedded.go @@ -0,0 +1,10 @@ +//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 new file mode 100644 index 000000000..faa9afb69 --- /dev/null +++ b/gopls/internal/lsp/testdata/rename/generics/embedded.go.golden @@ -0,0 +1,12 @@ +-- 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 new file mode 100644 index 000000000..977589c0c --- /dev/null +++ b/gopls/internal/lsp/testdata/rename/generics/generics.go @@ -0,0 +1,25 @@ +//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 new file mode 100644 index 000000000..7d39813e1 --- /dev/null +++ b/gopls/internal/lsp/testdata/rename/generics/generics.go.golden @@ -0,0 +1,108 @@ +-- 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 new file mode 100644 index 000000000..c737b5c27 --- /dev/null +++ b/gopls/internal/lsp/testdata/rename/generics/unions.go @@ -0,0 +1,10 @@ +//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 new file mode 100644 index 000000000..463289629 --- /dev/null +++ b/gopls/internal/lsp/testdata/rename/generics/unions.go.golden @@ -0,0 +1,24 @@ +-- 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") +} + |