blob: d0b9d26c2d79222826bb7f85b42d6ce0afedbe25 [file] [log] [blame] [edit]
package fmtappendf
import (
"fmt"
)
func two() string {
return "two"
}
func bye() {
_ = fmt.Appendf(nil, "bye %d", 1) // want "Replace .*Sprintf.* with fmt.Appendf"
}
func funcsandvars() {
one := "one"
_ = fmt.Appendf(nil, "bye %d %s %s", 1, two(), one) // want "Replace .*Sprintf.* with fmt.Appendf"
}
func typealias() {
type b = byte
type bt = []byte
_ = fmt.Appendf(nil, "bye %d", 1) // want "Replace .*Sprintf.* with fmt.Appendf"
_ = fmt.Appendf(nil, "bye %d", 1) // want "Replace .*Sprintf.* with fmt.Appendf"
}
func otherprints() {
_ = fmt.Append(nil, "bye %d", 1) // want "Replace .*Sprint.* with fmt.Append"
_ = fmt.Appendln(nil, "bye %d", 1) // want "Replace .*Sprintln.* with fmt.Appendln"
}
func comma() {
type S struct{ Bytes []byte }
var _ = struct{ A S }{
A: S{
Bytes: fmt.Appendf(nil, "%d", 0),
},
}
_ = fmt.Appendf(nil, "%d", 0)
}
func emptystring() {
// empty string edge case only applies to Sprintf
_ = fmt.Appendln(nil, "") // want "Replace .*Sprintln.* with fmt.Appendln"
// nope - these return []byte{}, while the fmt.Append version returns nil
_ = []byte(fmt.Sprint(""))
_ = []byte(fmt.Sprintf("%s", ""))
_ = []byte(fmt.Sprintf("%#s", ""))
_ = []byte(fmt.Sprintf("%s%v", "", getString()))
// conservatively omitting a suggested fix (ignoring precision and args)
_ = []byte(fmt.Sprintf("%.0q", "notprinted"))
_ = []byte(fmt.Sprintf("%v", "nonempty"))
// has non-operation characters
_ = fmt.Appendf(nil, "%vother", "") // want "Replace .*Sprint.* with fmt.Appendf"
}
func multiline() []byte {
_ = fmt.Appendf(nil, "str %d", 1)
return fmt.Appendf(nil, "str %d", 1)
}
func getString() string {
return ""
}