honnef.co/go/tools@v0.5.0-0.dev.0.20240520180541-dcae280a5e87/simple/s1030/testdata/src/example.com/CheckBytesBufferConversions/LintBytesBufferConversions.go.golden (about) 1 package pkg 2 3 import ( 4 "bytes" 5 ) 6 7 type AliasByte = byte 8 type AliasSlice = []byte 9 type AliasSlice2 = []AliasByte 10 11 func fn() { 12 buf := bytes.NewBufferString("str") 13 _ = buf.String() //@ diag(`should use buf.String() instead of string(buf.Bytes())`) 14 _ = buf.Bytes() //@ diag(`should use buf.Bytes() instead of []byte(buf.String())`) 15 16 m := map[string]*bytes.Buffer{"key": buf} 17 _ = m["key"].String() //@ diag(`should use m["key"].String() instead of string(m["key"].Bytes())`) 18 _ = m["key"].Bytes() //@ diag(`should use m["key"].Bytes() instead of []byte(m["key"].String())`) 19 20 _ = m["key"].Bytes() //@ diag(`should use m["key"].Bytes() instead of []AliasByte(m["key"].String())`) 21 _ = m["key"].Bytes() //@ diag(`should use m["key"].Bytes() instead of AliasSlice(m["key"].String())`) 22 _ = m["key"].Bytes() //@ diag(`should use m["key"].Bytes() instead of AliasSlice2(m["key"].String())`) 23 24 var m2 map[string]int 25 _ = m2[string(buf.Bytes())] // no warning, this is more efficient than buf.String() 26 27 string := func(_ interface{}) interface{} { 28 return nil 29 } 30 _ = string(m["key"].Bytes()) 31 }