diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-10-04 07:54:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-04 07:54:42 +0800 |
commit | a93ff5fc696387798c7ba066c11600ae2ce1ce03 (patch) | |
tree | 6cb23fdcf7f7a172c7757c244df64c850569f01a /src | |
parent | 51d379d40d14d35ccb8e4038504d6c0cda9be62c (diff) | |
parent | 71497c164db3180bbec539765f987b483662f73f (diff) | |
download | rneovim-a93ff5fc696387798c7ba066c11600ae2ce1ce03.tar.gz rneovim-a93ff5fc696387798c7ba066c11600ae2ce1ce03.tar.bz2 rneovim-a93ff5fc696387798c7ba066c11600ae2ce1ce03.zip |
Merge pull request #20467 from zeertzjq/vim-8.2.2316
vim-patch:8.2.2316: Vim9: cannot list a lambda function
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval/userfunc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c index 72d6a1394e..b0a56c4440 100644 --- a/src/nvim/eval/userfunc.c +++ b/src/nvim/eval/userfunc.c @@ -1983,7 +1983,14 @@ void ex_function(exarg_T *eap) // s:func script-local function name // g:func global function name, same as "func" p = eap->arg; - name = (char *)trans_function_name(&p, eap->skip, TFN_NO_AUTOLOAD, &fudi, NULL); + if (strncmp(p, "<lambda>", 8) == 0) { + p += 8; + (void)getdigits(&p, false, 0); + name = xstrndup(eap->arg, (size_t)(p - eap->arg)); + CLEAR_FIELD(fudi); + } else { + name = (char *)trans_function_name(&p, eap->skip, TFN_NO_AUTOLOAD, &fudi, NULL); + } paren = (vim_strchr(p, '(') != NULL); if (name == NULL && (fudi.fd_dict == NULL || !paren) && !eap->skip) { // Return on an invalid expression in braces, unless the expression |