aboutsummaryrefslogtreecommitdiff
path: root/test/old/testdir/test_let.vim
diff options
context:
space:
mode:
Diffstat (limited to 'test/old/testdir/test_let.vim')
-rw-r--r--test/old/testdir/test_let.vim18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/old/testdir/test_let.vim b/test/old/testdir/test_let.vim
index fe7633cf11..6fbf305624 100644
--- a/test/old/testdir/test_let.vim
+++ b/test/old/testdir/test_let.vim
@@ -85,6 +85,24 @@ func Test_let()
let l:Test_Local_Var = {'k' : 5}
call assert_match("\nl:Test_Local_Var {'k': 5}", execute('let l:'))
call assert_match("v:errors []", execute('let v:'))
+
+ " Test for assigning multiple list items
+ let l = [1, 2, 3]
+ let [l[0], l[1]] = [10, 20]
+ call assert_equal([10, 20, 3], l)
+
+ " Test for errors in conditional expression
+ call assert_fails('let val = [] ? 1 : 2', 'E745:')
+ call assert_fails('let val = 1 ? 5+ : 6', 'E121:')
+ call assert_fails('let val = 1 ? 0 : 5+', 'E15:')
+ call assert_false(exists('val'))
+
+ " Test for errors in logical operators
+ let @a = 'if [] || 0 | let val = 2 | endif'
+ call assert_fails('exe @a', 'E745:')
+ call assert_fails('call feedkeys(":let val = 0 || []\<cr>", "xt")', 'E745:')
+ call assert_fails('exe "let val = [] && 5"', 'E745:')
+ call assert_fails('exe "let val = 6 && []"', 'E745:')
endfunc
func s:set_arg1(a) abort