patch 8.2.4870: Vim9: expression in :substitute is not compiled
Problem: Vim9: expression in :substitute is not compiled.
Solution: Use an INSTR instruction if possible. (closes #10334)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 363d731..e42ee78 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -187,6 +187,26 @@
enddef
+def s:SubstituteExpr()
+ substitute('a', 'b', '\=123', 'g')
+enddef
+
+def Test_disassemble_substitute_expr()
+ var res = execute('disass s:SubstituteExpr')
+ assert_match('<SNR>\d*_SubstituteExpr.*' ..
+ 'substitute(''a'', ''b'', ''\\=123'', ''g'')\_s*' ..
+ '\d PUSHS "a"\_s*' ..
+ '\d PUSHS "b"\_s*' ..
+ '\d INSTR\_s*' ..
+ ' 0 PUSHNR 123\_s*' ..
+ ' -------------\_s*' ..
+ '\d PUSHS "g"\_s*' ..
+ '\d BCALL substitute(argc 4)\_s*' ..
+ '\d DROP\_s*' ..
+ '\d RETURN void',
+ res)
+enddef
+
def s:RedirVar()
var result: string
redir =>> result