@@ -3,88 +3,29 @@ package testdata
3
3
4
4
import (
5
5
"errors"
6
+ "fmt"
6
7
"log"
7
8
)
8
9
9
- var errFoo = errors .New ("foo" )
10
+ var errLintFoo = errors .New ("foo" )
10
11
11
- func doThing () error {
12
- return errFoo
13
- }
12
+ type errLintBar struct {}
14
13
15
- func compare () {
16
- err := doThing ()
17
- if errors .Is (err , errFoo ) {
18
- log .Println ("ErrFoo" )
19
- }
20
- if err == nil {
21
- log .Println ("nil" )
22
- }
23
- if err != nil {
24
- log .Println ("nil" )
25
- }
26
- if nil == err {
27
- log .Println ("nil" )
28
- }
29
- if nil != err {
30
- log .Println ("nil" )
31
- }
32
- if err == errFoo { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
33
- log .Println ("errFoo" )
34
- }
35
- if err != errFoo { // ERROR "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error"
36
- log .Println ("not errFoo" )
37
- }
38
- if errFoo == err { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
39
- log .Println ("errFoo" )
40
- }
41
- if errFoo != err { // ERROR "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error"
42
- log .Println ("not errFoo" )
43
- }
44
- switch err { // ERROR "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors"
45
- case errFoo :
46
- log .Println ("errFoo" )
47
- }
48
- switch doThing () { // ERROR "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors"
49
- case errFoo :
50
- log .Println ("errFoo" )
51
- }
14
+ func (* errLintBar ) Error () string {
15
+ return "bar"
52
16
}
53
17
54
- type myError struct {}
55
-
56
- func ( * myError ) Error () string {
57
- return "foo"
58
- }
18
+ func errorLintAll () {
19
+ err := func () error { return nil }()
20
+ if err == errLintFoo { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
21
+ log . Println ( "errCompare" )
22
+ }
59
23
60
- func doAnotherThing () error {
61
- return & myError {}
62
- }
24
+ err = errors .New ("oops" )
25
+ fmt .Errorf ("error: %v" , err ) // ERROR "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors"
63
26
64
- func typeCheck () {
65
- err := doAnotherThing ()
66
- var me * myError
67
- if errors .As (err , & me ) {
68
- log .Println ("myError" )
69
- }
70
- _ , ok := err .(* myError ) // ERROR "type assertion on error will fail on wrapped errors. Use errors.As to check for specific errors"
71
- if ok {
72
- log .Println ("myError" )
73
- }
74
27
switch err .(type ) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors"
75
- case * myError :
76
- log .Println ("myError" )
77
- }
78
- switch doAnotherThing ().(type ) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors"
79
- case * myError :
80
- log .Println ("myError" )
81
- }
82
- switch t := err .(type ) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors"
83
- case * myError :
84
- log .Println ("myError" , t )
85
- }
86
- switch t := doAnotherThing ().(type ) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors"
87
- case * myError :
88
- log .Println ("myError" , t )
28
+ case * errLintBar :
29
+ log .Println ("errLintBar" )
89
30
}
90
31
}
0 commit comments