This test exercises renaming of interface methods.

The golden is currently wrong due to https://github.com/golang/go/issues/58506:
the reference to B.F in package b should be renamed too.

-- go.mod --
module example.com
go 1.12

-- a/a.go --
package a

type A int

func (A) F() {} //@renameerr("F", "G", errAfToG)

-- b/b.go --
package b

import "example.com/a"
import "example.com/c"

type B interface { F() } //@rename("F", "G", BfToG)

var _ B = a.A(0)
var _ B = c.C(0)

-- c/c.go --
package c

type C int

func (C) F() {} //@renameerr("F", "G", errCfToG)

-- d/d.go --
package d

import "example.com/b"

var _ = b.B.F

-- @errAfToG --
a/a.go:5:10: renaming this method "F" to "G"
b/b.go:6:6:	would make example.com/a.A no longer assignable to interface B
b/b.go:6:20:	(rename example.com/b.B.F if you intend to change both types)
-- @BfToG/b/b.go --
@@ -6 +6 @@
-type B interface { F() } //@rename("F", "G", BfToG)
+type B interface { G() } //@rename("F", "G", BfToG)
-- @BfToG/d/d.go --
@@ -5 +5 @@
-var _ = b.B.F
+var _ = b.B.G
-- @errCfToG --
c/c.go:5:10: renaming this method "F" to "G"
b/b.go:6:6:	would make example.com/c.C no longer assignable to interface B
b/b.go:6:20:	(rename example.com/b.B.F if you intend to change both types)
