diff options
author | Teddy Wing | 2023-05-21 01:09:37 +0200 |
---|---|---|
committer | Teddy Wing | 2023-05-21 01:09:37 +0200 |
commit | a7d7125608b4a823aa377be9cc11c6078628fb39 (patch) | |
tree | a94c035d0256e3ff2d4e85f074407fc0e5de3d7d | |
parent | e52023c71df80dd8645a6fab8abdbfdf6c2d4355 (diff) | |
download | godefererr-a7d7125608b4a823aa377be9cc11c6078628fb39.tar.bz2 |
Ignore errors declared using GenDecl inside defer closure
We don't want to report error variables that were declared inside the
closure, as those don't depend on the outside scope.
-rw-r--r-- | defererr.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/defererr.go b/defererr.go index e4e0ebe..71a9d15 100644 --- a/defererr.go +++ b/defererr.go @@ -183,6 +183,14 @@ func checkErrorAssignedInDefer( fmt.Printf("type.type.obj: %#v\n", named.Obj()) fmt.Printf("type.type.obj: %#v\n", named.Obj().Name()) + // TODO: Was error lhs declared in defer closure? Then it + // should be ignored. + if deferFuncLit.Body.Lbrace < valueSpec.Pos() && + valueSpec.Pos() < deferFuncLit.Body.Rbrace { + + continue + } + if named.Obj().Name() == "error" { deferAssignsError = true |