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