diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-04-18 14:12:31 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-04-18 14:12:31 +0200 |
commit | b7c21afef14bba0208f2c40d47c050a004eb2f34 (patch) | |
tree | d7ac8993ffa95c8e45240dd873eb04e00235f074 /src/testdir/test_vim9_builtin.vim | |
parent | d551d6c268e435e2fbba22775510fbd0a54477f6 (diff) |
patch 8.2.2781: add() silently skips when adding to null list or blobv8.2.2781
Problem: Add() silently skips when adding to null list or blob.
Solution: Give an error in Vim9 script. Allocate blob when it is NULL like
with list and dict.
Diffstat (limited to 'src/testdir/test_vim9_builtin.vim')
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index 5c13d51277..bf15a41595 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -87,10 +87,23 @@ def Test_add_list() CheckDefFailure(lines, 'E1012:', 2) lines =<< trim END + add(test_null_list(), 123) + END + CheckDefExecAndScriptFailure(lines, 'E1130:', 1) + + lines =<< trim END var l: list<number> = test_null_list() add(l, 123) END CheckDefExecFailure(lines, 'E1130:', 2) + + # Getting variable with NULL list allocates a new list at script level + lines =<< trim END + vim9script + var l: list<number> = test_null_list() + add(l, 123) + END + CheckScriptSuccess(lines) enddef def Test_add_blob() @@ -109,10 +122,23 @@ def Test_add_blob() CheckDefFailure(lines, 'E1012:', 2) lines =<< trim END + add(test_null_blob(), 123) + END + CheckDefExecAndScriptFailure(lines, 'E1131:', 1) + + lines =<< trim END var b: blob = test_null_blob() add(b, 123) END CheckDefExecFailure(lines, 'E1131:', 2) + + # Getting variable with NULL blob allocates a new blob at script level + lines =<< trim END + vim9script + var b: blob = test_null_blob() + add(b, 123) + END + CheckScriptSuccess(lines) enddef def Test_append() |