aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--defererr.go2
-rw-r--r--testdata/declared_errors.go29
2 files changed, 31 insertions, 0 deletions
diff --git a/defererr.go b/defererr.go
index 8d1cb51..a4e6c8d 100644
--- a/defererr.go
+++ b/defererr.go
@@ -144,6 +144,8 @@ func run(pass *analysis.Pass) (interface{}, error) {
}
}
+ // Maybe don't report the error if it was declared in the closure using a GenDecl? -> We already don't. Should test for these things.
+
if !isErrorNameInReturnSignature {
pass.Reportf(
errorReturnField.Pos(),
diff --git a/testdata/declared_errors.go b/testdata/declared_errors.go
new file mode 100644
index 0000000..759ea0d
--- /dev/null
+++ b/testdata/declared_errors.go
@@ -0,0 +1,29 @@
+package main
+
+import (
+ "errors"
+ "log"
+)
+
+func genDeclErrNotReported() error {
+ defer func() {
+ var err error
+ err = errors.New("newly-declared error")
+ if err != nil {
+ log.Fatal(err)
+ }
+ }()
+
+ return nil
+}
+
+func assignmentDeclErrNotReported() error {
+ defer func() {
+ err := errors.New("newly-declared error")
+ if err != nil {
+ log.Fatal(err)
+ }
+ }()
+
+ return nil
+}