# This test exercises skipping of fixes that edit generated
# files, and the summary logging thereof.

checker -rename -marker -fix -v example.com/a
stderr skipped 1 fix that would edit generated files
stderr applied 2 fixes, updated 1 file
exit 0

-- go.mod --
module example.com
go 1.22

-- a/a.go --
package a

var A int //@ fix("A", "A2")

-- a/gena.go --
// Code generated by hand. DO NOT EDIT.

package a

var B int //@ fix2("B", "B2")

-- want/a/a.go --
package a

var A2 int //@ fix("A", "A2")

-- want/a/gena.go --
// Code generated by hand. DO NOT EDIT.

package a

var B int //@ fix2("B", "B2")
