aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--defererr.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/defererr.go b/defererr.go
index 71a9d15..5615463 100644
--- a/defererr.go
+++ b/defererr.go
@@ -185,9 +185,7 @@ func checkErrorAssignedInDefer(
// TODO: Was error lhs declared in defer closure? Then it
// should be ignored.
- if deferFuncLit.Body.Lbrace < valueSpec.Pos() &&
- valueSpec.Pos() < deferFuncLit.Body.Rbrace {
-
+ if isVariableDeclaredInsideDeferClosure(deferFuncLit, valueSpec) {
continue
}
@@ -244,3 +242,12 @@ func checkErrorAssignedInDefer(
},
)
}
+
+// TODO: doc
+func isVariableDeclaredInsideDeferClosure(
+ deferFuncLit *ast.FuncLit,
+ variableDecl *ast.ValueSpec,
+) bool {
+ return deferFuncLit.Body.Lbrace < variableDecl.Pos() &&
+ variableDecl.Pos() < deferFuncLit.Body.Rbrace
+}