diff src/testdir/test_vim9_disassemble.vim @ 26352:f209f28ad898 v8.2.3707

patch 8.2.3707: Vim9: constant expression of elseif not recognized Commit: https://github.com/vim/vim/commit/90770b746ea2e72954c536d8acf41d241ca2f37e Author: Bram Moolenaar <Bram@vim.org> Date: Tue Nov 30 20:57:38 2021 +0000 patch 8.2.3707: Vim9: constant expression of elseif not recognized Problem: Vim9: constant expression of elseif not recognized. Solution: Set instruction count before generating the expression.
author Bram Moolenaar <Bram@vim.org>
date Tue, 30 Nov 2021 22:00:04 +0100
parents dd4e86558836
children a3a0885d9dd8
line wrap: on
line diff
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -2296,6 +2296,38 @@ def Test_debugged()
         res)
 enddef
 
+def s:ElseifConstant()
+  if g:value
+    echo "one"
+  elseif true
+    echo "true"
+  elseif false
+    echo "false"
+  endif
+enddef
+
+def Test_debug_elseif_constant()
+  var res = execute('disass s:ElseifConstant')
+  assert_match('<SNR>\d*_ElseifConstant\_s*' ..
+          'if g:value\_s*' ..
+          '0 LOADG g:value\_s*' ..
+          '1 COND2BOOL\_s*' ..
+          '2 JUMP_IF_FALSE -> 6\_s*' ..
+          'echo "one"\_s*' ..
+          '3 PUSHS "one"\_s*' ..
+          '4 ECHO 1\_s*' ..
+          'elseif true\_s*' ..
+          '5 JUMP -> 8\_s*' ..
+          'echo "true"\_s*' ..
+          '6 PUSHS "true"\_s*' ..
+          '7 ECHO 1\_s*' ..
+          'elseif false\_s*' ..
+          'echo "false"\_s*' ..
+          'endif\_s*' ..
+          '\d RETURN void*',
+        res)
+enddef
+
 def s:DebugElseif()
   var b = false
   if b