Mercurial > vim
diff src/testdir/test_vim9_disassemble.vim @ 22860:53acb89ec9f2 v8.2.1977
patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Commit: https://github.com/vim/vim/commit/ea2d407f9c144bb634c59017944e4930ed7f80a2
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Nov 12 12:08:51 2020 +0100
patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Problem: Vim9: error for using a string in a condition is confusing.
Solution: Give a more specific error. Also adjust the compile time type
checking for || and &&.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 12 Nov 2020 12:15:04 +0100 |
parents | f2fbbb72ff28 |
children | edfbb06cd0ee |
line wrap: on
line diff
--- a/src/testdir/test_vim9_disassemble.vim +++ b/src/testdir/test_vim9_disassemble.vim @@ -707,6 +707,7 @@ def Test_disassemble_const_expr() 'if has("gui_running")\_s*' .. '\d PUSHS "gui_running"\_s*' .. '\d BCALL has(argc 1)\_s*' .. + '\d COND2BOOL\_s*' .. '\d JUMP_IF_FALSE -> \d\_s*' .. ' echo "yes"\_s*' .. '\d PUSHS "yes"\_s*' .. @@ -760,14 +761,15 @@ def Test_disassemble_return_in_if() assert_match('ReturnInIf\_s*' .. 'if g:cond\_s*' .. '0 LOADG g:cond\_s*' .. - '1 JUMP_IF_FALSE -> 4\_s*' .. + '1 COND2BOOL\_s*' .. + '2 JUMP_IF_FALSE -> 5\_s*' .. 'return "yes"\_s*' .. - '2 PUSHS "yes"\_s*' .. - '3 RETURN\_s*' .. + '3 PUSHS "yes"\_s*' .. + '4 RETURN\_s*' .. 'else\_s*' .. ' return "no"\_s*' .. - '4 PUSHS "no"\_s*' .. - '5 RETURN$', + '5 PUSHS "no"\_s*' .. + '6 RETURN$', instr) enddef @@ -1357,16 +1359,17 @@ def Test_disassemble_return_bool() assert_match('ReturnBool\_s*' .. 'var name: bool = 1 && 0 || 1\_s*' .. '0 PUSHNR 1\_s*' .. - '1 JUMP_IF_COND_FALSE -> 3\_s*' .. - '2 PUSHNR 0\_s*' .. - '3 COND2BOOL\_s*' .. - '4 JUMP_IF_COND_TRUE -> 6\_s*' .. - '5 PUSHNR 1\_s*' .. - '6 2BOOL (!!val)\_s*' .. + '1 2BOOL (!!val)\_s*' .. + '2 JUMP_IF_COND_FALSE -> 5\_s*' .. + '3 PUSHNR 0\_s*' .. + '4 2BOOL (!!val)\_s*' .. + '5 JUMP_IF_COND_TRUE -> 8\_s*' .. + '6 PUSHNR 1\_s*' .. + '7 2BOOL (!!val)\_s*' .. '\d STORE $0\_s*' .. 'return name\_s*' .. - '\d LOAD $0\_s*' .. - '\d RETURN', + '\d\+ LOAD $0\_s*' .. + '\d\+ RETURN', instr) assert_equal(true, InvertBool()) enddef