Mercurial > vim
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' |