honnef.co/go/tools@v0.4.7/staticcheck/testdata/src/example.com/CheckSideEffectFreeCalls/CheckSideEffectFreeCalls.go (about)

     1  package pkg
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"net/http"
     7  	"strings"
     8  )
     9  
    10  func fn1() {
    11  	strings.Replace("", "", "", 1) //@ diag(`doesn't have side effects`)
    12  	foo(1, 2)                      //@ diag(`doesn't have side effects`)
    13  	baz(1, 2)                      //@ diag(`doesn't have side effects`)
    14  	_, x := baz(1, 2)
    15  	_ = x
    16  	bar(1, 2)
    17  }
    18  
    19  func fn2() {
    20  	r, _ := http.NewRequest("GET", "/", nil)
    21  	r.WithContext(context.Background()) //@ diag(`doesn't have side effects`)
    22  }
    23  
    24  func foo(a, b int) int        { return a + b }
    25  func baz(a, b int) (int, int) { return a + b, a + b }
    26  func bar(a, b int) int {
    27  	println(a + b)
    28  	return a + b
    29  }
    30  
    31  func empty()            {}
    32  func stubPointer() *int { return nil }
    33  func stubInt() int      { return 0 }
    34  
    35  func fn3() {
    36  	empty()
    37  	stubPointer()
    38  	stubInt()
    39  }
    40  
    41  func fn4() error {
    42  	// Test for https://github.com/dominikh/go-tools/issues/949
    43  	if true {
    44  		return fmt.Errorf("")
    45  	}
    46  	for {
    47  	}
    48  }