From 73679abc3ef9d034589346a13cd46835f3528086 Mon Sep 17 00:00:00 2001 From: "Maciej \"Iwan\" Iwanowski" Date: Fri, 6 Nov 2020 20:57:24 +0100 Subject: [PATCH] Unknown linter breaks //nolint --- pkg/result/processors/nolint.go | 8 ++------ test/testdata/nolint_apply_to_unknown.go | 7 +++++++ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 test/testdata/nolint_apply_to_unknown.go diff --git a/pkg/result/processors/nolint.go b/pkg/result/processors/nolint.go index cda1017849d9..9b292eda32ff 100644 --- a/pkg/result/processors/nolint.go +++ b/pkg/result/processors/nolint.go @@ -250,14 +250,14 @@ func (p *Nolint) extractInlineRangeFromComment(text string, g ast.Node, fset *to var linters []string text = strings.Split(text, "//")[0] // allow another comment after this comment linterItems := strings.Split(strings.TrimPrefix(text, "nolint:"), ",") - var gotUnknownLinters bool for _, linter := range linterItems { linterName := strings.ToLower(strings.TrimSpace(linter)) lcs := p.dbManager.GetLinterConfigs(linterName) if lcs == nil { p.unknownLintersSet[linterName] = true - gotUnknownLinters = true + linters = append(linters, linterName) + nolintDebugf("unknown linter %s on line %d", linterName, fset.Position(g.Pos()).Line) continue } @@ -266,10 +266,6 @@ func (p *Nolint) extractInlineRangeFromComment(text string, g ast.Node, fset *to } } - if gotUnknownLinters { - return buildRange(nil) // ignore all linters to not annoy user - } - nolintDebugf("%d: linters are %s", fset.Position(g.Pos()).Line, linters) return buildRange(linters) } diff --git a/test/testdata/nolint_apply_to_unknown.go b/test/testdata/nolint_apply_to_unknown.go new file mode 100644 index 000000000000..9b832e38b756 --- /dev/null +++ b/test/testdata/nolint_apply_to_unknown.go @@ -0,0 +1,7 @@ +//args: -Enolintlint -Egofmt +//config: linters-settings.nolintlint.allow-unused=true +package testdata + +func bar() { // ERROR level=warning msg="[runner/nolint] Found unknown linters in //nolint directives: foobar" + _ = 0 //nolint: foobar // ERROR "File is not `gofmt`-ed with `-s`" +}