This test exercises some renaming conflict scenarios
and ensures that the errors are informative.
-- go.mod --
module example.com
go 1.12
-- super/p.go --
package super
var x int
func f(y int) {
println(x)
println(y) //@renameerr("y", "x", errSuperBlockConflict)
}
-- @errSuperBlockConflict --
super/p.go:5:8: renaming this var "y" to "x"
super/p.go:6:10: would shadow this reference
super/p.go:3:5: to the var declared here
-- sub/p.go --
package sub
var a int
func f2(b int) {
println(a) //@renameerr("a", "b", errSubBlockConflict)
println(b)
}
-- @errSubBlockConflict --
sub/p.go:3:5: renaming this var "a" to "b"
sub/p.go:6:10: would cause this reference to become shadowed
sub/p.go:5:9: by this intervening var definition
-- pkgname/p.go --
package pkgname
import e1 "errors" //@renameerr("e1", "errors", errImportConflict)
import "errors"
var _ = errors.New
var _ = e1.New
-- @errImportConflict --
pkgname/p.go:3:8: renaming this imported package name "e1" to "errors"
pkgname/p.go:4:8: conflicts with imported package name in same block
-- pkgname2/p1.go --
package pkgname2
var x int
-- pkgname2/p2.go --
package pkgname2
import "errors" //@renameerr("errors", "x", errImportConflict2)
var _ = errors.New
-- @errImportConflict2 --
pkgname2/p2.go:2:8: renaming this imported package name "errors" to "x" would conflict
pkgname2/p1.go:2:5: with this package member var