comparison src/testdir/test_vim9_builtin.vim @ 28345:fabe722b24e9 v8.2.4698

patch 8.2.4698: Vim9: script variable has no flag that it was set Commit: https://github.com/vim/vim/commit/aa7d0c233532fb9d8c2876ea8e978a82b12c377f Author: Bram Moolenaar <Bram@vim.org> Date: Tue Apr 5 21:40:38 2022 +0100 patch 8.2.4698: Vim9: script variable has no flag that it was set Problem: Vim9: script variable has no flag that it was set. Solution: Add a flag that it was set, to avoid giving it a value when used. (closes #10088)
author Bram Moolenaar <Bram@vim.org>
date Tue, 05 Apr 2022 22:45:03 +0200
parents 425700af491b
children da28696e5340
comparison
equal deleted inserted replaced
28344:10a99c04ba1d 28345:fabe722b24e9
151 var l: list<number> = test_null_list() 151 var l: list<number> = test_null_list()
152 add(l, 123) 152 add(l, 123)
153 END 153 END
154 v9.CheckDefExecFailure(lines, 'E1130:', 2) 154 v9.CheckDefExecFailure(lines, 'E1130:', 2)
155 155
156 # Getting variable with NULL list allocates a new list at script level 156 # Getting an uninitialized variable allocates a new list at script level
157 lines =<< trim END
158 vim9script
159 var l: list<number>
160 add(l, 123)
161 END
162 v9.CheckScriptSuccess(lines)
163
164 # Adding to a variable set to a NULL list fails
157 lines =<< trim END 165 lines =<< trim END
158 vim9script 166 vim9script
159 var l: list<number> = test_null_list() 167 var l: list<number> = test_null_list()
160 add(l, 123) 168 add(l, 123)
161 END 169 END
162 v9.CheckScriptSuccess(lines) 170 v9.CheckScriptFailure(lines, 'E1130:', 3)
163 171
164 lines =<< trim END 172 lines =<< trim END
165 vim9script 173 vim9script
166 var l: list<string> = ['a'] 174 var l: list<string> = ['a']
167 l->add(123) 175 l->add(123)