diff --git a/lang/funcs/collection.go b/lang/funcs/collection.go index eac17cc10..bcccc1fd2 100644 --- a/lang/funcs/collection.go +++ b/lang/funcs/collection.go @@ -392,6 +392,10 @@ var ChunklistFunc = function.New(&function.Spec{ return cty.UnknownVal(retType), nil } + if listVal.LengthInt() == 0 { + return cty.ListValEmpty(listVal.Type()), nil + } + var size int err = gocty.FromCtyValue(args[1], &size) if err != nil { diff --git a/lang/funcs/collection_test.go b/lang/funcs/collection_test.go index 88dd306f7..71a805e7b 100644 --- a/lang/funcs/collection_test.go +++ b/lang/funcs/collection_test.go @@ -1097,6 +1097,12 @@ func TestChunklist(t *testing.T) { cty.UnknownVal(cty.List(cty.List(cty.String))), false, }, + { + cty.ListValEmpty(cty.String), + cty.NumberIntVal(3), + cty.ListValEmpty(cty.List(cty.String)), + false, + }, } for i, test := range tests {