--- /dev/null
+package pkg
+
+import (
+ "fmt"
+ "runtime"
+)
+
+func fn() {
+ var x *int
+ foo := func(y *int) { fmt.Println(x) }
+ runtime.SetFinalizer(x, foo) // want `the finalizer closes over the object, preventing the finalizer from ever running \(at .+:10:9`
+ runtime.SetFinalizer(x, nil)
+ runtime.SetFinalizer(x, func(_ *int) { // want `the finalizer closes over the object, preventing the finalizer from ever running \(at .+:13:26`
+ fmt.Println(x)
+ })
+
+ foo = func(y *int) { fmt.Println(y) }
+ runtime.SetFinalizer(x, foo)
+ runtime.SetFinalizer(x, func(y *int) {
+ fmt.Println(y)
+ })
+}