patch 9.1.1401: list not materialized in prop_list()
Problem: list not materialized in prop_list()
(Nickwiz)
Solution: materialize list before accessing it
fixes: #17298
closes: #17349
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index d26efa9..bcf83ca 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -4757,4 +4757,29 @@
call StopVimInTerminal(buf)
endfunc
+func Test_textprop_materialize_list()
+ let ids = range(3)
+ call assert_equal([], prop_list(1, #{ids: ids}))
+
+ let ids = range(3) + []
+ call assert_equal([], prop_list(1, #{ids: ids}))
+
+ let ids = range(3)
+ let ids[0] = ids[0]
+ call assert_equal([], prop_list(1, #{ids: ids}))
+
+ let ids = range(3)
+ call assert_equal([], prop_list(1, #{ids: ids}))
+
+ call assert_equal([], prop_list(1, #{ids: range(3) + [] }))
+
+ let ids = range(3)
+ call assert_equal([], prop_list(1, #{ids: ids}))
+
+ let ids = range(0, 3)
+ call assert_equal([], prop_list(1, #{ids: ids}))
+
+ call assert_equal([], prop_list(1, #{ids: 3->range()}))
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab