diff options
| -rw-r--r-- | defererr.go | 9 | ||||
| -rw-r--r-- | testdata/signature.go | 15 | 
2 files changed, 22 insertions, 2 deletions
| diff --git a/defererr.go b/defererr.go index 87697a3..c7816e9 100644 --- a/defererr.go +++ b/defererr.go @@ -37,7 +37,12 @@ func run(pass *analysis.Pass) (interface{}, error) {  				funcReturnsError := false  				for _, returnVal := range funcDecl.Type.Results.List { -					fmt.Printf("returnVal: %#v\n", returnVal.Type) +					fmt.Printf("returnVal: %#v\n", returnVal) +					for _, ident := range returnVal.Names { +						fmt.Printf("returnVal name: %#v\n", ident) +					} + +					fmt.Printf("returnVal Type: %#v\n", returnVal.Type)  					returnIdent, ok := returnVal.Type.(*ast.Ident)  					if !ok { @@ -167,6 +172,8 @@ func run(pass *analysis.Pass) (interface{}, error) {  				// 	fmt.Printf("returnVal: %#v\n", returnVal)  				// } +				fmt.Println() +  				return true  			},  		) diff --git a/testdata/signature.go b/testdata/signature.go index 17cfd0b..6fc15fc 100644 --- a/testdata/signature.go +++ b/testdata/signature.go @@ -2,7 +2,7 @@ package main  import "errors" -func declareErrInSignature() error { // want "return signature should be '(err error)'" +func shouldDeclareErrInSignature() error { // want "return signature should be '(err error)'"  	var err error // Should use variable declared in signature  	err = nil @@ -16,3 +16,16 @@ func declareErrInSignature() error { // want "return signature should be '(err e  	return nil // want "does not return 'err'"  } + +func doesDeclareErrInSignature() (err error) { +	err = nil +	if err != nil { +		return err +	} + +	defer func() { +		err = errors.New("defer error") +	}() + +	return nil // want "does not return 'err'" +} | 
