Mercurial > vim
diff src/testdir/test_vim9_disassemble.vim @ 28287:dc68c111cf7a v8.2.4669
patch 8.2.4669: in compiled code len('string') is not inlined
Commit: https://github.com/vim/vim/commit/58f331a05f5b7bdddf04e68b6e51a827fd0c43f0
Author: LemonBoy <thatlemon@gmail.com>
Date: Sat Apr 2 21:59:06 2022 +0100
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 https://github.com/vim/vim/issues/10065)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 02 Apr 2022 23:00:05 +0200 |
parents | 9d90eef65a46 |
children | d550054e1328 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_disassemble.vim +++ b/src/testdir/test_vim9_disassemble.vim @@ -1015,9 +1015,20 @@ def s:HasGuiRunning() 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*' ..