diff options
| -rw-r--r-- | defererr.go | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/defererr.go b/defererr.go index 31529b1..87697a3 100644 --- a/defererr.go +++ b/defererr.go @@ -92,6 +92,7 @@ func run(pass *analysis.Pass) (interface{}, error) {  								// TODO: Get type of Lhs, check if "error"  								// If "error", then ensure error return is declared in signature +								deferAssignsError := false  								for _, variable := range assignStmt.Lhs {  									ident, ok := variable.(*ast.Ident)  									if !ok { @@ -123,8 +124,18 @@ func run(pass *analysis.Pass) (interface{}, error) {  									fmt.Printf("type.type.obj: %#v\n", named.Obj())  									fmt.Printf("type.type.obj: %#v\n", named.Obj().Name()) + +									if named.Obj().Name() == "error" { +										deferAssignsError = true +									} +								} + +								if !deferAssignsError { +									return true  								} +								// TODO: Check that funcDecl declares error in signature (check before ast.Inspect on function body, report here) +  								return true  							},  						) | 
