patch 8.2.4669: in compiled code len('string') is not inlined
Problem: In compiled code len('string') is not inlined.
Solution: Compute the length at compile time if possible. (closes #10065)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index e55e38e..f040ba6 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -1015,9 +1015,20 @@
endif
enddef
+def s:LenConstant(): number
+ return len("foo") + len("fighters")
+enddef
+
def Test_disassemble_const_expr()
+ var instr = execute('disassemble LenConstant')
+ assert_match('LenConstant\_s*' ..
+ 'return len("foo") + len("fighters")\_s*' ..
+ '\d PUSHNR 11\_s*',
+ instr)
+ assert_notmatch('BCALL len', instr)
+
assert_equal("\nyes", execute('HasEval()'))
- var instr = execute('disassemble HasEval')
+ instr = execute('disassemble HasEval')
assert_match('HasEval\_s*' ..
'if has("eval")\_s*' ..
'echo "yes"\_s*' ..