patch 8.2.1176: Vim9: not enough type checking in Vim9 script
Problem: Vim9: not enough type checking in Vim9 script.
Solution: Use same type checking as in a :def function.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 1f4bde9..ef56a67 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -557,7 +557,7 @@
enddef
def Test_expr4_vimscript()
- " only checks line continuation
+ " check line continuation
let lines =<< trim END
vim9script
let var = 0
@@ -599,6 +599,25 @@
assert_equal(1, var)
END
CheckScriptSuccess(lines)
+
+ " spot check mismatching types
+ lines =<< trim END
+ vim9script
+ echo '' == 0
+ END
+ CheckScriptFailure(lines, 'E1072:')
+
+ lines =<< trim END
+ vim9script
+ echo v:true > v:false
+ END
+ CheckScriptFailure(lines, 'Cannot compare bool with bool')
+
+ lines =<< trim END
+ vim9script
+ echo 123 is 123
+ END
+ CheckScriptFailure(lines, 'Cannot use "is" with number')
enddef
func Test_expr4_fails()