Mercurial > vim
diff src/testdir/test_vim9_script.vim @ 19332:d6e8a9e80be4 v8.2.0224
patch 8.2.0224: compiling :elseif not tested yet
Commit: https://github.com/vim/vim/commit/158906cffc62bc82bc38198c2104967f2a70542c
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 6 20:39:45 2020 +0100
patch 8.2.0224: compiling :elseif not tested yet
Problem: compiling :elseif not tested yet.
Solution: Add test for :elseif. Fix generating jumps.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 06 Feb 2020 20:45:03 +0100 |
parents | 9c8b803fe598 |
children | 6b1a59e71f85 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -459,34 +459,22 @@ def do_something(): EOF endfunc -def HasEval() - if has('eval') - echo 'yes' +def IfElse(what: number): string + let res = '' + if what == 1 + res = "one" + elseif what == 2 + res = "two" else - echo 'no' + res = "three" endif + return res enddef -def HasNothing() - if has('nothing') - echo 'yes' - else - echo 'no' - endif -enddef - -def Test_compile_const_expr() - assert_equal("\nyes", execute('call HasEval()')) - let instr = execute('disassemble HasEval') - assert_match('PUSHS "yes"', instr) - assert_notmatch('PUSHS "no"', instr) - assert_notmatch('JUMP', instr) - - assert_equal("\nno", execute('call HasNothing()')) - instr = execute('disassemble HasNothing') - assert_notmatch('PUSHS "yes"', instr) - assert_match('PUSHS "no"', instr) - assert_notmatch('JUMP', instr) +def Test_if_elseif_else() + assert_equal('one', IfElse(1)) + assert_equal('two', IfElse(2)) + assert_equal('three', IfElse(3)) enddef