golangci-lint/test/testdata/exportloopref.go
2020-05-24 10:31:32 +03:00

45 lines
1.0 KiB
Go

//args: -Eexportloopref
package testdata
func dummyFunction() {
var array [4]*int
var slice []*int
var ref *int
var str struct{ x *int }
println("loop expecting 10, 11, 12, 13")
for i, p := range []int{10, 11, 12, 13} {
printp(&p)
slice = append(slice, &p) // ERROR : "exporting a pointer for the loop variable p"
array[i] = &p // ERROR : "exporting a pointer for the loop variable p"
if i%2 == 0 {
ref = &p // ERROR : "exporting a pointer for the loop variable p"
str.x = &p // ERROR : "exporting a pointer for the loop variable p"
}
var vStr struct{ x *int }
var vArray [4]*int
var v *int
if i%2 == 0 {
v = &p
vArray[1] = &p
vStr.x = &p
}
_ = v
}
println(`slice expecting "10, 11, 12, 13" but "13, 13, 13, 13"`)
for _, p := range slice {
printp(p)
}
println(`array expecting "10, 11, 12, 13" but "13, 13, 13, 13"`)
for _, p := range array {
printp(p)
}
println(`captured value expecting "12" but "13"`)
printp(ref)
}
func printp(p *int) {
println(*p)
}