| This test exercises the refactoring to remove unused parameters. | |
| See removeparam_resolve.txt for same test with resolve support. | |
| -- go.mod -- | |
| module unused.mod | |
| go 1.18 | |
| -- a/a.go -- | |
| package a | |
| func A(x, unused int) int { //@codeaction("unused", "unused", "refactor.rewrite", a) | |
| return x | |
| } | |
| -- @a/a/a.go -- | |
| package a | |
| func A(x int) int { //@codeaction("unused", "unused", "refactor.rewrite", a) | |
| return x | |
| } | |
| -- a/a2.go -- | |
| package a | |
| func _() { | |
| A(1, 2) | |
| } | |
| -- a/a_test.go -- | |
| package a | |
| func _() { | |
| A(1, 2) | |
| } | |
| -- a/a_x_test.go -- | |
| package a_test | |
| import "unused.mod/a" | |
| func _() { | |
| a.A(1, 2) | |
| } | |
| -- b/b.go -- | |
| package b | |
| import "unused.mod/a" | |
| func f() int { | |
| return 1 | |
| } | |
| func g() int { | |
| return 2 | |
| } | |
| func _() { | |
| a.A(f(), 1) | |
| } | |
| -- @a/a/a2.go -- | |
| package a | |
| func _() { | |
| A(1) | |
| } | |
| -- @a/a/a_test.go -- | |
| package a | |
| func _() { | |
| A(1) | |
| } | |
| -- @a/a/a_x_test.go -- | |
| package a_test | |
| import "unused.mod/a" | |
| func _() { | |
| a.A(1) | |
| } | |
| -- @a/b/b.go -- | |
| package b | |
| import "unused.mod/a" | |
| func f() int { | |
| return 1 | |
| } | |
| func g() int { | |
| return 2 | |
| } | |
| func _() { | |
| a.A(f()) | |
| } | |
| -- field/field.go -- | |
| package field | |
| func Field(x int, field int) { //@codeaction("int", "int", "refactor.rewrite", field, "Refactor: remove unused parameter") | |
| } | |
| func _() { | |
| Field(1, 2) | |
| } | |
| -- @field/field/field.go -- | |
| package field | |
| func Field(field int) { //@codeaction("int", "int", "refactor.rewrite", field, "Refactor: remove unused parameter") | |
| } | |
| func _() { | |
| Field(2) | |
| } | |
| -- ellipsis/ellipsis.go -- | |
| package ellipsis | |
| func Ellipsis(...any) { //@codeaction("any", "any", "refactor.rewrite", ellipsis) | |
| } | |
| func _() { | |
| // TODO(rfindley): investigate the broken formatting resulting from these inlinings. | |
| Ellipsis() | |
| Ellipsis(1) | |
| Ellipsis(1, 2) | |
| Ellipsis(1, f(), g()) | |
| Ellipsis(h()) | |
| Ellipsis(i()...) | |
| } | |
| func f() int | |
| func g() int | |
| func h() (int, int) | |
| func i() []any | |
| -- @ellipsis/ellipsis/ellipsis.go -- | |
| package ellipsis | |
| func Ellipsis() { //@codeaction("any", "any", "refactor.rewrite", ellipsis) | |
| } | |
| func _() { | |
| // TODO(rfindley): investigate the broken formatting resulting from these inlinings. | |
| Ellipsis() | |
| Ellipsis() | |
| Ellipsis() | |
| var _ []any = []any{1, f(), g()} | |
| Ellipsis() | |
| func(_ ...any) { | |
| Ellipsis() | |
| }(h()) | |
| var _ []any = i() | |
| Ellipsis() | |
| } | |
| func f() int | |
| func g() int | |
| func h() (int, int) | |
| func i() []any | |
| -- ellipsis2/ellipsis2.go -- | |
| package ellipsis2 | |
| func Ellipsis2(_, _ int, rest ...int) { //@codeaction("_", "_", "refactor.rewrite", ellipsis2, "Refactor: remove unused parameter") | |
| } | |
| func _() { | |
| Ellipsis2(1,2,3) | |
| Ellipsis2(h()) | |
| Ellipsis2(1,2, []int{3, 4}...) | |
| } | |
| func h() (int, int) | |
| -- @ellipsis2/ellipsis2/ellipsis2.go -- | |
| package ellipsis2 | |
| func Ellipsis2(_ int, rest ...int) { //@codeaction("_", "_", "refactor.rewrite", ellipsis2, "Refactor: remove unused parameter") | |
| } | |
| func _() { | |
| Ellipsis2(2, []int{3}...) | |
| func(_, blank0 int, rest ...int) { | |
| Ellipsis2(blank0, rest...) | |
| }(h()) | |
| Ellipsis2(2, []int{3, 4}...) | |
| } | |
| func h() (int, int) | |
| -- overlapping/overlapping.go -- | |
| package overlapping | |
| func Overlapping(i int) int { //@codeactionerr(re"(i) int", re"(i) int", "refactor.rewrite", re"overlapping") | |
| return 0 | |
| } | |
| func _() { | |
| x := Overlapping(Overlapping(0)) | |
| _ = x | |
| } | |
| -- effects/effects.go -- | |
| package effects | |
| func effects(x, y int) int { //@ diag("y", re"unused"), codeaction("y", "y", "refactor.rewrite", effects) | |
| return x | |
| } | |
| func f() int | |
| func g() int | |
| func _() { | |
| effects(f(), g()) | |
| effects(f(), g()) | |
| } | |
| -- @effects/effects/effects.go -- | |
| package effects | |
| func effects(x int) int { //@ diag("y", re"unused"), codeaction("y", "y", "refactor.rewrite", effects) | |
| return x | |
| } | |
| func f() int | |
| func g() int | |
| func _() { | |
| var x, _ int = f(), g() | |
| effects(x) | |
| { | |
| var x, _ int = f(), g() | |
| effects(x) | |
| } | |
| } | |
| -- recursive/recursive.go -- | |
| package recursive | |
| func Recursive(x int) int { //@codeaction("x", "x", "refactor.rewrite", recursive) | |
| return Recursive(1) | |
| } | |
| -- @recursive/recursive/recursive.go -- | |
| package recursive | |
| func Recursive() int { //@codeaction("x", "x", "refactor.rewrite", recursive) | |
| return Recursive() | |
| } |