summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-18 22:18:18 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-18 22:18:18 +0200
commit0779fab2979d6d055ba3c464f1c2b9d90dc9e49f (patch)
treeffb8a09814a4a667086a26ade06b552d3039bb31
parentc8cb883015619cfe6db931ac2d6e15b0be5c56ed (diff)
downloadvim-git-0779fab2979d6d055ba3c464f1c2b9d90dc9e49f.tar.gz
patch 8.2.1008: Vim9: no test for disassambling newly added instructionsv8.2.1008
Problem: Vim9: no test for disassambling newly added instructions. Solution: Add a function and check disassembly.
-rw-r--r--src/testdir/test_vim9_disassemble.vim36
-rw-r--r--src/version.c2
2 files changed, 38 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 2e541d9f9..557b90bcc 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -185,6 +185,42 @@ def Test_disassemble_store_member()
res)
enddef
+def s:ListAssign()
+ let x: string
+ let y: string
+ let l: list<any>
+ [x, y; l] = g:stringlist
+enddef
+
+def Test_disassemble_list_assign()
+ let res = execute('disass s:ListAssign')
+ assert_match('<SNR>\d*_ListAssign\_s*' ..
+ 'let x: string\_s*' ..
+ '\d PUSHS "\[NULL\]"\_s*' ..
+ '\d STORE $0\_s*' ..
+ 'let y: string\_s*' ..
+ '\d PUSHS "\[NULL\]"\_s*' ..
+ '\d STORE $1\_s*' ..
+ 'let l: list<any>\_s*' ..
+ '\d NEWLIST size 0\_s*' ..
+ '\d STORE $2\_s*' ..
+ '\[x, y; l\] = g:stringlist\_s*' ..
+ '\d LOADG g:stringlist\_s*' ..
+ '\d CHECKTYPE list stack\[-1\]\_s*' ..
+ '\d CHECKLEN >= 2\_s*' ..
+ '\d\+ ITEM 0\_s*' ..
+ '\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
+ '\d\+ STORE $0\_s*' ..
+ '\d\+ ITEM 1\_s*' ..
+ '\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
+ '\d\+ STORE $1\_s*' ..
+ '\d\+ SLICE 2\_s*' ..
+ '\d\+ STORE $2\_s*' ..
+ '\d\+ PUSHNR 0\_s*' ..
+ '\d\+ RETURN',
+ res)
+enddef
+
def s:ScriptFuncUnlet()
g:somevar = "value"
unlet g:somevar
diff --git a/src/version.c b/src/version.c
index 6ea02b95a..a3fedf1cd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1008,
+/**/
1007,
/**/
1006,