diff options
| author | Bram Moolenaar <Bram@vim.org> | 2022-05-07 21:14:05 +0100 |
|---|---|---|
| committer | Bram Moolenaar <Bram@vim.org> | 2022-05-07 21:14:05 +0100 |
| commit | a7583c42cd6b64fd276a5d7bb0db5ce7bfafa730 (patch) | |
| tree | ee867b59f724d625198f985cb90cd84af7571b18 /src/testdir/test_vim9_func.vim | |
| parent | 249591057b4840785c50e41dd850efb8a8faf435 (diff) | |
| download | vim-git-8.2.4912.tar.gz | |
patch 8.2.4912: using execute() to define a lambda doesn't workv8.2.4912
Problem: Using execute() to define a lambda doesn't work. (Ernie Rael)
Solution: Put the getline function in evalarg. (closes #10375)
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
| -rw-r--r-- | src/testdir/test_vim9_func.vim | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 5f42c1cfe..14d0bce6f 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -1615,6 +1615,26 @@ def Test_lambda_type_allocated() v9.CheckScriptSuccess(lines) enddef +def Test_define_lambda_in_execute() + var lines =<< trim [CODE] + vim9script + + def BuildFuncMultiLine(): func + var x =<< trim END + g:SomeRandomFunc = (d: dict<any>) => { + return d.k1 + d.k2 + } + END + execute(x) + return g:SomeRandomFunc + enddef + var ResultPlus = BuildFuncMultiLine() + assert_equal(7, ResultPlus({k1: 3, k2: 4})) + [CODE] + v9.CheckScriptSuccess(lines) + unlet g:SomeRandomFunc +enddef + " Default arg and varargs def MyDefVarargs(one: string, two = 'foo', ...rest: list<string>): string var res = one .. ',' .. two |
