Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.0.1-2020.1.5 / staticcheck / testdata / src / CheckCyclicFinalizer / CheckCyclicFinalizer.go
1 package pkg
2
3 import (
4         "fmt"
5         "runtime"
6 )
7
8 func fn() {
9         var x *int
10         foo := func(y *int) { fmt.Println(x) }
11         runtime.SetFinalizer(x, foo) // want `the finalizer closes over the object, preventing the finalizer from ever running \(at .+:10:9`
12         runtime.SetFinalizer(x, nil)
13         runtime.SetFinalizer(x, func(_ *int) { // want `the finalizer closes over the object, preventing the finalizer from ever running \(at .+:13:26`
14                 fmt.Println(x)
15         })
16
17         foo = func(y *int) { fmt.Println(y) }
18         runtime.SetFinalizer(x, foo)
19         runtime.SetFinalizer(x, func(y *int) {
20                 fmt.Println(y)
21         })
22 }