comparison src/testdir/test_vim9_disassemble.vim @ 28625:56860e29ce5d v8.2.4836

patch 8.2.4836: Vim9: some lines not covered by tests Commit: https://github.com/vim/vim/commit/f6ced9863f931758a4cee0b6546e77d21150806d Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 28 12:00:49 2022 +0100 patch 8.2.4836: Vim9: some lines not covered by tests Problem: Vim9: some lines not covered by tests. Solution: Remove dead code. Add disassemble tests.
author Bram Moolenaar <Bram@vim.org>
date Thu, 28 Apr 2022 13:15:04 +0200
parents 1d92ba691dc4
children bfd8e25fa207
comparison
equal deleted inserted replaced
28624:cfe842c7e379 28625:56860e29ce5d
263 res) 263 res)
264 enddef 264 enddef
265 265
266 def s:PutRange() 266 def s:PutRange()
267 :$-2put a 267 :$-2put a
268 :$-3put! b
268 enddef 269 enddef
269 270
270 def Test_disassemble_put_range() 271 def Test_disassemble_put_range()
271 var res = execute('disass s:PutRange') 272 var res = execute('disass s:PutRange')
272 assert_match('<SNR>\d*_PutRange.*' .. 273 assert_match('<SNR>\d*_PutRange.*' ..
273 ' :$-2put a\_s*' .. 274 ' :$-2put a\_s*' ..
274 '\d RANGE $-2\_s*' .. 275 '\d RANGE $-2\_s*' ..
275 '\d PUT a range\_s*' .. 276 '\d PUT a range\_s*' ..
277
278 ' :$-3put! b\_s*' ..
279 '\d RANGE $-3\_s*' ..
280 '\d PUT b above range\_s*' ..
276 '\d RETURN void', 281 '\d RETURN void',
277 res) 282 res)
278 enddef 283 enddef
279 284
280 def s:ScriptFuncPush() 285 def s:ScriptFuncPush()
682 def s:ScriptFuncUnlet() 687 def s:ScriptFuncUnlet()
683 g:somevar = "value" 688 g:somevar = "value"
684 unlet g:somevar 689 unlet g:somevar
685 unlet! g:somevar 690 unlet! g:somevar
686 unlet $SOMEVAR 691 unlet $SOMEVAR
692
693 var l = [1, 2, 3]
694 unlet l[2]
695 unlet l[0 : 1]
687 enddef 696 enddef
688 697
689 def Test_disassemble_unlet() 698 def Test_disassemble_unlet()
690 var res = execute('disass s:ScriptFuncUnlet') 699 var res = execute('disass s:ScriptFuncUnlet')
691 assert_match('<SNR>\d*_ScriptFuncUnlet\_s*' .. 700 assert_match('<SNR>\d*_ScriptFuncUnlet\_s*' ..
695 'unlet g:somevar\_s*' .. 704 'unlet g:somevar\_s*' ..
696 '\d UNLET g:somevar\_s*' .. 705 '\d UNLET g:somevar\_s*' ..
697 'unlet! g:somevar\_s*' .. 706 'unlet! g:somevar\_s*' ..
698 '\d UNLET! g:somevar\_s*' .. 707 '\d UNLET! g:somevar\_s*' ..
699 'unlet $SOMEVAR\_s*' .. 708 'unlet $SOMEVAR\_s*' ..
700 '\d UNLETENV $SOMEVAR\_s*', 709 '\d UNLETENV $SOMEVAR\_s*' ..
710
711 'var l = \[1, 2, 3]\_s*' ..
712 '\d\+ PUSHNR 1\_s*' ..
713 '\d\+ PUSHNR 2\_s*' ..
714 '\d\+ PUSHNR 3\_s*' ..
715 '\d\+ NEWLIST size 3\_s*' ..
716 '\d\+ SETTYPE list<number>\_s*' ..
717 '\d\+ STORE $0\_s*' ..
718
719 'unlet l\[2]\_s*' ..
720 '\d\+ PUSHNR 2\_s*' ..
721 '\d\+ LOAD $0\_s*' ..
722 '\d\+ UNLETINDEX\_s*' ..
723
724 'unlet l\[0 : 1]\_s*' ..
725 '\d\+ PUSHNR 0\_s*' ..
726 '\d\+ PUSHNR 1\_s*' ..
727 '\d\+ LOAD $0\_s*' ..
728 '\d\+ UNLETRANGE\_s*',
701 res) 729 res)
702 enddef 730 enddef
703 731
704 def s:LockLocal() 732 def s:LockLocal()
705 var d = {a: 1} 733 var d = {a: 1}
706 lockvar d.a 734 lockvar d.a
735 const nr = 22
707 enddef 736 enddef
708 737
709 def Test_disassemble_lock_local() 738 def Test_disassemble_lock_local()
710 var res = execute('disass s:LockLocal') 739 var res = execute('disass s:LockLocal')
711 assert_match('<SNR>\d*_LockLocal\_s*' .. 740 assert_match('<SNR>\d*_LockLocal\_s*' ..
715 '\d NEWDICT size 1\_s*' .. 744 '\d NEWDICT size 1\_s*' ..
716 '\d SETTYPE dict<number>\_s*' .. 745 '\d SETTYPE dict<number>\_s*' ..
717 '\d STORE $0\_s*' .. 746 '\d STORE $0\_s*' ..
718 'lockvar d.a\_s*' .. 747 'lockvar d.a\_s*' ..
719 '\d LOAD $0\_s*' .. 748 '\d LOAD $0\_s*' ..
720 '\d LOCKUNLOCK lockvar 2 d.a\_s*', 749 '\d LOCKUNLOCK lockvar 2 d.a\_s*' ..
750
751 'const nr = 22\_s*' ..
752 '\d\+ PUSHNR 22\_s*' ..
753 '\d\+ LOCKCONST\_s*' ..
754 '\d\+ STORE $1',
721 res) 755 res)
722 enddef 756 enddef
723 757
724 def s:ScriptFuncTry() 758 def s:ScriptFuncTry()
725 try 759 try
2184 '\d EXECRANGE ''m\_s*' .. 2218 '\d EXECRANGE ''m\_s*' ..
2185 '\d\+ RETURN void', 2219 '\d\+ RETURN void',
2186 res) 2220 res)
2187 enddef 2221 enddef
2188 2222
2223 def s:StoreRange()
2224 var l = [1, 2]
2225 l[0 : 1] = [7, 8]
2226 enddef
2227
2228 def Test_disassemble_store_range()
2229 var res = execute('disass s:StoreRange')
2230 assert_match('\<SNR>\d*_StoreRange\_s*' ..
2231 'var l = \[1, 2]\_s*' ..
2232 '\d PUSHNR 1\_s*' ..
2233 '\d PUSHNR 2\_s*' ..
2234 '\d NEWLIST size 2\_s*' ..
2235 '\d SETTYPE list<number>\_s*' ..
2236 '\d STORE $0\_s*' ..
2237
2238 'l\[0 : 1] = \[7, 8]\_s*' ..
2239 '\d\+ PUSHNR 7\_s*' ..
2240 '\d\+ PUSHNR 8\_s*' ..
2241 '\d\+ NEWLIST size 2\_s*' ..
2242 '\d\+ PUSHNR 0\_s*' ..
2243 '\d\+ PUSHNR 1\_s*' ..
2244 '\d\+ LOAD $0\_s*' ..
2245 '\d\+ STORERANGE\_s*' ..
2246 '\d\+ RETURN void',
2247 res)
2248 enddef
2249
2189 def s:Echomsg() 2250 def s:Echomsg()
2190 echomsg 'some' 'message' 2251 echomsg 'some' 'message'
2191 echoconsole 'nothing' 2252 echoconsole 'nothing'
2192 echoerr 'went' .. 'wrong' 2253 echoerr 'went' .. 'wrong'
2193 enddef 2254 enddef