-
Notifications
You must be signed in to change notification settings - Fork 265
/
defer.go
35 lines (23 loc) 路 858 Bytes
/
defer.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package fixtures
import "errors"
type tt int
func (t tt) m() {}
func deferrer() {
for {
go func() {
defer println()
}()
defer func() {}() // MATCH /prefer not to defer inside loops/
}
defer tt.m() // MATCH /be careful when deferring calls to methods without pointer receiver/
defer func() error {
return errors.New("error") // MATCH /return in a defer function has no effect/
}()
defer recover() // MATCH /recover must be called inside a deferred function, this is executing recover immediately/
recover() // MATCH /recover must be called inside a deferred function/
defer deferrer()
helper := func(_ interface{}) {}
defer helper(recover()) // MATCH /recover must be called inside a deferred function, this is executing recover immediately/
// does not work, but not currently blocked.
defer helper(func() { recover() })
}