patch 8.2.0492: Vim9: some error messages not tested
Problem: Vim9: some error messages not tested.
Solution: Add more tests. Remove dead code. Fix uncovered bugs.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 06c200d..8f27c6d 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -106,6 +106,8 @@
call CheckDefFailure("let x = 1||2", msg)
call CheckDefFailure("let x = 1 ||2", msg)
call CheckDefFailure("let x = 1|| 2", msg)
+
+ call CheckDefFailure("let x = 1 || xxx", 'E1001:')
endfunc
" test &&
@@ -877,7 +879,7 @@
call CheckDefFailure("let x = 123->{x -> x + 5) }", "E451:")
call CheckDefFailure("let x = ¬exist", 'E113:')
- call CheckDefExecFailure("&grepprg = [343]", 'E1051:')
+ call CheckDefFailure("&grepprg = [343]", 'E1013:')
call CheckDefExecFailure("echo s:doesnt_exist", 'E121:')
call CheckDefExecFailure("echo g:doesnt_exist", 'E121:')
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 19df73c..0c0bf83 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -31,6 +31,8 @@
let s:appendToMe = 'xxx'
let s:addToMe = 111
let g:existing = 'yes'
+let g:inc_counter = 1
+let $SOME_ENV_VAR = 'some'
def Test_assignment()
let bool1: bool = true
@@ -94,6 +96,27 @@
assert_equal(333, s:addToMe)
s:newVar = 'new'
assert_equal('new', s:newVar)
+
+ set ts=7
+ &ts += 1
+ assert_equal(8, &ts)
+ call CheckDefFailure(['¬ex += 3'], 'E113:')
+ call CheckDefFailure(['&ts ..= "xxx"'], 'E1019:')
+ call CheckDefFailure(['&path += 3'], 'E1013:')
+
+ g:inc_counter += 1
+ assert_equal(2, g:inc_counter)
+
+ $SOME_ENV_VAR ..= 'more'
+ assert_equal('somemore', $SOME_ENV_VAR)
+ call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1013:')
+ call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1013:')
+
+ @a = 'areg'
+ @a ..= 'add'
+ assert_equal('aregadd', @a)
+ call CheckDefFailure(['@a += "more"'], 'E1013:')
+ call CheckDefFailure(['@a += 123'], 'E1013:')
enddef
func Test_assignment_failure()