diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-01-31 08:12:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-31 08:12:44 +0800 |
commit | 62c8715ee9be95f9e0f5164dc9b39a04f4d60e8a (patch) | |
tree | bd7209e1daebe31d563fee443988f24f4efd7c27 /src | |
parent | 4dcc7bcbedbb2a9e9166b94900d4c3e363468578 (diff) | |
download | rneovim-62c8715ee9be95f9e0f5164dc9b39a04f4d60e8a.tar.gz rneovim-62c8715ee9be95f9e0f5164dc9b39a04f4d60e8a.tar.bz2 rneovim-62c8715ee9be95f9e0f5164dc9b39a04f4d60e8a.zip |
vim-patch:8.1.2412: crash when evaluating expression with error (#17109)
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_lambda.vim | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 40fa05da4f..3325628a8e 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -4402,7 +4402,7 @@ static int eval_lambda(char_u **const arg, typval_T *const rettv, const bool eva rettv->v_type = VAR_UNKNOWN; int ret = get_lambda_tv(arg, rettv, evaluate); - if (ret == NOTDONE) { + if (ret != OK) { return FAIL; } else if (**arg != '(') { if (verbose) { diff --git a/src/nvim/testdir/test_lambda.vim b/src/nvim/testdir/test_lambda.vim index 63bb4ae1ef..72ddbcf6dc 100644 --- a/src/nvim/testdir/test_lambda.vim +++ b/src/nvim/testdir/test_lambda.vim @@ -303,3 +303,8 @@ func Test_lambda_with_index() let Extract = {-> function(List, ['foobar'])()[0]} call assert_equal('foobar', Extract()) endfunc + +func Test_lambda_error() + " This was causing a crash + call assert_fails('ec{@{->{d->()()', 'E15') +endfunc |