diff --git a/internal/lsp/source/completion.go b/internal/lsp/source/completion.go index 712b595ebe..3bf3fed756 100644 --- a/internal/lsp/source/completion.go +++ b/internal/lsp/source/completion.go @@ -1424,7 +1424,9 @@ Nodes: // param w/ further expressions, we expect a single // variadic item. if beyondLastParam || isLastParam && len(node.Args) > numParams { - inf.objType = sig.Params().At(numParams - 1).Type().(*types.Slice).Elem() + if slice, ok := sig.Params().At(numParams - 1).Type().(*types.Slice); ok { + inf.objType = slice.Elem() + } break Nodes } diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go b/internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go index 0ce5aa4802..d115ada455 100644 --- a/internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go +++ b/internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go @@ -22,6 +22,8 @@ func _() { append() //@rank(")", builtinSlice, builtinChan) + var _ []byte = append([]byte(nil), ""...) //@rank(") //") + copy() //@rank(")", builtinSlice, builtinChan) copy(aSlice, aS) //@rank(")", builtinSlice, builtinString) copy(aS, aSlice) //@rank(",", builtinSlice, builtinString) diff --git a/internal/lsp/testdata/lsp/summary.txt.golden b/internal/lsp/testdata/lsp/summary.txt.golden index 739316e565..c5efd04365 100644 --- a/internal/lsp/testdata/lsp/summary.txt.golden +++ b/internal/lsp/testdata/lsp/summary.txt.golden @@ -4,7 +4,7 @@ CompletionSnippetCount = 67 UnimportedCompletionsCount = 11 DeepCompletionsCount = 5 FuzzyCompletionsCount = 8 -RankedCompletionsCount = 85 +RankedCompletionsCount = 86 CaseSensitiveCompletionsCount = 4 DiagnosticsCount = 38 FoldingRangesCount = 2