diff options
author | Ricardo N Feliciano <FelicianoTech@gmail.com> | 2018-09-22 14:58:46 -0400 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-09-22 20:58:46 +0200 |
commit | cae07ce84b3bd4a33fd18b5109a1a3c3dce2191c (patch) | |
tree | a3f0ba8983d882fbcad9aee8b19f37ee9e78d3a6 | |
parent | 4f9c109dc5431553e5dbf98e0ed37487c12e8d16 (diff) |
tpl/collections: Allow first function to return an empty slice
Fixes #5235
-rw-r--r-- | docs/content/en/functions/first.md | 2 | ||||
-rw-r--r-- | tpl/collections/collections.go | 4 | ||||
-rw-r--r-- | tpl/collections/collections_test.go | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/docs/content/en/functions/first.md b/docs/content/en/functions/first.md index 464dfa671..e4c0a848d 100644 --- a/docs/content/en/functions/first.md +++ b/docs/content/en/functions/first.md @@ -25,3 +25,5 @@ aliases: [] {{ .Render "summary" }} {{ end }} ``` + +*Note: Exclusive to `first`, LIMIT can be '0' to return an empty array.* diff --git a/tpl/collections/collections.go b/tpl/collections/collections.go index 4400a26b2..491421631 100644 --- a/tpl/collections/collections.go +++ b/tpl/collections/collections.go @@ -215,8 +215,8 @@ func (ns *Namespace) First(limit interface{}, seq interface{}) (interface{}, err return nil, err } - if limitv < 1 { - return nil, errors.New("can't return negative/empty count of items from sequence") + if limitv < 0 { + return nil, errors.New("can't return negative count of items from sequence") } seqv := reflect.ValueOf(seq) diff --git a/tpl/collections/collections_test.go b/tpl/collections/collections_test.go index c2d4cacbf..7b15151d2 100644 --- a/tpl/collections/collections_test.go +++ b/tpl/collections/collections_test.go @@ -256,6 +256,7 @@ func TestFirst(t *testing.T) { {int64(2), []int{100, 200, 300}, []int{100, 200}}, {100, []int{100, 200}, []int{100, 200}}, {"1", []int{100, 200, 300}, []int{100}}, + {0, []string{"h", "u", "g", "o"}, []string{}}, {int64(-1), []int{100, 200, 300}, false}, {"noint", []int{100, 200, 300}, false}, {1, nil, false}, |