github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/analysis/facts/purity/testdata/src/example.com/Purity/CheckPureFunctions.go (about) 1 package pkg 2 3 func foo(a, b int) int { return a + b } // want foo:"is pure" 4 func bar(a, b int) int { 5 println(a + b) 6 return a + b 7 } 8 9 func empty() {} 10 func stubPointer() *int { return nil } 11 func stubInt() int { return 0 } 12 13 func fn3() { 14 empty() 15 stubPointer() 16 stubInt() 17 } 18 19 func ptr1() *int { return new(int) } 20 func ptr2() *int { var x int; return &x } 21 func lit() []int { return []int{} } 22 23 var X int 24 25 func load() int { _ = X; return 0 } 26 func assign(x int) int { _ = x; return 0 } // want assign:"is pure" 27 28 type pureStruct1 struct { 29 a int 30 b string 31 pureStruct2 32 } 33 34 type pureStruct2 struct { 35 c float64 36 } 37 38 func (arg pureStruct1) get() int { // want get:"is pure" 39 return arg.a 40 }