Skip to content

Commit 4b7ce7c

Browse files
committed
[gopls-release-branch.0.15] gopls: fix test failures due to quoting of names in go/types errors
Starting soon, go/types will quote some user defined names in error messages as `a'. Update tests to be tolerant of the new syntax. Notably, logic in the unusedvariable analyzer which extracts the variable name had to be updated. Change-Id: I091ab2af9b5ed82aa7eacad8f4a9405f34fcded7 Reviewed-on: https://go-review.googlesource.com/c/tools/+/571517 LUCI-TryBot-Result: Go LUCI <[email protected]> Auto-Submit: Robert Findley <[email protected]> Reviewed-by: Robert Griesemer <[email protected]> (cherry picked from commit 67e856b) Reviewed-on: https://go-review.googlesource.com/c/tools/+/577258 Reviewed-by: Alan Donovan <[email protected]>
1 parent 270fd83 commit 4b7ce7c

File tree

10 files changed

+50
-47
lines changed

10 files changed

+50
-47
lines changed

gopls/internal/analysis/unusedvariable/testdata/src/assign/a.go

+17-17
Original file line numberDiff line numberDiff line change
@@ -14,55 +14,55 @@ type A struct {
1414
}
1515

1616
func singleAssignment() {
17-
v := "s" // want `v declared (and|but) not used`
17+
v := "s" // want `v.*declared (and|but) not used`
1818

19-
s := []int{ // want `s declared (and|but) not used`
19+
s := []int{ // want `s.*declared (and|but) not used`
2020
1,
2121
2,
2222
}
2323

24-
a := func(s string) bool { // want `a declared (and|but) not used`
24+
a := func(s string) bool { // want `a.*declared (and|but) not used`
2525
return false
2626
}
2727

2828
if 1 == 1 {
29-
s := "v" // want `s declared (and|but) not used`
29+
s := "v" // want `s.*declared (and|but) not used`
3030
}
3131

3232
panic("I should survive")
3333
}
3434

3535
func noOtherStmtsInBlock() {
36-
v := "s" // want `v declared (and|but) not used`
36+
v := "s" // want `v.*declared (and|but) not used`
3737
}
3838

3939
func partOfMultiAssignment() {
40-
f, err := os.Open("file") // want `f declared (and|but) not used`
40+
f, err := os.Open("file") // want `f.*declared (and|but) not used`
4141
panic(err)
4242
}
4343

4444
func sideEffects(cBool chan bool, cInt chan int) {
45-
b := <-c // want `b declared (and|but) not used`
46-
s := fmt.Sprint("") // want `s declared (and|but) not used`
47-
a := A{ // want `a declared (and|but) not used`
45+
b := <-c // want `b.*declared (and|but) not used`
46+
s := fmt.Sprint("") // want `s.*declared (and|but) not used`
47+
a := A{ // want `a.*declared (and|but) not used`
4848
b: func() int {
4949
return 1
5050
}(),
5151
}
52-
c := A{<-cInt} // want `c declared (and|but) not used`
53-
d := fInt() + <-cInt // want `d declared (and|but) not used`
54-
e := fBool() && <-cBool // want `e declared (and|but) not used`
55-
f := map[int]int{ // want `f declared (and|but) not used`
52+
c := A{<-cInt} // want `c.*declared (and|but) not used`
53+
d := fInt() + <-cInt // want `d.*declared (and|but) not used`
54+
e := fBool() && <-cBool // want `e.*declared (and|but) not used`
55+
f := map[int]int{ // want `f.*declared (and|but) not used`
5656
fInt(): <-cInt,
5757
}
58-
g := []int{<-cInt} // want `g declared (and|but) not used`
59-
h := func(s string) {} // want `h declared (and|but) not used`
60-
i := func(s string) {}() // want `i declared (and|but) not used`
58+
g := []int{<-cInt} // want `g.*declared (and|but) not used`
59+
h := func(s string) {} // want `h.*declared (and|but) not used`
60+
i := func(s string) {}() // want `i.*declared (and|but) not used`
6161
}
6262

6363
func commentAbove() {
6464
// v is a variable
65-
v := "s" // want `v declared (and|but) not used`
65+
v := "s" // want `v.*declared (and|but) not used`
6666
}
6767

6868
func fBool() bool {

gopls/internal/analysis/unusedvariable/testdata/src/assign/a.go.golden

+10-10
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,26 @@ func noOtherStmtsInBlock() {
2424
}
2525

2626
func partOfMultiAssignment() {
27-
_, err := os.Open("file") // want `f declared (and|but) not used`
27+
_, err := os.Open("file") // want `f.*declared (and|but) not used`
2828
panic(err)
2929
}
3030

3131
func sideEffects(cBool chan bool, cInt chan int) {
32-
<-c // want `b declared (and|but) not used`
33-
fmt.Sprint("") // want `s declared (and|but) not used`
34-
A{ // want `a declared (and|but) not used`
32+
<-c // want `b.*declared (and|but) not used`
33+
fmt.Sprint("") // want `s.*declared (and|but) not used`
34+
A{ // want `a.*declared (and|but) not used`
3535
b: func() int {
3636
return 1
3737
}(),
3838
}
39-
A{<-cInt} // want `c declared (and|but) not used`
40-
fInt() + <-cInt // want `d declared (and|but) not used`
41-
fBool() && <-cBool // want `e declared (and|but) not used`
42-
map[int]int{ // want `f declared (and|but) not used`
39+
A{<-cInt} // want `c.*declared (and|but) not used`
40+
fInt() + <-cInt // want `d.*declared (and|but) not used`
41+
fBool() && <-cBool // want `e.*declared (and|but) not used`
42+
map[int]int{ // want `f.*declared (and|but) not used`
4343
fInt(): <-cInt,
4444
}
45-
[]int{<-cInt} // want `g declared (and|but) not used`
46-
func(s string) {}() // want `i declared (and|but) not used`
45+
[]int{<-cInt} // want `g.*declared (and|but) not used`
46+
func(s string) {}() // want `i.*declared (and|but) not used`
4747
}
4848

4949
func commentAbove() {

gopls/internal/analysis/unusedvariable/testdata/src/decl/a.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,25 @@
55
package decl
66

77
func a() {
8-
var b, c bool // want `b declared (and|but) not used`
8+
var b, c bool // want `b.*declared (and|but) not used`
99
panic(c)
1010

1111
if 1 == 1 {
12-
var s string // want `s declared (and|but) not used`
12+
var s string // want `s.*declared (and|but) not used`
1313
}
1414
}
1515

1616
func b() {
1717
// b is a variable
18-
var b bool // want `b declared (and|but) not used`
18+
var b bool // want `b.*declared (and|but) not used`
1919
}
2020

2121
func c() {
2222
var (
2323
d string
2424

2525
// some comment for c
26-
c bool // want `c declared (and|but) not used`
26+
c bool // want `c.*declared (and|but) not used`
2727
)
2828

2929
panic(d)

gopls/internal/analysis/unusedvariable/testdata/src/decl/a.go.golden

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package decl
66

77
func a() {
8-
var c bool // want `b declared (and|but) not used`
8+
var c bool // want `b.*declared (and|but) not used`
99
panic(c)
1010

1111
if 1 == 1 {

gopls/internal/analysis/unusedvariable/unusedvariable.go

+3
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ func run(pass *analysis.Pass) (interface{}, error) {
3737
for _, suffix := range unusedVariableSuffixes {
3838
if strings.HasSuffix(typeErr.Msg, suffix) {
3939
varName := strings.TrimSuffix(typeErr.Msg, suffix)
40+
// Beginning in Go 1.23, go/types began quoting vars as `v'.
41+
varName = strings.Trim(varName, "'`'")
42+
4043
err := runForError(pass, typeErr, varName)
4144
if err != nil {
4245
return nil, err

gopls/internal/test/marker/testdata/completion/bad.txt

+9-9
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func stuff() { //@item(stuff, "stuff", "func()", "func")
2020
x := "heeeeyyyy"
2121
random2(x) //@diag("x", re"cannot use x \\(variable of type string\\) as int value in argument to random2")
2222
random2(1) //@complete("dom", random, random2, random3)
23-
y := 3 //@diag("y", re"y declared (and|but) not used")
23+
y := 3 //@diag("y", re"y.*declared (and|but) not used")
2424
}
2525

2626
type bob struct { //@item(bob, "bob", "struct{...}", "struct")
@@ -48,9 +48,9 @@ func random() int { //@item(random, "random", "func() int", "func")
4848
}
4949

5050
func random2(y int) int { //@item(random2, "random2", "func(y int) int", "func"),item(bad_y_param, "y", "int", "var")
51-
x := 6 //@item(x, "x", "int", "var"),diag("x", re"x declared (and|but) not used")
52-
var q blah //@item(q, "q", "blah", "var"),diag("q", re"q declared (and|but) not used"),diag("blah", re"(undeclared name|undefined): blah")
53-
var t **blob //@item(t, "t", "**blob", "var"),diag("t", re"t declared (and|but) not used"),diag("blob", re"(undeclared name|undefined): blob")
51+
x := 6 //@item(x, "x", "int", "var"),diag("x", re"x.*declared (and|but) not used")
52+
var q blah //@item(q, "q", "blah", "var"),diag("q", re"q.*declared (and|but) not used"),diag("blah", re"(undeclared name|undefined): blah")
53+
var t **blob //@item(t, "t", "**blob", "var"),diag("t", re"t.*declared (and|but) not used"),diag("blob", re"(undeclared name|undefined): blob")
5454
//@complete("", q, t, x, bad_y_param, global_a, bob, random, random2, random3, stateFunc, stuff)
5555

5656
return y
@@ -59,10 +59,10 @@ func random2(y int) int { //@item(random2, "random2", "func(y int) int", "func")
5959
func random3(y ...int) { //@item(random3, "random3", "func(y ...int)", "func"),item(y_variadic_param, "y", "[]int", "var")
6060
//@complete("", y_variadic_param, global_a, bob, random, random2, random3, stateFunc, stuff)
6161

62-
var ch chan (favType1) //@item(ch, "ch", "chan (favType1)", "var"),diag("ch", re"ch declared (and|but) not used"),diag("favType1", re"(undeclared name|undefined): favType1")
63-
var m map[keyType]int //@item(m, "m", "map[keyType]int", "var"),diag("m", re"m declared (and|but) not used"),diag("keyType", re"(undeclared name|undefined): keyType")
64-
var arr []favType2 //@item(arr, "arr", "[]favType2", "var"),diag("arr", re"arr declared (and|but) not used"),diag("favType2", re"(undeclared name|undefined): favType2")
65-
var fn1 func() badResult //@item(fn1, "fn1", "func() badResult", "var"),diag("fn1", re"fn1 declared (and|but) not used"),diag("badResult", re"(undeclared name|undefined): badResult")
66-
var fn2 func(badParam) //@item(fn2, "fn2", "func(badParam)", "var"),diag("fn2", re"fn2 declared (and|but) not used"),diag("badParam", re"(undeclared name|undefined): badParam")
62+
var ch chan (favType1) //@item(ch, "ch", "chan (favType1)", "var"),diag("ch", re"ch.*declared (and|but) not used"),diag("favType1", re"(undeclared name|undefined): favType1")
63+
var m map[keyType]int //@item(m, "m", "map[keyType]int", "var"),diag("m", re"m.*declared (and|but) not used"),diag("keyType", re"(undeclared name|undefined): keyType")
64+
var arr []favType2 //@item(arr, "arr", "[]favType2", "var"),diag("arr", re"arr.*declared (and|but) not used"),diag("favType2", re"(undeclared name|undefined): favType2")
65+
var fn1 func() badResult //@item(fn1, "fn1", "func() badResult", "var"),diag("fn1", re"fn1.*declared (and|but) not used"),diag("badResult", re"(undeclared name|undefined): badResult")
66+
var fn2 func(badParam) //@item(fn2, "fn2", "func(badParam)", "var"),diag("fn2", re"fn2.*declared (and|but) not used"),diag("badParam", re"(undeclared name|undefined): badParam")
6767
//@complete("", arr, ch, fn1, fn2, m, y_variadic_param, global_a, bob, random, random2, random3, stateFunc, stuff)
6868
}

gopls/internal/test/marker/testdata/completion/testy.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import (
4747
)
4848

4949
func TestSomething(t *testing.T) { //@item(TestSomething, "TestSomething(t *testing.T)", "", "func")
50-
var x int //@loc(testyX, "x"), diag("x", re"x declared (and|but) not used")
50+
var x int //@loc(testyX, "x"), diag("x", re"x.*declared (and|but) not used")
5151
a() //@loc(testyA, "a")
5252
}
5353

gopls/internal/test/marker/testdata/diagnostics/generated.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ package generated
1010
// Code generated by generator.go. DO NOT EDIT.
1111

1212
func _() {
13-
var y int //@diag("y", re"y declared (and|but) not used")
13+
var y int //@diag("y", re"y.*declared (and|but) not used")
1414
}
1515

1616
-- generator.go --
1717
package generated
1818

1919
func _() {
20-
var x int //@diag("x", re"x declared (and|but) not used")
20+
var x int //@diag("x", re"x.*declared (and|but) not used")
2121
}

gopls/internal/test/marker/testdata/diagnostics/issue56943.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
)
1313

1414
func main() {
15-
var a int //@diag(re"(a) int", re"a declared.*not used")
15+
var a int //@diag(re"(a) int", re"a.*declared.*not used")
1616
var _ ast.Expr = node{} //@diag("node{}", re"missing.*exprNode")
1717
}
1818

gopls/internal/test/marker/testdata/format/format.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func hello() {
3939

4040

4141

42-
var x int //@diag("x", re"x declared (and|but) not used")
42+
var x int //@diag("x", re"x.*declared (and|but) not used")
4343
}
4444

4545
func hi() {
@@ -59,7 +59,7 @@ import (
5959

6060
func hello() {
6161

62-
var x int //@diag("x", re"x declared (and|but) not used")
62+
var x int //@diag("x", re"x.*declared (and|but) not used")
6363
}
6464

6565
func hi() {

0 commit comments

Comments
 (0)