patch 8.2.0336: Vim9: insufficient test coverage for compiling
Problem: Vim9: insufficient test coverage for compiling.
Solution: Add more tests.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 5ece652..1ec3c6f 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -9,6 +9,12 @@
call delete('Xdef')
endfunc
+func CheckDefFailureMult(lines, error)
+ call writefile(['def! Func()'] + a:lines + ['enddef'], 'Xdef')
+ call assert_fails('so Xdef', a:error, join(a:lines, ' | '))
+ call delete('Xdef')
+endfunc
+
" Check that "line" inside ":def" results in an "error" message when executed.
func CheckDefExecFailure(line, error)
call writefile(['def! Func()', a:line, 'enddef'], 'Xdef')
@@ -805,6 +811,8 @@
call CheckDefExecFailure("let x = +g:ablob", 'E974:')
call CheckDefExecFailure("let x = +g:alist", 'E745:')
call CheckDefExecFailure("let x = +g:adict", 'E728:')
+
+ call CheckDefFailureMult(["let x = ''", "let y = x.memb"], 'E715:')
endfunc
let g:Funcrefs = [function('add')]
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index f1b21d4..ac8bd75 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -53,6 +53,10 @@
let dict4: dict<any> = #{one: 1, two: '2'}
let dict5: dict<blob> = #{one: 0z01, tw: 0z02}
+ if has('channel')
+ let chan1: channel
+ endif
+
g:newvar = 'new'
assert_equal('new', g:newvar)
@@ -91,6 +95,21 @@
call CheckDefFailure(['let var = feedkeys("0")'], 'E1031:')
call CheckDefFailure(['let var: number = feedkeys("0")'], 'expected number but got void')
+
+ call CheckDefFailure(['let var: dict <number>'], 'E1007:')
+ call CheckDefFailure(['let var: dict<number'], 'E1009:')
+
+ call CheckDefFailure(['let var: ally'], 'E1010:')
+ call CheckDefFailure(['let var: bram'], 'E1010:')
+ call CheckDefFailure(['let var: cathy'], 'E1010:')
+ call CheckDefFailure(['let var: dom'], 'E1010:')
+ call CheckDefFailure(['let var: freddy'], 'E1010:')
+ call CheckDefFailure(['let var: john'], 'E1010:')
+ call CheckDefFailure(['let var: larry'], 'E1010:')
+ call CheckDefFailure(['let var: ned'], 'E1010:')
+ call CheckDefFailure(['let var: pam'], 'E1010:')
+ call CheckDefFailure(['let var: sam'], 'E1010:')
+ call CheckDefFailure(['let var: vim'], 'E1010:')
endfunc
func Test_const()
@@ -203,6 +222,12 @@
assert_equal('one,two,three', MyDefVarargs('one', 'two', 'three'))
enddef
+def Test_using_var_as_arg()
+ call writefile(['def Func(x: number)', 'let x = 234', 'enddef'], 'Xdef')
+ call assert_fails('so Xdef', 'E1006:')
+ call delete('Xdef')
+enddef
+
def Test_call_func_defined_later()
call assert_equal('one', DefinedLater('one'))
call assert_fails('call NotDefined("one")', 'E117:')