From d451c22bc7d07b7a2c10ead84eb588d5206257b6 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Tue, 23 Mar 2021 20:03:44 +0100 Subject: [PATCH] feat: skip soft errors. --- pkg/golinters/goanalysis/runner_loadingpackage.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/golinters/goanalysis/runner_loadingpackage.go b/pkg/golinters/goanalysis/runner_loadingpackage.go index 9fa396854ee0..ff1f7ffbd5f3 100644 --- a/pkg/golinters/goanalysis/runner_loadingpackage.go +++ b/pkg/golinters/goanalysis/runner_loadingpackage.go @@ -390,6 +390,7 @@ func (lp *loadingPackage) decUse(canClearTypes bool) { func (lp *loadingPackage) convertError(err error) []packages.Error { var errs []packages.Error + // taken from go/packages switch err := err.(type) { case packages.Error: @@ -416,6 +417,12 @@ func (lp *loadingPackage) convertError(err error) []packages.Error { case types.Error: // from type checker + if err.Soft { + // The meaning of soft is explained in types.Error godoc. + // We skip this kind of error because they are handle by the other linters. + return nil + } + errs = append(errs, packages.Error{ Pos: err.Fset.Position(err.Pos).String(), Msg: err.Msg, @@ -433,6 +440,7 @@ func (lp *loadingPackage) convertError(err error) []packages.Error { // If you see this error message, please file a bug. lp.log.Warnf("Internal error: error %q (%T) without position", err, err) } + return errs }