github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/golinters/nilnil.go (about)

     1  package golinters
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/Antonboom/nilnil/pkg/analyzer"
     7  	"golang.org/x/tools/go/analysis"
     8  
     9  	"github.com/chenfeining/golangci-lint/pkg/config"
    10  	"github.com/chenfeining/golangci-lint/pkg/golinters/goanalysis"
    11  )
    12  
    13  func NewNilNil(cfg *config.NilNilSettings) *goanalysis.Linter {
    14  	a := analyzer.New()
    15  
    16  	cfgMap := make(map[string]map[string]any)
    17  	if cfg != nil && len(cfg.CheckedTypes) != 0 {
    18  		cfgMap[a.Name] = map[string]any{
    19  			"checked-types": strings.Join(cfg.CheckedTypes, ","),
    20  		}
    21  	}
    22  
    23  	return goanalysis.NewLinter(
    24  		a.Name,
    25  		a.Doc,
    26  		[]*analysis.Analyzer{a},
    27  		cfgMap,
    28  	).
    29  		WithLoadMode(goanalysis.LoadModeTypesInfo)
    30  }