patch 8.2.0496: Vim9: disassemble test fails
Problem: Vim9: disassemble test fails.
Solution: Separate test cases with recognized constant expressions.
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 6260295..95cd289 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -728,7 +728,6 @@
\ ['111 =~ 222', 'COMPARENR =\~'],
\ ['111 !~ 222', 'COMPARENR !\~'],
\
- \ ['"xx" == "yy"', 'COMPARESTRING =='],
\ ['"xx" != "yy"', 'COMPARESTRING !='],
\ ['"xx" > "yy"', 'COMPARESTRING >'],
\ ['"xx" < "yy"', 'COMPARESTRING <'],
@@ -806,6 +805,47 @@
delete('Xdisassemble')
enddef
+def Test_disassemble_compare_const()
+ let cases = [
+ \ ['"xx" == "yy"', false],
+ \ ['"aa" == "aa"', true],
+ \ ]
+
+ let nr = 1
+ for case in cases
+ writefile(['def TestCase' .. nr .. '()',
+ \ ' if ' .. case[0],
+ \ ' echo 42'
+ \ ' endif',
+ \ 'enddef'], 'Xdisassemble')
+ source Xdisassemble
+ let instr = execute('disassemble TestCase' .. nr)
+ if case[1]
+ " condition true, "echo 42" executed
+ assert_match('TestCase' .. nr .. '.*'
+ \ .. 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '.*'
+ \ .. '\d PUSHNR 42.*'
+ \ .. '\d ECHO 1.*'
+ \ .. '\d PUSHNR 0.*'
+ \ .. '\d RETURN.*'
+ \, instr)
+ else
+ " condition false, function just returns
+ assert_match('TestCase' .. nr .. '.*'
+ \ .. 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '[ \n]*'
+ \ .. 'echo 42[ \n]*'
+ \ .. 'endif[ \n]*'
+ \ .. '\s*\d PUSHNR 0.*'
+ \ .. '\d RETURN.*'
+ \, instr)
+ endif
+
+ nr += 1
+ endfor
+
+ delete('Xdisassemble')
+enddef
+
def s:Execute()
execute 'help vim9.txt'
let cmd = 'help vim9.txt'
diff --git a/src/version.c b/src/version.c
index 454dbd4..8973af7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 496,
+/**/
495,
/**/
494,