# HG changeset patch # User Bram Moolenaar # Date 1607262304 -3600 # Node ID b0c88aa0175bdb8bf8d650f6df6e98e259c9e44f # Parent 65d66ab963c20850c4962e883b5b4c09cbe43817 patch 8.2.2099: Vim9: some checks are not tested Commit: https://github.com/vim/vim/commit/918a4249176a8ccec3a34c9c7ef7bf4163676a63 Author: Bram Moolenaar Date: Sun Dec 6 14:37:08 2020 +0100 patch 8.2.2099: Vim9: some checks are not tested Problem: Vim9: some checks are not tested. Solution: Add a few more tests. Give better error messages. diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -188,6 +188,12 @@ func Test_expr1_trinary_fails() call CheckDefExecFailure(["var x = [] ? 'one' : 'two'"], 'E745:', 1) call CheckDefExecFailure(["var x = {} ? 'one' : 'two'"], 'E728:', 1) + call CheckDefExecFailure(["var x = false ? "], 'E1097:', 2) + call CheckDefExecFailure(["var x = false ? 'one' : "], 'E1097:', 2) + + call CheckDefExecFailure(["var x = true ? xxx : 'foo'"], 'E1001:', 1) + call CheckDefExecFailure(["var x = false ? 'foo' : xxx"], 'E1001:', 1) + if has('float') call CheckDefFailure(["var x = 0.1 ? 'one' : 'two'"], 'E805:', 1) endif @@ -346,6 +352,8 @@ def Test_expr2_fails() call CheckDefFailure(["var x = 1 ||2"], msg, 1) call CheckDefFailure(["var x = 1|| 2"], msg, 1) + call CheckDefFailure(["var x = false || "], 'E1097:', 2) + call CheckDefFailure(["var x = 1 || xxx"], 'E1001:', 1) call CheckDefFailure(["var x = [] || false"], 'E1012:', 1) call CheckDefFailure(["if 'yes' || 0", 'echo 0', 'endif'], 'E1012: Type mismatch; expected bool but got string', 1) @@ -579,6 +587,8 @@ def Test_expr4_equal() CheckDefAndScriptSuccess(lines) CheckDefFailure(["var x = 'a' == xxx"], 'E1001:', 1) + CheckDefFailure(["var x = 'a' == "], 'E1097:', 2) + CheckDefExecFailure(['var items: any', 'eval 1', 'eval 2', 'if items == []', 'endif'], 'E691:', 4) enddef @@ -1349,6 +1359,7 @@ def Test_expr6() CheckDefAndScriptSuccess(lines) CheckDefFailure(["var x = 6 * xxx"], 'E1001:', 1) + CheckDefFailure(["var d = 6 * "], 'E1097:', 2) enddef def Test_expr6_vim9script() @@ -1520,6 +1531,7 @@ def Test_expr7t() assert_equal(234, nr) CheckDefFailure(["var x = 123"], 'E1010:', 1) + CheckDefFailure(["var x = "], 'E1097:', 2) CheckDefFailure(["var x = 123"], 'E1068:', 1) CheckDefFailure(["var x = ctx_skip = save_skip == SKIP_YES || const_value ? SKIP_YES : SKIP_NOT; *arg = skipwhite(p + 1); - if (may_get_next_line(p + 1, arg, cctx) == FAIL) + if (may_get_next_line_error(p + 1, arg, cctx) == FAIL) return FAIL; if (compile_expr1(arg, cctx, ppconst) == FAIL) return FAIL;