diff options
Diffstat (limited to 'internal/lsp/analysis')
5 files changed, 12 insertions, 9 deletions
diff --git a/internal/lsp/analysis/noresultvalues/noresultvalues.go b/internal/lsp/analysis/noresultvalues/noresultvalues.go index 0e6b26f8b..b9f21f313 100644 --- a/internal/lsp/analysis/noresultvalues/noresultvalues.go +++ b/internal/lsp/analysis/noresultvalues/noresultvalues.go @@ -10,6 +10,7 @@ import ( "bytes" "go/ast" "go/format" + "strings" "golang.org/x/tools/go/analysis" "golang.org/x/tools/go/analysis/passes/inspect" @@ -17,10 +18,11 @@ import ( "golang.org/x/tools/internal/analysisinternal" ) -const Doc = `suggested fixes for "no result values expected" +const Doc = `suggested fixes for unexpected return values This checker provides suggested fixes for type errors of the -type "no result values expected". For example: +type "no result values expected" or "too many return values". +For example: func z() { return nil } will turn into func z() { return } @@ -83,5 +85,6 @@ func run(pass *analysis.Pass) (interface{}, error) { } func FixesError(msg string) bool { - return msg == "no result values expected" + return msg == "no result values expected" || + strings.HasPrefix(msg, "too many return values") && strings.Contains(msg, "want ()") } diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go index 30265a42f..3daa7f7c7 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go +++ b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go @@ -4,6 +4,6 @@ package noresultvalues -func x() { return nil } // want "no result values expected" +func x() { return nil } // want `no result values expected|too many return values` -func y() { return nil, "hello" } // want "no result values expected" +func y() { return nil, "hello" } // want `no result values expected|too many return values` diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden index 6b29cefa3..5e93aa413 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden +++ b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden @@ -4,6 +4,6 @@ package noresultvalues -func x() { return } // want "no result values expected" +func x() { return } // want `no result values expected|too many return values` -func y() { return } // want "no result values expected" +func y() { return } // want `no result values expected|too many return values` diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go index d1b298010..f8aa43665 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go +++ b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go @@ -2,5 +2,5 @@ package noresult func hello[T any]() { var z T - return z // want "no result values expected" + return z // want `no result values expected|too many return values` } diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden index c5f56a927..963e3f4e1 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden +++ b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden @@ -2,5 +2,5 @@ package noresult func hello[T any]() { var z T - return // want "no result values expected" + return // want `no result values expected|too many return values` } |