From cbffbf34389ba3129a0c444c77d31dec6b060d70 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sat, 29 Feb 2020 22:44:02 +0300 Subject: [PATCH] array: reverse empty arrays correctly --- vlib/builtin/array.v | 3 +++ vlib/builtin/array_test.v | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/vlib/builtin/array.v b/vlib/builtin/array.v index 67c325109c..ab8d3d592b 100644 --- a/vlib/builtin/array.v +++ b/vlib/builtin/array.v @@ -328,6 +328,9 @@ pub fn (a mut array) push_many(val voidptr, size int) { // array.reverse returns a new array with the elements of // the original array in reverse order. pub fn (a array) reverse() array { + if a.len < 2 { + return a + } arr := array{ len: a.len cap: a.cap diff --git a/vlib/builtin/array_test.v b/vlib/builtin/array_test.v index a851a7a9df..3057b7d4dc 100644 --- a/vlib/builtin/array_test.v +++ b/vlib/builtin/array_test.v @@ -266,6 +266,10 @@ fn test_reverse() { for i, _ in d { assert d[i] == b[b.len - i - 1] } + + e := []int + f := e.reverse() + assert f.len == 0 } const (