From 6628b7ebff1cfcb476ce96852a7d2b095872826c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 7 Feb 2021 16:33:35 +0100 Subject: patch 8.2.2483: Vim9: type error for misformed expression Problem: Vim9: type error for misformed expression. Solution: Check for end of command before checking type. (closes #7795) --- src/testdir/test_vim9_script.vim | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/testdir/test_vim9_script.vim') diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index d25bb47aa..72e12740a 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -1743,6 +1743,21 @@ def Test_if_elseif_else_fails() CheckDefFailure(['endif'], 'E580:') CheckDefFailure(['if g:abool', 'elseif xxx'], 'E1001:') CheckDefFailure(['if true', 'echo 1'], 'E171:') + + var lines =<< trim END + var s = '' + if s = '' + endif + END + CheckDefFailure(lines, 'E488:') + + lines =<< trim END + var s = '' + if s == '' + elseif s = '' + endif + END + CheckDefFailure(lines, 'E488:') enddef let g:bool_true = v:true @@ -2200,6 +2215,13 @@ def Test_while_loop_fails() CheckDefFailure(['break'], 'E587:') CheckDefFailure(['if true', 'break'], 'E587:') CheckDefFailure(['while 1', 'echo 3'], 'E170:') + + var lines =<< trim END + var s = '' + while s = '' + endwhile + END + CheckDefFailure(lines, 'E488:') enddef def Test_interrupt_loop() -- cgit v1.2.1