aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/gordonklaus
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2023-02-22 22:16:50 +0100
committerTaras Madan <tarasmadan@google.com>2023-02-24 12:47:23 +0100
commit4165372ec8fd142475a4e35fd0cf4f8042132208 (patch)
tree21cd62211b4dd80bee469054c5b65db77342333c /vendor/github.com/gordonklaus
parent2b3ed821a493b8936c8bacfa6f8b4f1c90a00855 (diff)
dependencies: update
set go min requirements to 1.19 update dependencies update vendor
Diffstat (limited to 'vendor/github.com/gordonklaus')
-rw-r--r--vendor/github.com/gordonklaus/ineffassign/pkg/ineffassign/ineffassign.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/vendor/github.com/gordonklaus/ineffassign/pkg/ineffassign/ineffassign.go b/vendor/github.com/gordonklaus/ineffassign/pkg/ineffassign/ineffassign.go
index c7b4fa978..3d7b18d77 100644
--- a/vendor/github.com/gordonklaus/ineffassign/pkg/ineffassign/ineffassign.go
+++ b/vendor/github.com/gordonklaus/ineffassign/pkg/ineffassign/ineffassign.go
@@ -60,6 +60,7 @@ type builder struct {
block *block
vars map[*ast.Object]*variable
results []*ast.FieldList
+ defers []bool
breaks branchStack
continues branchStack
gotos branchStack
@@ -181,6 +182,9 @@ func (bld *builder) Visit(n ast.Node) ast.Visitor {
}
brek.setDestination(bld.newBlock(exits...))
bld.breaks.pop()
+ case *ast.DeferStmt:
+ bld.defers[len(bld.defers)-1] = true
+ return bld
case *ast.LabeledStmt:
bld.gotos.get(n.Label).setDestination(bld.newBlock(bld.block))
bld.labelStmt = n
@@ -360,6 +364,7 @@ func (bld *builder) fun(typ *ast.FuncType, body *ast.BlockStmt) {
v.fundept++
}
bld.results = append(bld.results, typ.Results)
+ bld.defers = append(bld.defers, false)
b := bld.block
bld.newBlock()
@@ -369,6 +374,7 @@ func (bld *builder) fun(typ *ast.FuncType, body *ast.BlockStmt) {
bld.block = b
bld.results = bld.results[:len(bld.results)-1]
+ bld.defers = bld.defers[:len(bld.defers)-1]
for _, v := range bld.vars {
v.fundept--
}
@@ -422,8 +428,11 @@ func (bld *builder) swtch(stmt ast.Stmt, cases []ast.Stmt) {
bld.breaks.pop()
}
-// An operation that might panic marks named function results as used.
+// If an operation might panic and be recovered, mark named function results as used.
func (bld *builder) maybePanic() {
+ if len(bld.defers) == 0 || !bld.defers[len(bld.defers)-1] {
+ return
+ }
if len(bld.results) == 0 {
return
}