This test verifies that gopls can remove unused parameters from methods,
when that method satisfies an interface.

For now, we just update static calls. In the future, we should compute the set
of dynamic calls that must change (and therefore, the set of concrete functions
that must be modified), in order to produce the desired outcome for our users.

Doing so would be more complicated, so for now this test simply records the
current behavior.

-- go.mod --
module example.com/rm

go 1.20

-- p.go --
package rm

type T int

func (t T) Foo(x int) { //@codeaction("x", "refactor.rewrite.removeUnusedParam", result=basic)
}

-- @basic/p.go --
package rm

type T int

func (t T) Foo() { //@codeaction("x", "refactor.rewrite.removeUnusedParam", result=basic)
}

-- @basic/use/use.go --
package use

import "example.com/rm"

type Fooer interface {
	Foo(int)
}

var _ Fooer = rm.T(0)

func _() {
	var x rm.T
	x.Foo()
}
-- use/use.go --
package use

import "example.com/rm"

type Fooer interface{
	Foo(int)
}

var _ Fooer = rm.T(0)

func _() {
	var x rm.T
	x.Foo(1)
}
