Skip to content

Commit 0779fab

Browse files
committed
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Problem: Vim9: no test for disassambling newly added instructions. Solution: Add a function and check disassembly.
1 parent c8cb883 commit 0779fab

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

src/testdir/test_vim9_disassemble.vim

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,42 @@ def Test_disassemble_store_member()
185185
res)
186186
enddef
187187

188+
def s:ListAssign()
189+
let x: string
190+
let y: string
191+
let l: list<any>
192+
[x, y; l] = g:stringlist
193+
enddef
194+
195+
def Test_disassemble_list_assign()
196+
let res = execute('disass s:ListAssign')
197+
assert_match('<SNR>\d*_ListAssign\_s*' ..
198+
'let x: string\_s*' ..
199+
'\d PUSHS "\[NULL\]"\_s*' ..
200+
'\d STORE $0\_s*' ..
201+
'let y: string\_s*' ..
202+
'\d PUSHS "\[NULL\]"\_s*' ..
203+
'\d STORE $1\_s*' ..
204+
'let l: list<any>\_s*' ..
205+
'\d NEWLIST size 0\_s*' ..
206+
'\d STORE $2\_s*' ..
207+
'\[x, y; l\] = g:stringlist\_s*' ..
208+
'\d LOADG g:stringlist\_s*' ..
209+
'\d CHECKTYPE list stack\[-1\]\_s*' ..
210+
'\d CHECKLEN >= 2\_s*' ..
211+
'\d\+ ITEM 0\_s*' ..
212+
'\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
213+
'\d\+ STORE $0\_s*' ..
214+
'\d\+ ITEM 1\_s*' ..
215+
'\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
216+
'\d\+ STORE $1\_s*' ..
217+
'\d\+ SLICE 2\_s*' ..
218+
'\d\+ STORE $2\_s*' ..
219+
'\d\+ PUSHNR 0\_s*' ..
220+
'\d\+ RETURN',
221+
res)
222+
enddef
223+
188224
def s:ScriptFuncUnlet()
189225
g:somevar = "value"
190226
unlet g:somevar

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,8 @@ static char *(features[]) =
754754

755755
static int included_patches[] =
756756
{ /* Add new patch number below this line */
757+
/**/
758+
1008,
757759
/**/
758760
1007,
759761
/**/

0 commit comments

Comments
 (0)