@@ -294,9 +294,7 @@ func GetAllLintersForPreset(p string) []Linter {
294294 return ret
295295}
296296
297- func getEnabledLintersSet (cfg * config.Config ) map [string ]Linter { // nolint:gocyclo
298- lcfg := & cfg .Linters
299-
297+ func getEnabledLintersSet (lcfg * config.Linters , enabledByDefaultLinters []Linter ) map [string ]Linter { // nolint:gocyclo
300298 resultLintersSet := map [string ]Linter {}
301299 switch {
302300 case len (lcfg .Presets ) != 0 :
@@ -306,7 +304,7 @@ func getEnabledLintersSet(cfg *config.Config) map[string]Linter { // nolint:gocy
306304 case lcfg .DisableAll :
307305 break
308306 default :
309- resultLintersSet = lintersToMap (getAllEnabledByDefaultLinters () )
307+ resultLintersSet = lintersToMap (enabledByDefaultLinters )
310308 }
311309
312310 // --presets can only add linters to default set
@@ -332,12 +330,24 @@ func getEnabledLintersSet(cfg *config.Config) map[string]Linter { // nolint:gocy
332330 }
333331
334332 for _ , name := range lcfg .Disable {
333+ if name == "megacheck" {
334+ for _ , ln := range getAllMegacheckSubLinterNames () {
335+ delete (resultLintersSet , ln )
336+ }
337+ }
335338 delete (resultLintersSet , name )
336339 }
337340
338341 return resultLintersSet
339342}
340343
344+ func getAllMegacheckSubLinterNames () []string {
345+ unusedName := golinters.Megacheck {UnusedEnabled : true }.Name ()
346+ gosimpleName := golinters.Megacheck {GosimpleEnabled : true }.Name ()
347+ staticcheckName := golinters.Megacheck {StaticcheckEnabled : true }.Name ()
348+ return []string {unusedName , gosimpleName , staticcheckName }
349+ }
350+
341351func optimizeLintersSet (linters map [string ]Linter ) {
342352 unusedName := golinters.Megacheck {UnusedEnabled : true }.Name ()
343353 gosimpleName := golinters.Megacheck {GosimpleEnabled : true }.Name ()
@@ -375,7 +385,7 @@ func GetEnabledLinters(cfg *config.Config) ([]Linter, error) {
375385 return nil , err
376386 }
377387
378- resultLintersSet := getEnabledLintersSet (cfg )
388+ resultLintersSet := getEnabledLintersSet (& cfg . Linters , getAllEnabledByDefaultLinters () )
379389 optimizeLintersSet (resultLintersSet )
380390
381391 var resultLinters []Linter
0 commit comments