github.com/nozzle/golangci-lint@v1.49.0-nz3/test/testdata/exportloopref.go (about) 1 //golangcitest:args -Eexportloopref 2 package testdata 3 4 import "fmt" 5 6 func dummyFunction() { 7 var array [4]*int 8 var slice []*int 9 var ref *int 10 var str struct{ x *int } 11 12 fmt.Println("loop expecting 10, 11, 12, 13") 13 for i, p := range []int{10, 11, 12, 13} { 14 printp(&p) 15 slice = append(slice, &p) // want "exporting a pointer for the loop variable p" 16 array[i] = &p // want "exporting a pointer for the loop variable p" 17 if i%2 == 0 { 18 ref = &p // want "exporting a pointer for the loop variable p" 19 str.x = &p // want "exporting a pointer for the loop variable p" 20 } 21 var vStr struct{ x *int } 22 var vArray [4]*int 23 var v *int 24 if i%2 == 0 { 25 v = &p 26 vArray[1] = &p 27 vStr.x = &p 28 } 29 _ = v 30 } 31 32 fmt.Println(`slice expecting "10, 11, 12, 13" but "13, 13, 13, 13"`) 33 for _, p := range slice { 34 printp(p) 35 } 36 fmt.Println(`array expecting "10, 11, 12, 13" but "13, 13, 13, 13"`) 37 for _, p := range array { 38 printp(p) 39 } 40 fmt.Println(`captured value expecting "12" but "13"`) 41 printp(ref) 42 } 43 44 func printp(p *int) { 45 fmt.Println(*p) 46 }