2018-05-06 19:08:34 +03:00

44 lines
853 B
Go

package golangci
import (
"regexp"
"github.com/kisielk/errcheck/internal/errcheck"
"golang.org/x/tools/go/loader"
)
type Issue errcheck.UncheckedError
func Run(program *loader.Program, checkBlank, checkAsserts bool) ([]Issue, error) {
checker := errcheck.NewChecker()
checker.Blank = checkBlank
checker.Asserts = checkAsserts
checker.Ignore = map[string]*regexp.Regexp{
"fmt": regexp.MustCompile(".*"),
}
if err := checker.CheckProgram(program); err != nil {
if e, ok := err.(*errcheck.UncheckedErrors); ok {
return makeIssues(e), nil
}
if err == errcheck.ErrNoGoFiles {
return nil, nil
}
return nil, err
}
// no issues
return nil, nil
}
func makeIssues(e *errcheck.UncheckedErrors) []Issue {
var ret []Issue
for _, uncheckedError := range e.Errors {
ret = append(ret, Issue(uncheckedError))
}
return ret
}