@@ -242,13 +242,7 @@ func (s *GocriticSettings) Validate(log logutils.Log) error {
242
242
return errors .Wrap (err , "validate disabled checks" )
243
243
}
244
244
245
- for checkName := range s .SettingsPerCheck {
246
- if ! s .IsCheckEnabled (checkName ) {
247
- log .Warnf ("Gocritic settings were provided for not enabled check %q" , checkName )
248
- }
249
- }
250
-
251
- if err := s .validateCheckerNames (); err != nil {
245
+ if err := s .validateCheckerNames (log ); err != nil {
252
246
return errors .Wrap (err , "validation failed" )
253
247
}
254
248
@@ -272,6 +266,7 @@ func sprintStrings(ss []string) string {
272
266
return fmt .Sprint (ss )
273
267
}
274
268
269
+ // getAllCheckerNames returns a map containing all checker names supported by gocritic.
275
270
func getAllCheckerNames () map [string ]bool {
276
271
allCheckerNames := map [string ]bool {}
277
272
for _ , checker := range allGocriticCheckers {
@@ -311,7 +306,7 @@ func getDefaultDisabledGocriticCheckersNames() []string {
311
306
return disabled
312
307
}
313
308
314
- func (s * GocriticSettings ) validateCheckerNames () error {
309
+ func (s * GocriticSettings ) validateCheckerNames (log logutils. Log ) error {
315
310
allowedNames := getAllCheckerNames ()
316
311
317
312
for _ , name := range s .EnabledChecks {
@@ -328,6 +323,16 @@ func (s *GocriticSettings) validateCheckerNames() error {
328
323
}
329
324
}
330
325
326
+ for checkName := range s .SettingsPerCheck {
327
+ if _ , ok := allowedNames [checkName ]; ! ok {
328
+ return fmt .Errorf ("invalid setting, checker %s doesn't exist, all existing checkers: %s" ,
329
+ checkName , sprintAllowedCheckerNames (allowedNames ))
330
+ }
331
+ if ! s .IsCheckEnabled (checkName ) {
332
+ log .Warnf ("Gocritic settings were provided for not enabled check %q" , checkName )
333
+ }
334
+ }
335
+
331
336
return nil
332
337
}
333
338
0 commit comments