From 2551fffd2c06cf0655ebbbd11d9b1e70a5b2e9cb Mon Sep 17 00:00:00 2001 From: go101 Date: Thu, 16 Nov 2023 15:34:32 +0000 Subject: [PATCH] slices: improve Insert panic message for index out of range The panic message of the current implementation for index out of range is not ideal. This PR tries to improve it. Fixes #63913 and #64152 Change-Id: Ibcf6c9c0f555c8b8bf46b7d6f20f0ccc5698acd4 GitHub-Last-Rev: 1bbec230f4b0ec547d21c8d38dd46007bd282855 GitHub-Pull-Request: golang/go#64163 Reviewed-on: https://go-review.googlesource.com/c/go/+/542455 Reviewed-by: David Chase Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall Auto-Submit: Keith Randall --- src/slices/slices.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/slices/slices.go b/src/slices/slices.go index 38b0fc14ad..b0f048a656 100644 --- a/src/slices/slices.go +++ b/src/slices/slices.go @@ -130,14 +130,13 @@ func ContainsFunc[S ~[]E, E any](s S, f func(E) bool) bool { // Insert panics if i is out of range. // This function is O(len(s) + len(v)). func Insert[S ~[]E, E any](s S, i int, v ...E) S { - n := len(s) + _ = s[i:] // bounds check + m := len(v) if m == 0 { - // Panic if i is not in the range [0:n] inclusive. - // See issue 63913. - _ = s[:n:n][i:] return s } + n := len(s) if i == n { return append(s, v...) } -- 2.50.0