comparison src/testdir/test_vim9_disassemble.vim @ 21299:883315e762b7 v8.2.1200

patch 8.2.1200: Vim9: cannot disassemble a lambda function Commit: https://github.com/vim/vim/commit/bfd65589d9b6bd5fd2c8ee768d1427469bd61ead Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jul 13 18:18:00 2020 +0200 patch 8.2.1200: Vim9: cannot disassemble a lambda function Problem: Vim9: cannot disassemble a lambda function. Solution: Recognize "<lambda>123" as a function name.
author Bram Moolenaar <Bram@vim.org>
date Mon, 13 Jul 2020 18:30:04 +0200
parents 6a4806e326dd
children fb8c8fcb7b60
comparison
equal deleted inserted replaced
21298:e4e65c7d3dc2 21299:883315e762b7
662 '\d PUSHS "x"\_s*' .. 662 '\d PUSHS "x"\_s*' ..
663 '\d LOAD $0\_s*' .. 663 '\d LOAD $0\_s*' ..
664 '\d PCALL (argc 1)\_s*' .. 664 '\d PCALL (argc 1)\_s*' ..
665 '\d RETURN', 665 '\d RETURN',
666 instr) 666 instr)
667
668 let name = substitute(instr, '.*\(<lambda>\d\+\).*', '\1', '')
669 instr = execute('disassemble ' .. name)
670 assert_match('<lambda>\d\+\_s*' ..
671 'return "X" .. a .. "X"\_s*' ..
672 '\d PUSHS "X"\_s*' ..
673 '\d LOAD arg\[-1\]\_s*' ..
674 '\d 2STRING stack\[-1\]\_s*' ..
675 '\d CONCAT\_s*' ..
676 '\d PUSHS "X"\_s*' ..
677 '\d CONCAT\_s*' ..
678 '\d RETURN',
679 instr)
667 enddef 680 enddef
668 681
669 def AndOr(arg: any): string 682 def AndOr(arg: any): string
670 if arg == 1 && arg != 2 || arg == 4 683 if arg == 1 && arg != 2 || arg == 4
671 return 'yes' 684 return 'yes'