blob: 0f38f85e3bf030503a6608c6e57275806c352e05 [file] [log] [blame]
This test exercises renaming of interface methods.
-- 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)
var _ = B.F
-- 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)
@@ -11 +11 @@
-var _ = B.F
+var _ = B.G
-- @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)