github.com/nozzle/golangci-lint@v1.49.0-nz3/pkg/golinters/errorlint.go (about)

     1  package golinters
     2  
     3  import (
     4  	"github.com/polyfloyd/go-errorlint/errorlint"
     5  	"golang.org/x/tools/go/analysis"
     6  
     7  	"github.com/golangci/golangci-lint/pkg/config"
     8  	"github.com/golangci/golangci-lint/pkg/golinters/goanalysis"
     9  )
    10  
    11  func NewErrorLint(cfg *config.ErrorLintSettings) *goanalysis.Linter {
    12  	a := errorlint.NewAnalyzer()
    13  
    14  	cfgMap := map[string]map[string]interface{}{}
    15  
    16  	if cfg != nil {
    17  		cfgMap[a.Name] = map[string]interface{}{
    18  			"errorf":     cfg.Errorf,
    19  			"asserts":    cfg.Asserts,
    20  			"comparison": cfg.Comparison,
    21  		}
    22  	}
    23  
    24  	return goanalysis.NewLinter(
    25  		a.Name,
    26  		"errorlint is a linter for that can be used to find code "+
    27  			"that will cause problems with the error wrapping scheme introduced in Go 1.13.",
    28  		[]*analysis.Analyzer{a},
    29  		cfgMap,
    30  	).WithLoadMode(goanalysis.LoadModeTypesInfo)
    31  }