Mercurial > vim
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 |