This test checks cross-package renaming. -- go.mod -- module golang.org/lsptests/rename go 1.18 -- crosspkg/crosspkg.go -- package crosspkg func Foo() { //@rename("Foo", "Dolphin", FooToDolphin) } var Bar int //@rename("Bar", "Tomato", BarToTomato) -- crosspkg/another/another.go -- package another type ( I interface{ F() } C struct{ I } ) func (C) g() func _() { var x I = C{} x.F() //@rename("F", "G", FToG) } -- crosspkg/other/other.go -- package other import "golang.org/lsptests/rename/crosspkg" func Other() { crosspkg.Bar //@diag("crosspkg", re"not used") crosspkg.Foo() //@rename("Foo", "Flamingo", FooToFlamingo) } -- @BarToTomato/crosspkg/crosspkg.go -- @@ -7 +7 @@ -var Bar int //@rename("Bar", "Tomato", BarToTomato) +var Tomato int //@rename("Bar", "Tomato", BarToTomato) -- @BarToTomato/crosspkg/other/other.go -- @@ -6 +6 @@ - crosspkg.Bar //@diag("crosspkg", re"not used") + crosspkg.Tomato //@diag("crosspkg", re"not used") -- @FToG/crosspkg/another/another.go -- @@ -4 +4 @@ - I interface{ F() } + I interface{ G() } @@ -12 +12 @@ - x.F() //@rename("F", "G", FToG) + x.G() //@rename("F", "G", FToG) -- @FooToDolphin/crosspkg/crosspkg.go -- @@ -3 +3 @@ -func Foo() { //@rename("Foo", "Dolphin", FooToDolphin) +func Dolphin() { //@rename("Foo", "Dolphin", FooToDolphin) -- @FooToDolphin/crosspkg/other/other.go -- @@ -7 +7 @@ - crosspkg.Foo() //@rename("Foo", "Flamingo", FooToFlamingo) + crosspkg.Dolphin() //@rename("Foo", "Flamingo", FooToFlamingo) -- @FooToFlamingo/crosspkg/crosspkg.go -- @@ -3 +3 @@ -func Foo() { //@rename("Foo", "Dolphin", FooToDolphin) +func Flamingo() { //@rename("Foo", "Dolphin", FooToDolphin) -- @FooToFlamingo/crosspkg/other/other.go -- @@ -7 +7 @@ - crosspkg.Foo() //@rename("Foo", "Flamingo", FooToFlamingo) + crosspkg.Flamingo() //@rename("Foo", "Flamingo", FooToFlamingo)