comparison src/testdir/test_vim9_script.vim @ 20091:a64c16ff98b8 v8.2.0601

patch 8.2.0601: Vim9: :unlet is not compiled Commit: https://github.com/vim/vim/commit/d72c1bf0a6784afdc8d8ceab4a007cd76d5b81e1 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Apr 19 16:28:59 2020 +0200 patch 8.2.0601: Vim9: :unlet is not compiled Problem: Vim9: :unlet is not compiled. Solution: Implement :unlet instruction and check for errors.
author Bram Moolenaar <Bram@vim.org>
date Sun, 19 Apr 2020 16:30:04 +0200
parents 7fc5d62fe2a5
children 058b41f85bcb
comparison
equal deleted inserted replaced
20090:b2225a10b777 20091:a64c16ff98b8
211 def Mess(): string 211 def Mess(): string
212 v:foldstart = 123 212 v:foldstart = 123
213 return 'xxx' 213 return 'xxx'
214 enddef 214 enddef
215 215
216 func Test_assignment_failure() 216 def Test_assignment_failure()
217 call CheckDefFailure(['let var=234'], 'E1004:') 217 call CheckDefFailure(['let var=234'], 'E1004:')
218 call CheckDefFailure(['let var =234'], 'E1004:') 218 call CheckDefFailure(['let var =234'], 'E1004:')
219 call CheckDefFailure(['let var= 234'], 'E1004:') 219 call CheckDefFailure(['let var= 234'], 'E1004:')
220 220
221 call CheckDefFailure(['let true = 1'], 'E1034:') 221 call CheckDefFailure(['let true = 1'], 'E1034:')
239 239
240 call CheckDefFailure(['let anr = 4', 'anr ..= "text"'], 'E1019:') 240 call CheckDefFailure(['let anr = 4', 'anr ..= "text"'], 'E1019:')
241 call CheckDefFailure(['let xnr += 4'], 'E1020:') 241 call CheckDefFailure(['let xnr += 4'], 'E1020:')
242 242
243 call CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef'], 'E1050:') 243 call CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef'], 'E1050:')
244 " TODO: implement this error
245 "call CheckScriptFailure(['vim9script', 'let svar = 123', 'unlet svar'], 'E1050:')
246 "call CheckScriptFailure(['vim9script', 'let svar = 123', 'unlet s:svar'], 'E1050:')
247 244
248 call CheckDefFailure(['let var: list<string> = [123]'], 'expected list<string> but got list<number>') 245 call CheckDefFailure(['let var: list<string> = [123]'], 'expected list<string> but got list<number>')
249 call CheckDefFailure(['let var: list<number> = ["xx"]'], 'expected list<number> but got list<string>') 246 call CheckDefFailure(['let var: list<number> = ["xx"]'], 'expected list<number> but got list<string>')
250 247
251 call CheckDefFailure(['let var: dict<string> = #{key: 123}'], 'expected dict<string> but got dict<number>') 248 call CheckDefFailure(['let var: dict<string> = #{key: 123}'], 'expected dict<string> but got dict<number>')
257 call CheckDefFailure(['let var: dict <number>'], 'E1068:') 254 call CheckDefFailure(['let var: dict <number>'], 'E1068:')
258 call CheckDefFailure(['let var: dict<number'], 'E1009:') 255 call CheckDefFailure(['let var: dict<number'], 'E1009:')
259 256
260 call assert_fails('s/^/\=Mess()/n', 'E794:') 257 call assert_fails('s/^/\=Mess()/n', 'E794:')
261 call CheckDefFailure(['let var: dict<number'], 'E1009:') 258 call CheckDefFailure(['let var: dict<number'], 'E1009:')
262 endfunc 259 enddef
260
261 def Test_unlet()
262 g:somevar = 'yes'
263 assert_true(exists('g:somevar'))
264 unlet g:somevar
265 assert_false(exists('g:somevar'))
266 unlet! g:somevar
267
268 call CheckScriptFailure([
269 'vim9script',
270 'let svar = 123',
271 'unlet svar',
272 ], 'E1081:')
273 call CheckScriptFailure([
274 'vim9script',
275 'let svar = 123',
276 'unlet s:svar',
277 ], 'E1081:')
278 call CheckScriptFailure([
279 'vim9script',
280 'let svar = 123',
281 'def Func()',
282 ' unlet svar',
283 'enddef',
284 ], 'E1081:')
285 call CheckScriptFailure([
286 'vim9script',
287 'let svar = 123',
288 'def Func()',
289 ' unlet s:svar',
290 'enddef',
291 ], 'E1081:')
292 enddef
263 293
264 func Test_wrong_type() 294 func Test_wrong_type()
265 call CheckDefFailure(['let var: list<nothing>'], 'E1010:') 295 call CheckDefFailure(['let var: list<nothing>'], 'E1010:')
266 call CheckDefFailure(['let var: list<list<nothing>>'], 'E1010:') 296 call CheckDefFailure(['let var: list<list<nothing>>'], 'E1010:')
267 call CheckDefFailure(['let var: dict<nothing>'], 'E1010:') 297 call CheckDefFailure(['let var: dict<nothing>'], 'E1010:')
1153 1183
1154 assert_fails('doautocmd Syntax#comment', 'E216:') 1184 assert_fails('doautocmd Syntax#comment', 'E216:')
1155 1185
1156 au! TabEnter 1186 au! TabEnter
1157 unlet g:entered 1187 unlet g:entered
1188
1189 CheckScriptSuccess([
1190 'vim9script',
1191 'let g:var = 123',
1192 'let w:var = 777',
1193 'unlet g:var w:var # something',
1194 ])
1195
1196 CheckScriptFailure([
1197 'vim9script',
1198 'let g:var = 123',
1199 'unlet g:var# comment',
1200 ], 'E108:')
1201
1202 CheckScriptFailure([
1203 'let g:var = 123',
1204 'unlet g:var # something',
1205 ], 'E488:')
1158 enddef 1206 enddef
1159 1207
1160 " Keep this last, it messes up highlighting. 1208 " Keep this last, it messes up highlighting.
1161 def Test_substitute_cmd() 1209 def Test_substitute_cmd()
1162 new 1210 new