File: removeparam_satisfies.txt

package info (click to toggle)
golang-golang-x-tools 1%3A0.25.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 22,724 kB
  • sloc: javascript: 2,027; asm: 1,645; sh: 166; yacc: 155; makefile: 49; ansic: 8
file content (65 lines) | stat: -rw-r--r-- 1,069 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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.

-- flags --
-min_go=go1.20

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

go 1.20

-- p.go --
package rm

type T int

func (t T) Foo(x int) { //@codeaction("x", "x", "refactor.rewrite", 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(1)
}
-- @basic/p.go --
package rm

type T int

func (t T) Foo() { //@codeaction("x", "x", "refactor.rewrite", 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
	var t rm.T = x
	t.Foo()
}