honnef.co/go/tools@v0.5.0-0.dev.0.20240520180541-dcae280a5e87/simple/s1025/testdata/src/example.com/CheckRedundantSprintf/LintRedundantSprintf.go (about) 1 package pkg 2 3 import "fmt" 4 5 type T1 string 6 type T2 T1 7 type T3 int 8 type T4 int 9 type T5 int 10 type T6 string 11 type T7 []byte 12 13 type T9 string 14 type T10 []byte 15 type T11 int 16 17 type MyByte byte 18 19 type Alias = byte 20 type T13 = []byte 21 type T14 = []Alias 22 23 type T15 = string 24 type T16 = T9 25 type T17 = T6 26 27 func (T3) String() string { return "" } 28 func (T6) String() string { return "" } 29 func (T4) String(arg int) string { return "" } 30 func (T5) String() {} 31 32 func (T9) Format(f fmt.State, c rune) {} 33 func (T10) Format(f fmt.State, c rune) {} 34 func (T11) Format(f fmt.State, c rune) {} 35 func (T11) String() string { return "" } 36 37 func fn() { 38 var t1 T1 39 var t2 T2 40 var t3 T3 41 var t4 T4 42 var t5 T5 43 var t6 T6 44 var t7 T7 45 var t9 T9 46 var t10 T10 47 var t11 T11 48 var t12 []Alias 49 var t13 T13 50 var t14 T14 51 var t15 T15 52 var t16 T16 53 var t17 T17 54 55 _ = fmt.Sprintf("%s", "test") //@ diag(`is already a string`) 56 _ = fmt.Sprintf("%s", t1) //@ diag(`is a string`) 57 _ = fmt.Sprintf("%s", t2) //@ diag(`is a string`) 58 _ = fmt.Sprintf("%s", t3) //@ diag(`should use String() instead of fmt.Sprintf`) 59 _ = fmt.Sprintf("%s", t3.String()) //@ diag(`is already a string`) 60 _ = fmt.Sprintf("%s", t4) 61 _ = fmt.Sprintf("%s", t5) 62 _ = fmt.Sprintf("%s %s", t1, t2) 63 _ = fmt.Sprintf("%v", t1) 64 _ = fmt.Sprintf("%s", t6) //@ diag(`should use String() instead of fmt.Sprintf`) 65 _ = fmt.Sprintf("%s", t7) //@ diag(`underlying type is a slice of bytes`) 66 _ = fmt.Sprintf("%s", t12) //@ diag(`underlying type is a slice of bytes`) 67 _ = fmt.Sprintf("%s", t13) //@ diag(`underlying type is a slice of bytes`) 68 _ = fmt.Sprintf("%s", t14) //@ diag(`underlying type is a slice of bytes`) 69 _ = fmt.Sprintf("%s", t15) //@ diag(`is already a string`) 70 _ = fmt.Sprintf("%s", t17) //@ diag(`should use String() instead of fmt.Sprintf`) 71 72 // don't simplify types that implement fmt.Formatter 73 _ = fmt.Sprintf("%s", t9) 74 _ = fmt.Sprintf("%s", t10) 75 _ = fmt.Sprintf("%s", t11) 76 _ = fmt.Sprintf("%s", t16) 77 }