Mercurial > vim
diff src/testdir/test_vim9_builtin.vim @ 24482:3d5a66e478f8 v8.2.2781
patch 8.2.2781: add() silently skips when adding to null list or blob
Commit: https://github.com/vim/vim/commit/b7c21afef14bba0208f2c40d47c050a004eb2f34
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Apr 18 14:12:31 2021 +0200
patch 8.2.2781: add() silently skips when adding to null list or blob
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 18 Apr 2021 14:15:04 +0200 |
parents | f539864ba851 |
children | bc1a533148d7 |
line wrap: on
line diff
--- 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()