@@ -17,17 +17,16 @@ package initializer
1717
1818import (
1919 "fmt"
20- "reflect"
2120
2221 "golang.org/x/tools/go/analysis"
2322 "k8s.io/apimachinery/pkg/util/validation/field"
2423)
2524
2625// InitializerFunc is a function that initializes an Analyzer.
27- type InitializerFunc [T any ] func (T ) (* analysis.Analyzer , error )
26+ type InitializerFunc [T any ] func (* T ) (* analysis.Analyzer , error )
2827
2928// ValidateFunc is a function that validates the configuration for an Analyzer.
30- type ValidateFunc [T any ] func (T , * field.Path ) field.ErrorList
29+ type ValidateFunc [T any ] func (* T , * field.Path ) field.ErrorList
3130
3231// AnalyzerInitializer is used to initialize analyzers.
3332type AnalyzerInitializer interface {
@@ -60,7 +59,7 @@ type ConfigurableAnalyzerInitializer interface {
6059func NewInitializer (name string , analyzer * analysis.Analyzer , isDefault bool ) AnalyzerInitializer {
6160 return initializer [any ]{
6261 name : name ,
63- initFunc : func (any ) (* analysis.Analyzer , error ) { return analyzer , nil },
62+ initFunc : func (* any ) (* analysis.Analyzer , error ) { return analyzer , nil },
6463 isDefault : isDefault ,
6564 }
6665}
@@ -91,7 +90,7 @@ func (i initializer[T]) Name() string {
9190
9291// Init returns a newly initializr analyzer.
9392func (i initializer [T ]) Init (_ any ) (* analysis.Analyzer , error ) {
94- var cfg T
93+ var cfg * T
9594
9695 return i .initFunc (cfg )
9796}
@@ -109,7 +108,7 @@ type configurableInitializer[T any] struct {
109108
110109// Init returns a newly initialized analyzer.
111110func (i configurableInitializer [T ]) Init (cfg any ) (* analysis.Analyzer , error ) {
112- cfgT , ok := cfg .(T )
111+ cfgT , ok := cfg .(* T )
113112 if ! ok {
114113 return nil , fmt .Errorf ("failed to initialize analyzer: %w" , NewIncorrectTypeError (cfg ))
115114 }
@@ -119,12 +118,12 @@ func (i configurableInitializer[T]) Init(cfg any) (*analysis.Analyzer, error) {
119118
120119// ConfigType returns the type of the config for the linter.
121120func (i configurableInitializer [T ]) ConfigType () any {
122- return reflect . New ( reflect . TypeOf ( * new (T )). Elem ()). Interface ( )
121+ return new (T )
123122}
124123
125124// ValidateConfig validates the configuration for the initializer.
126125func (i configurableInitializer [T ]) ValidateConfig (cfg any , fld * field.Path ) field.ErrorList {
127- cfgT , ok := cfg .(T )
126+ cfgT , ok := cfg .(* T )
128127 if ! ok {
129128 return field.ErrorList {field .InternalError (fld , NewIncorrectTypeError (cfg ))}
130129 }
0 commit comments