Change information
Commit message:
go/analysis: avoid panics on multi-valued call arguments
Several analyzers access call arguments before checking the argument count.
A valid Go call such as:
net.Dial(dialArgs())
contains one AST argument even though dialArgs returns two values.
Similar cases occur with sort.Slice, strings.Index, and strings.HasPrefix.
Check the expected argument count before indexing call.Args.
Add regression tests covering hostport, slicessort, stringscut, and stringscutprefix.
Fixes golang/go#80842
Change-Id: I1c2e66544c733d52fd3e566b18b333472c6e7fa3
Files:
- M go/analysis/passes/hostport/hostport.go
- M go/analysis/passes/hostport/testdata/src/a/a.go
- M go/analysis/passes/hostport/testdata/src/a/a.go.golden
- M go/analysis/passes/modernize/sortslice.go
- M go/analysis/passes/modernize/stringscut.go
- M go/analysis/passes/modernize/stringscutprefix.go
- M go/analysis/passes/modernize/testdata/src/slicessort/slicessort.go
- M go/analysis/passes/modernize/testdata/src/slicessort/slicessort.go.golden
- M go/analysis/passes/modernize/testdata/src/stringscut/stringscut.go
- M go/analysis/passes/modernize/testdata/src/stringscut/stringscut.go.golden
- M go/analysis/passes/modernize/testdata/src/stringscutprefix/stringscutprefix.go
- M go/analysis/passes/modernize/testdata/src/stringscutprefix/stringscutprefix.go.golden
Change size: M
Delta: 12 files changed, 108 insertions(+), 6 deletions(-)
Branch: refs/heads/master