github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/quickfix/qf1012/testdata/src/example.com/CheckWriteBytesSprintf/CheckWriteBytesSprintf.go (about)

     1  package pkg
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"io"
     7  )
     8  
     9  type NotAWriter struct{}
    10  
    11  func (NotAWriter) Write(b []byte) {}
    12  
    13  func fn1() {
    14  	var w io.Writer
    15  	var w2 NotAWriter
    16  
    17  	w.Write([]byte(fmt.Sprint("abc", "de")))   //@ diag(`Use fmt.Fprint`)
    18  	w.Write([]byte(fmt.Sprintf("%T", w)))      //@ diag(`Use fmt.Fprintf`)
    19  	w.Write([]byte(fmt.Sprintln("abc", "de"))) //@ diag(`Use fmt.Fprintln`)
    20  
    21  	w2.Write([]byte(fmt.Sprint("abc", "de")))
    22  }
    23  
    24  func fn2() {
    25  	buf := new(bytes.Buffer)
    26  	var sw io.StringWriter
    27  
    28  	buf.WriteString(fmt.Sprint("abc", "de"))   //@ diag(`Use fmt.Fprint`)
    29  	buf.WriteString(fmt.Sprintf("%T", 0))      //@ diag(`Use fmt.Fprintf`)
    30  	buf.WriteString(fmt.Sprintln("abc", "de")) //@ diag(`Use fmt.Fprintln`)
    31  
    32  	// We can't suggest fmt.Fprint here. We don't know if sw implements io.Writer.
    33  	sw.WriteString(fmt.Sprint("abc", "de"))
    34  	sw.WriteString(fmt.Sprintf("%T", 0))
    35  	sw.WriteString(fmt.Sprintln("abc", "de"))
    36  }