aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--defererr.go4
-rw-r--r--testdata/signature.go15
2 files changed, 17 insertions, 2 deletions
diff --git a/defererr.go b/defererr.go
index 96072be..f6167ae 100644
--- a/defererr.go
+++ b/defererr.go
@@ -334,8 +334,8 @@ func checkErrorAssignedInDefer(
if !isErrorNameInReturnSignature {
pass.Reportf(
errorReturnField.Pos(),
- "return signature should be '(err error)'", // TODO: Use name from ident.Name
- // errorReturnField,
+ "return signature should be '(%s error)'", // TODO: Use name from ident.Name
+ ident,
)
break
diff --git a/testdata/signature.go b/testdata/signature.go
index 73203ee..b668558 100644
--- a/testdata/signature.go
+++ b/testdata/signature.go
@@ -45,6 +45,21 @@ func returnedErrorMustMatchDeferErrorName() (err error) {
return err2 // want "does not return 'err'"
}
+func deferUsesUnconventionalErrName() error { // want "return signature should be '\\(anErr error\\)'"
+ var anErr error
+
+ anErr = nil
+ if anErr != nil {
+ return anErr
+ }
+
+ defer func() {
+ anErr = errors.New("defer error")
+ }()
+
+ return anErr
+}
+
func good() (err error) {
err = nil
if err != nil {