Mercurial > vim
annotate src/testdir/test_vim9_disassemble.vim @ 21642:5ae89c8633ae v8.2.1371
patch 8.2.1371: Vim9: no error for missing white space around operator
Commit: https://github.com/vim/vim/commit/3c1c9fd94bc80871119a8519f3b881595082a6c0
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 5 12:32:38 2020 +0200
patch 8.2.1371: Vim9: no error for missing white space around operator
Problem: Vim9: no error for missing white space around operator.
Solution: Check for white space around && and ||.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 05 Aug 2020 12:45:03 +0200 |
parents | 1c4d4aa22b37 |
children | ef3b31d510d2 |
rev | line source |
---|---|
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1 " Test the :disassemble command, and compilation as a side effect |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 |
19572
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
3 source check.vim |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
4 |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 func NotCompiled() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
6 echo "not" |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
7 endfunc |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
8 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
9 let s:scriptvar = 4 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 let g:globalvar = 'g' |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
11 let b:buffervar = 'b' |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
12 let w:windowvar = 'w' |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
13 let t:tabpagevar = 't' |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 def s:ScriptFuncLoad(arg: string) |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 let local = 1 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 buffers |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 echo arg |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 echo local |
20301
e1a8d2040bd7
patch 8.2.0706: Vim9: using assert_fails() causes function to finish
Bram Moolenaar <Bram@vim.org>
parents:
20295
diff
changeset
|
20 echo &lines |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 echo v:version |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 echo s:scriptvar |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 echo g:globalvar |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
24 echo get(g:, "global") |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
25 echo b:buffervar |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
26 echo get(b:, "buffer") |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
27 echo w:windowvar |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
28 echo get(w:, "window") |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
29 echo t:tabpagevar |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
30 echo get(t:, "tab") |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
31 echo &tabstop |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 echo $ENVVAR |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 echo @z |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
36 def Test_disassemble_load() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 assert_fails('disass NoFunc', 'E1061:') |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 assert_fails('disass NotCompiled', 'E1062:') |
19390
e4b326c9424a
patch 8.2.0253: crash when using :disassamble without argument
Bram Moolenaar <Bram@vim.org>
parents:
19342
diff
changeset
|
39 assert_fails('disass', 'E471:') |
e4b326c9424a
patch 8.2.0253: crash when using :disassamble without argument
Bram Moolenaar <Bram@vim.org>
parents:
19342
diff
changeset
|
40 assert_fails('disass [', 'E475:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
21232
diff
changeset
|
41 assert_fails('disass 234', 'E129:') |
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
21232
diff
changeset
|
42 assert_fails('disass <XX>foo', 'E129:') |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
43 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
44 let res = execute('disass s:ScriptFuncLoad') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
45 assert_match('<SNR>\d*_ScriptFuncLoad.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
46 'buffers.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
47 ' EXEC \+buffers.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
48 ' LOAD arg\[-1\].*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
49 ' LOAD $0.*' .. |
20301
e1a8d2040bd7
patch 8.2.0706: Vim9: using assert_fails() causes function to finish
Bram Moolenaar <Bram@vim.org>
parents:
20295
diff
changeset
|
50 ' LOADOPT &lines.*' .. |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
51 ' LOADV v:version.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
52 ' LOADS s:scriptvar from .*test_vim9_disassemble.vim.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
53 ' LOADG g:globalvar.*' .. |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
54 'echo get(g:, "global")\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
55 '\d\+ LOAD g:\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
56 '\d\+ PUSHS "global"\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
57 '\d\+ BCALL get(argc 2).*' .. |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
58 ' LOADB b:buffervar.*' .. |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
59 'echo get(b:, "buffer")\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
60 '\d\+ LOAD b:\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
61 '\d\+ PUSHS "buffer"\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
62 '\d\+ BCALL get(argc 2).*' .. |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
63 ' LOADW w:windowvar.*' .. |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
64 'echo get(w:, "window")\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
65 '\d\+ LOAD w:\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
66 '\d\+ PUSHS "window"\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
67 '\d\+ BCALL get(argc 2).*' .. |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
68 ' LOADT t:tabpagevar.*' .. |
21399
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
69 'echo get(t:, "tab")\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
70 '\d\+ LOAD t:\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
71 '\d\+ PUSHS "tab"\_s*' .. |
5cb6e676defd
patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Bram Moolenaar <Bram@vim.org>
parents:
21397
diff
changeset
|
72 '\d\+ BCALL get(argc 2).*' .. |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
73 ' LOADENV $ENVVAR.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
74 ' LOADREG @z.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
75 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
76 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
77 |
20170
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
78 def s:EditExpand() |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
79 let filename = "file" |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
80 let filenr = 123 |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
81 edit the`=filename``=filenr`.txt |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
82 enddef |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
83 |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
84 def Test_disassemble_exec_expr() |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
85 let res = execute('disass s:EditExpand') |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
86 assert_match('<SNR>\d*_EditExpand.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
87 ' let filename = "file".*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
88 '\d PUSHS "file".*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
89 '\d STORE $0.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
90 ' let filenr = 123.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
91 '\d STORE 123 in $1.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
92 ' edit the`=filename``=filenr`.txt.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
93 '\d PUSHS "edit the".*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
94 '\d LOAD $0.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
95 '\d LOAD $1.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
96 '\d 2STRING stack\[-1\].*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
97 '\d PUSHS ".txt".*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
98 '\d EXECCONCAT 4.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
99 '\d PUSHNR 0.*' .. |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
100 '\d RETURN', |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
101 res) |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
102 enddef |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
103 |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
104 def s:ScriptFuncPush() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
105 let localbool = true |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
106 let localspec = v:none |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
107 let localblob = 0z1234 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
108 if has('float') |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
109 let localfloat = 1.234 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
110 endif |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
111 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
112 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
113 def Test_disassemble_push() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
114 let res = execute('disass s:ScriptFuncPush') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
115 assert_match('<SNR>\d*_ScriptFuncPush.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
116 'localbool = true.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
117 ' PUSH v:true.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
118 'localspec = v:none.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
119 ' PUSH v:none.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
120 'localblob = 0z1234.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
121 ' PUSHBLOB 0z1234.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
122 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
123 if has('float') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
124 assert_match('<SNR>\d*_ScriptFuncPush.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
125 'localfloat = 1.234.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
126 ' PUSHF 1.234.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
127 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
128 endif |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
129 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
130 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
131 def s:ScriptFuncStore() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
132 let localnr = 1 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
133 localnr = 2 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
134 let localstr = 'abc' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
135 localstr = 'xyz' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
136 v:char = 'abc' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
137 s:scriptvar = 'sv' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
138 g:globalvar = 'gv' |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
139 b:buffervar = 'bv' |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
140 w:windowvar = 'wv' |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
141 t:tabpagevar = 'tv' |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
142 &tabstop = 8 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
143 $ENVVAR = 'ev' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
144 @z = 'rv' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
145 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
146 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
147 def Test_disassemble_store() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
148 let res = execute('disass s:ScriptFuncStore') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
149 assert_match('<SNR>\d*_ScriptFuncStore.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
150 'let localnr = 1.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
151 'localnr = 2.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
152 ' STORE 2 in $0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
153 'let localstr = ''abc''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
154 'localstr = ''xyz''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
155 ' STORE $1.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
156 'v:char = ''abc''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
157 'STOREV v:char.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
158 's:scriptvar = ''sv''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
159 ' STORES s:scriptvar in .*test_vim9_disassemble.vim.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
160 'g:globalvar = ''gv''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
161 ' STOREG g:globalvar.*' .. |
20089
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
162 'b:buffervar = ''bv''.*' .. |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
163 ' STOREB b:buffervar.*' .. |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
164 'w:windowvar = ''wv''.*' .. |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
165 ' STOREW w:windowvar.*' .. |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
166 't:tabpagevar = ''tv''.*' .. |
7fc5d62fe2a5
patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents:
20079
diff
changeset
|
167 ' STORET t:tabpagevar.*' .. |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
168 '&tabstop = 8.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
169 ' STOREOPT &tabstop.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
170 '$ENVVAR = ''ev''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
171 ' STOREENV $ENVVAR.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
172 '@z = ''rv''.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
173 ' STOREREG @z.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
174 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
175 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
176 |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
177 def s:ScriptFuncStoreMember() |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
178 let locallist: list<number> = [] |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
179 locallist[0] = 123 |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
180 let localdict: dict<number> = {} |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
181 localdict["a"] = 456 |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
182 enddef |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
183 |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
184 def Test_disassemble_store_member() |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
185 let res = execute('disass s:ScriptFuncStoreMember') |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
186 assert_match('<SNR>\d*_ScriptFuncStoreMember\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
187 'let locallist: list<number> = []\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
188 '\d NEWLIST size 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
189 '\d STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
190 'locallist\[0\] = 123\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
191 '\d PUSHNR 123\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
192 '\d PUSHNR 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
193 '\d LOAD $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
194 '\d STORELIST\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
195 'let localdict: dict<number> = {}\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
196 '\d NEWDICT size 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
197 '\d STORE $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
198 'localdict\["a"\] = 456\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
199 '\d\+ PUSHNR 456\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
200 '\d\+ PUSHS "a"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
201 '\d\+ LOAD $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
202 '\d\+ STOREDICT\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
203 '\d\+ PUSHNR 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
204 '\d\+ RETURN', |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
205 res) |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
206 enddef |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
207 |
20913
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
208 def s:ListAssign() |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
209 let x: string |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
210 let y: string |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
211 let l: list<any> |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
212 [x, y; l] = g:stringlist |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
213 enddef |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
214 |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
215 def Test_disassemble_list_assign() |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
216 let res = execute('disass s:ListAssign') |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
217 assert_match('<SNR>\d*_ListAssign\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
218 'let x: string\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
219 '\d PUSHS "\[NULL\]"\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
220 '\d STORE $0\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
221 'let y: string\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
222 '\d PUSHS "\[NULL\]"\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
223 '\d STORE $1\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
224 'let l: list<any>\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
225 '\d NEWLIST size 0\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
226 '\d STORE $2\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
227 '\[x, y; l\] = g:stringlist\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
228 '\d LOADG g:stringlist\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
229 '\d CHECKTYPE list stack\[-1\]\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
230 '\d CHECKLEN >= 2\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
231 '\d\+ ITEM 0\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
232 '\d\+ CHECKTYPE string stack\[-1\]\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
233 '\d\+ STORE $0\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
234 '\d\+ ITEM 1\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
235 '\d\+ CHECKTYPE string stack\[-1\]\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
236 '\d\+ STORE $1\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
237 '\d\+ SLICE 2\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
238 '\d\+ STORE $2\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
239 '\d\+ PUSHNR 0\_s*' .. |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
240 '\d\+ RETURN', |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
241 res) |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
242 enddef |
a127db33a075
patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
243 |
20091
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
244 def s:ScriptFuncUnlet() |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
245 g:somevar = "value" |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
246 unlet g:somevar |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
247 unlet! g:somevar |
20099
058b41f85bcb
patch 8.2.0605: Vim9: cannot unlet an environment variable
Bram Moolenaar <Bram@vim.org>
parents:
20091
diff
changeset
|
248 unlet $SOMEVAR |
20091
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
249 enddef |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
250 |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
251 def Test_disassemble_unlet() |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
252 let res = execute('disass s:ScriptFuncUnlet') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
253 assert_match('<SNR>\d*_ScriptFuncUnlet\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
254 'g:somevar = "value"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
255 '\d PUSHS "value"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
256 '\d STOREG g:somevar\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
257 'unlet g:somevar\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
258 '\d UNLET g:somevar\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
259 'unlet! g:somevar\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
260 '\d UNLET! g:somevar\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
261 'unlet $SOMEVAR\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
262 '\d UNLETENV $SOMEVAR\_s*', |
20091
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
263 res) |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
264 enddef |
a64c16ff98b8
patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
20089
diff
changeset
|
265 |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
266 def s:ScriptFuncTry() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
267 try |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
268 echo "yes" |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
269 catch /fail/ |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
270 echo "no" |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
271 finally |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
272 throw "end" |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
273 endtry |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
274 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
275 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
276 def Test_disassemble_try() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
277 let res = execute('disass s:ScriptFuncTry') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
278 assert_match('<SNR>\d*_ScriptFuncTry\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
279 'try\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
280 '\d TRY catch -> \d\+, finally -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
281 'echo "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
282 '\d PUSHS "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
283 '\d ECHO 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
284 'catch /fail/\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
285 '\d JUMP -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
286 '\d PUSH v:exception\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
287 '\d PUSHS "fail"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
288 '\d COMPARESTRING =\~\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
289 '\d JUMP_IF_FALSE -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
290 '\d CATCH\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
291 'echo "no"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
292 '\d\+ PUSHS "no"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
293 '\d\+ ECHO 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
294 'finally\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
295 'throw "end"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
296 '\d\+ PUSHS "end"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
297 '\d\+ THROW\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
298 'endtry\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
299 '\d\+ ENDTRY', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
300 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
301 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
302 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
303 def s:ScriptFuncNew() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
304 let ll = [1, "two", 333] |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
305 let dd = #{one: 1, two: "val"} |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
306 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
307 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
308 def Test_disassemble_new() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
309 let res = execute('disass s:ScriptFuncNew') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
310 assert_match('<SNR>\d*_ScriptFuncNew\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
311 'let ll = \[1, "two", 333\]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
312 '\d PUSHNR 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
313 '\d PUSHS "two"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
314 '\d PUSHNR 333\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
315 '\d NEWLIST size 3\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
316 '\d STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
317 'let dd = #{one: 1, two: "val"}\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
318 '\d PUSHS "one"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
319 '\d PUSHNR 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
320 '\d PUSHS "two"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
321 '\d PUSHS "val"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
322 '\d NEWDICT size 2\_s*', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
323 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
324 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
325 |
20029
8fb1cf4c44d5
patch 8.2.0570: Vim9: no error when omitting type from argument
Bram Moolenaar <Bram@vim.org>
parents:
20019
diff
changeset
|
326 def FuncWithArg(arg: any) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
327 echo arg |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
328 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
329 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
330 func UserFunc() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
331 echo 'nothing' |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
332 endfunc |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
333 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
334 func UserFuncWithArg(arg) |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
335 echo a:arg |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
336 endfunc |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
337 |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
338 def s:ScriptFuncCall(): string |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
339 changenr() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
340 char2nr("abc") |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
341 Test_disassemble_new() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
342 FuncWithArg(343) |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
343 ScriptFuncNew() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
344 s:ScriptFuncNew() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
345 UserFunc() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
346 UserFuncWithArg("foo") |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
347 let FuncRef = function("UserFunc") |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
348 FuncRef() |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
349 let FuncRefWithArg = function("UserFuncWithArg") |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
350 FuncRefWithArg("bar") |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
351 return "yes" |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
352 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
353 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
354 def Test_disassemble_call() |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
355 let res = execute('disass s:ScriptFuncCall') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
356 assert_match('<SNR>\d\+_ScriptFuncCall\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
357 'changenr()\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
358 '\d BCALL changenr(argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
359 '\d DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
360 'char2nr("abc")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
361 '\d PUSHS "abc"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
362 '\d BCALL char2nr(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
363 '\d DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
364 'Test_disassemble_new()\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
365 '\d DCALL Test_disassemble_new(argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
366 '\d DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
367 'FuncWithArg(343)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
368 '\d\+ PUSHNR 343\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
369 '\d\+ DCALL FuncWithArg(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
370 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
371 'ScriptFuncNew()\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
372 '\d\+ DCALL <SNR>\d\+_ScriptFuncNew(argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
373 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
374 's:ScriptFuncNew()\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
375 '\d\+ DCALL <SNR>\d\+_ScriptFuncNew(argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
376 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
377 'UserFunc()\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
378 '\d\+ UCALL UserFunc(argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
379 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
380 'UserFuncWithArg("foo")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
381 '\d\+ PUSHS "foo"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
382 '\d\+ UCALL UserFuncWithArg(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
383 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
384 'let FuncRef = function("UserFunc")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
385 '\d\+ PUSHS "UserFunc"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
386 '\d\+ BCALL function(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
387 '\d\+ STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
388 'FuncRef()\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
389 '\d\+ LOAD $\d\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
390 '\d\+ PCALL (argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
391 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
392 'let FuncRefWithArg = function("UserFuncWithArg")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
393 '\d\+ PUSHS "UserFuncWithArg"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
394 '\d\+ BCALL function(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
395 '\d\+ STORE $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
396 'FuncRefWithArg("bar")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
397 '\d\+ PUSHS "bar"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
398 '\d\+ LOAD $\d\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
399 '\d\+ PCALL (argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
400 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
401 'return "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
402 '\d\+ PUSHS "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
403 '\d\+ RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
404 res) |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
405 enddef |
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
406 |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
407 def s:CreateRefs() |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
408 let local = 'a' |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
409 def Append(arg: string) |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
410 local ..= arg |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
411 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
412 g:Append = Append |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
413 def Get(): string |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
414 return local |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
415 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
416 g:Get = Get |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
417 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
418 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
419 def Test_disassemble_closure() |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
420 CreateRefs() |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
421 let res = execute('disass g:Append') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
422 assert_match('<lambda>\d\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
423 'local ..= arg\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
424 '\d LOADOUTER $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
425 '\d LOAD arg\[-1\]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
426 '\d CONCAT\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
427 '\d STOREOUTER $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
428 '\d PUSHNR 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
429 '\d RETURN', |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
430 res) |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
431 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
432 res = execute('disass g:Get') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
433 assert_match('<lambda>\d\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
434 'return local\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
435 '\d LOADOUTER $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
436 '\d RETURN', |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
437 res) |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
438 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
439 unlet g:Append |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
440 unlet g:Get |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
441 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
442 |
19483
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
443 |
19862
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
444 def EchoArg(arg: string): string |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
445 return arg |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
446 enddef |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
447 def RefThis(): func |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
448 return function('EchoArg') |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
449 enddef |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
450 def s:ScriptPCall() |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
451 RefThis()("text") |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
452 enddef |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
453 |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
454 def Test_disassemble_pcall() |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
455 let res = execute('disass s:ScriptPCall') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
456 assert_match('<SNR>\d\+_ScriptPCall\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
457 'RefThis()("text")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
458 '\d DCALL RefThis(argc 0)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
459 '\d PUSHS "text"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
460 '\d PCALL top (argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
461 '\d PCALL end\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
462 '\d DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
463 '\d PUSHNR 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
464 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
465 res) |
19862
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
466 enddef |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
467 |
846fbbacce3a
patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19703
diff
changeset
|
468 |
20079
336483164ca6
patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
469 def s:FuncWithForwardCall(): string |
336483164ca6
patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
470 return g:DefinedLater("yes") |
19532
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
471 enddef |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
472 |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
473 def DefinedLater(arg: string): string |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
474 return arg |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
475 enddef |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
476 |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
477 def Test_disassemble_update_instr() |
20079
336483164ca6
patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
478 let res = execute('disass s:FuncWithForwardCall') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
479 assert_match('FuncWithForwardCall\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
480 'return g:DefinedLater("yes")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
481 '\d PUSHS "yes"\_s*' .. |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20407
diff
changeset
|
482 '\d DCALL DefinedLater(argc 1)\_s*' .. |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
483 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
484 res) |
19532
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
485 |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21299
diff
changeset
|
486 # Calling the function will change UCALL into the faster DCALL |
19532
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
487 assert_equal('yes', FuncWithForwardCall()) |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
488 |
20079
336483164ca6
patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
489 res = execute('disass s:FuncWithForwardCall') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
490 assert_match('FuncWithForwardCall\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
491 'return g:DefinedLater("yes")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
492 '\d PUSHS "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
493 '\d DCALL DefinedLater(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
494 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
495 res) |
19532
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
496 enddef |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
497 |
b8f778dda1a1
patch 8.2.0323: Vim9: calling a function that is defined later is slow
Bram Moolenaar <Bram@vim.org>
parents:
19528
diff
changeset
|
498 |
19483
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
499 def FuncWithDefault(arg: string = 'default'): string |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
500 return arg |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
501 enddef |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
502 |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
503 def Test_disassemble_call_default() |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
504 let res = execute('disass FuncWithDefault') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
505 assert_match('FuncWithDefault\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
506 '\d PUSHS "default"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
507 '\d STORE arg\[-1]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
508 'return arg\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
509 '\d LOAD arg\[-1]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
510 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
511 res) |
19483
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
512 enddef |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
513 |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19439
diff
changeset
|
514 |
19332
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
515 def HasEval() |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
516 if has("eval") |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
517 echo "yes" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
518 else |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
519 echo "no" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
520 endif |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
521 enddef |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
522 |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
523 def HasNothing() |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
524 if has("nothing") |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
525 echo "yes" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
526 else |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
527 echo "no" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
528 endif |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
529 enddef |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
530 |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
531 def HasSomething() |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
532 if has("nothing") |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
533 echo "nothing" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
534 elseif has("something") |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
535 echo "something" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
536 elseif has("eval") |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
537 echo "eval" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
538 elseif has("less") |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
539 echo "less" |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
540 endif |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
541 enddef |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
542 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
543 def Test_disassemble_const_expr() |
19332
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
544 assert_equal("\nyes", execute('call HasEval()')) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
545 let instr = execute('disassemble HasEval') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
546 assert_match('HasEval\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
547 'if has("eval")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
548 'echo "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
549 '\d PUSHS "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
550 '\d ECHO 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
551 'else\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
552 'echo "no"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
553 'endif\_s*', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
554 instr) |
19332
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
555 assert_notmatch('JUMP', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
556 |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
557 assert_equal("\nno", execute('call HasNothing()')) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
558 instr = execute('disassemble HasNothing') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
559 assert_match('HasNothing\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
560 'if has("nothing")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
561 'echo "yes"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
562 'else\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
563 'echo "no"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
564 '\d PUSHS "no"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
565 '\d ECHO 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
566 'endif', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
567 instr) |
19332
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
568 assert_notmatch('PUSHS "yes"', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
569 assert_notmatch('JUMP', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
570 |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
571 assert_equal("\neval", execute('call HasSomething()')) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
572 instr = execute('disassemble HasSomething') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
573 assert_match('HasSomething.*' .. |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
574 'if has("nothing")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
575 'echo "nothing"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
576 'elseif has("something")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
577 'echo "something"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
578 'elseif has("eval")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
579 'echo "eval"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
580 '\d PUSHS "eval"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
581 '\d ECHO 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
582 'elseif has("less").*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
583 'echo "less"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
584 'endif', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
585 instr) |
19332
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
586 assert_notmatch('PUSHS "nothing"', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
587 assert_notmatch('PUSHS "something"', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
588 assert_notmatch('PUSHS "less"', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
589 assert_notmatch('JUMP', instr) |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
590 enddef |
d6e8a9e80be4
patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19330
diff
changeset
|
591 |
20909
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
592 def ReturnInIf(): string |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
593 if g:cond |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
594 return "yes" |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
595 else |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
596 return "no" |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
597 endif |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
598 enddef |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
599 |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
600 def Test_disassemble_return_in_if() |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
601 let instr = execute('disassemble ReturnInIf') |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
602 assert_match('ReturnInIf\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
603 'if g:cond\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
604 '0 LOADG g:cond\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
605 '1 JUMP_IF_FALSE -> 4\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
606 'return "yes"\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
607 '2 PUSHS "yes"\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
608 '3 RETURN\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
609 'else\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
610 ' return "no"\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
611 '4 PUSHS "no"\_s*' .. |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
612 '5 RETURN$', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
613 instr) |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
614 enddef |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
615 |
19572
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
616 def WithFunc() |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
19904
diff
changeset
|
617 let Funky1: func |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
19904
diff
changeset
|
618 let Funky2: func = function("len") |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
19904
diff
changeset
|
619 let Party2: func = funcref("UserFunc") |
19572
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
620 enddef |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
621 |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
622 def Test_disassemble_function() |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
623 let instr = execute('disassemble WithFunc') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
624 assert_match('WithFunc\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
625 'let Funky1: func\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
626 '0 PUSHFUNC "\[none]"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
627 '1 STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
628 'let Funky2: func = function("len")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
629 '2 PUSHS "len"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
630 '3 BCALL function(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
631 '4 STORE $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
632 'let Party2: func = funcref("UserFunc")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
633 '\d PUSHS "UserFunc"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
634 '\d BCALL funcref(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
635 '\d STORE $2\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
636 '\d PUSHNR 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
637 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
638 instr) |
19572
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
639 enddef |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
640 |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
641 if has('channel') |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
642 def WithChannel() |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
643 let job1: job |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
644 let job2: job = job_start("donothing") |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
645 let chan1: channel |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
646 enddef |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
647 endif |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
648 |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
649 def Test_disassemble_channel() |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
650 CheckFeature channel |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
651 |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
652 let instr = execute('disassemble WithChannel') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
653 assert_match('WithChannel\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
654 'let job1: job\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
655 '\d PUSHJOB "no process"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
656 '\d STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
657 'let job2: job = job_start("donothing")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
658 '\d PUSHS "donothing"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
659 '\d BCALL job_start(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
660 '\d STORE $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
661 'let chan1: channel\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
662 '\d PUSHCHANNEL 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
663 '\d STORE $2\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
664 '\d PUSHNR 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
665 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
666 instr) |
19572
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
667 enddef |
6b6e97d0185e
patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents:
19532
diff
changeset
|
668 |
19334
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
669 def WithLambda(): string |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
670 let F = {a -> "X" .. a .. "X"} |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
671 return F("x") |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
672 enddef |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
673 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
674 def Test_disassemble_lambda() |
19334
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
675 assert_equal("XxX", WithLambda()) |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
676 let instr = execute('disassemble WithLambda') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
677 assert_match('WithLambda\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
678 'let F = {a -> "X" .. a .. "X"}\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
679 '\d FUNCREF <lambda>\d\+ $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
680 '\d STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
681 'return F("x")\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
682 '\d PUSHS "x"\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
683 '\d LOAD $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
684 '\d PCALL (argc 1)\_s*' .. |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20407
diff
changeset
|
685 '\d RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
686 instr) |
21299
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
687 |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
688 let name = substitute(instr, '.*\(<lambda>\d\+\).*', '\1', '') |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
689 instr = execute('disassemble ' .. name) |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
690 assert_match('<lambda>\d\+\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
691 'return "X" .. a .. "X"\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
692 '\d PUSHS "X"\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
693 '\d LOAD arg\[-1\]\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
694 '\d 2STRING stack\[-1\]\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
695 '\d CONCAT\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
696 '\d PUSHS "X"\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
697 '\d CONCAT\_s*' .. |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
698 '\d RETURN', |
883315e762b7
patch 8.2.1200: Vim9: cannot disassemble a lambda function
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
699 instr) |
19334
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
700 enddef |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
701 |
21558
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
702 def NestedOuter() |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
703 def g:Inner() |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
704 echomsg "inner" |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
705 enddef |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
706 enddef |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
707 |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
708 def Test_nested_func() |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
709 let instr = execute('disassemble NestedOuter') |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
710 assert_match('NestedOuter\_s*' .. |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
711 'def g:Inner()\_s*' .. |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
712 'echomsg "inner"\_s*' .. |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
713 'enddef\_s*' .. |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
714 '\d NEWFUNC <lambda>\d\+ Inner\_s*' .. |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
715 '\d PUSHNR 0\_s*' .. |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
716 '\d RETURN', |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
717 instr) |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
718 enddef |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21399
diff
changeset
|
719 |
20029
8fb1cf4c44d5
patch 8.2.0570: Vim9: no error when omitting type from argument
Bram Moolenaar <Bram@vim.org>
parents:
20019
diff
changeset
|
720 def AndOr(arg: any): string |
19334
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
721 if arg == 1 && arg != 2 || arg == 4 |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
722 return 'yes' |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
723 endif |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
724 return 'no' |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
725 enddef |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
726 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
727 def Test_disassemble_and_or() |
19334
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
728 assert_equal("yes", AndOr(1)) |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
729 assert_equal("no", AndOr(2)) |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
730 assert_equal("yes", AndOr(4)) |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
731 let instr = execute('disassemble AndOr') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
732 assert_match('AndOr\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
733 'if arg == 1 && arg != 2 || arg == 4\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
734 '\d LOAD arg\[-1]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
735 '\d PUSHNR 1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
736 '\d COMPAREANY ==\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
737 '\d JUMP_AND_KEEP_IF_FALSE -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
738 '\d LOAD arg\[-1]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
739 '\d PUSHNR 2\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
740 '\d COMPAREANY !=\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
741 '\d JUMP_AND_KEEP_IF_TRUE -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
742 '\d LOAD arg\[-1]\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
743 '\d\+ PUSHNR 4\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
744 '\d\+ COMPAREANY ==\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
745 '\d\+ JUMP_IF_FALSE -> \d\+', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
746 instr) |
19334
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
747 enddef |
61646c189622
patch 8.2.0225: compiling lambda not tested yet
Bram Moolenaar <Bram@vim.org>
parents:
19332
diff
changeset
|
748 |
19336
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
749 def ForLoop(): list<number> |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
750 let res: list<number> |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
751 for i in range(3) |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
752 res->add(i) |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
753 endfor |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
754 return res |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
755 enddef |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
756 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
757 def Test_disassemble_for_loop() |
19336
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
758 assert_equal([0, 1, 2], ForLoop()) |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
759 let instr = execute('disassemble ForLoop') |
20407
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
760 assert_match('ForLoop\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
761 'let res: list<number>\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
762 '\d NEWLIST size 0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
763 '\d STORE $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
764 'for i in range(3)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
765 '\d STORE -1 in $1\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
766 '\d PUSHNR 3\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
767 '\d BCALL range(argc 1)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
768 '\d FOR $1 -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
769 '\d STORE $2\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
770 'res->add(i)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
771 '\d LOAD $0\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
772 '\d LOAD $2\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
773 '\d\+ BCALL add(argc 2)\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
774 '\d\+ DROP\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
775 'endfor\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
776 '\d\+ JUMP -> \d\+\_s*' .. |
33166d945b54
patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Bram Moolenaar <Bram@vim.org>
parents:
20405
diff
changeset
|
777 '\d\+ DROP', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
778 instr) |
19336
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
779 enddef |
1cd6eab65ce0
patch 8.2.0226: compiling for loop not tested
Bram Moolenaar <Bram@vim.org>
parents:
19334
diff
changeset
|
780 |
21188
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
781 def ForLoopEval(): string |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
782 let res = "" |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
783 for str in eval('["one", "two"]') |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
784 res ..= str |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
785 endfor |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
786 return res |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
787 enddef |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
788 |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
789 def Test_disassemble_for_loop_eval() |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
790 assert_equal('onetwo', ForLoopEval()) |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
791 let instr = execute('disassemble ForLoopEval') |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
792 assert_match('ForLoopEval\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
793 'let res = ""\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
794 '\d PUSHS ""\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
795 '\d STORE $0\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
796 'for str in eval(''\["one", "two"\]'')\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
797 '\d STORE -1 in $1\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
798 '\d PUSHS "\["one", "two"\]"\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
799 '\d BCALL eval(argc 1)\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
800 '\d CHECKTYPE list stack\[-1\]\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
801 '\d FOR $1 -> \d\+\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
802 '\d STORE $2\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
803 'res ..= str\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
804 '\d\+ LOAD $0\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
805 '\d\+ LOAD $2\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
806 '\d\+ CHECKTYPE string stack\[-1\]\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
807 '\d\+ CONCAT\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
808 '\d\+ STORE $0\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
809 'endfor\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
810 '\d\+ JUMP -> 6\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
811 '\d\+ DROP\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
812 'return res\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
813 '\d\+ LOAD $0\_s*' .. |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
814 '\d\+ RETURN', |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
815 instr) |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
816 enddef |
d73b6ba20053
patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
817 |
19338
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
818 let g:number = 42 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
819 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
820 def Computing() |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
821 let nr = 3 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
822 let nrres = nr + 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
823 nrres = nr - 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
824 nrres = nr * 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
825 nrres = nr / 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
826 nrres = nr % 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
827 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
828 let anyres = g:number + 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
829 anyres = g:number - 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
830 anyres = g:number * 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
831 anyres = g:number / 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
832 anyres = g:number % 7 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
833 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
834 if has('float') |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
835 let fl = 3.0 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
836 let flres = fl + 7.0 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
837 flres = fl - 7.0 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
838 flres = fl * 7.0 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
839 flres = fl / 7.0 |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
840 endif |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
841 enddef |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
842 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
843 def Test_disassemble_computing() |
19338
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
844 let instr = execute('disassemble Computing') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
845 assert_match('Computing.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
846 'let nr = 3.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
847 '\d STORE 3 in $0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
848 'let nrres = nr + 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
849 '\d LOAD $0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
850 '\d PUSHNR 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
851 '\d OPNR +.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
852 '\d STORE $1.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
853 'nrres = nr - 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
854 '\d OPNR -.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
855 'nrres = nr \* 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
856 '\d OPNR \*.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
857 'nrres = nr / 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
858 '\d OPNR /.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
859 'nrres = nr % 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
860 '\d OPNR %.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
861 'let anyres = g:number + 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
862 '\d LOADG g:number.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
863 '\d PUSHNR 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
864 '\d OPANY +.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
865 '\d STORE $2.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
866 'anyres = g:number - 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
867 '\d OPANY -.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
868 'anyres = g:number \* 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
869 '\d OPANY \*.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
870 'anyres = g:number / 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
871 '\d OPANY /.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
872 'anyres = g:number % 7.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
873 '\d OPANY %.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
874 instr) |
19338
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
875 if has('float') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
876 assert_match('Computing.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
877 'let fl = 3.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
878 '\d PUSHF 3.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
879 '\d STORE $3.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
880 'let flres = fl + 7.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
881 '\d LOAD $3.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
882 '\d PUSHF 7.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
883 '\d OPFLOAT +.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
884 '\d STORE $4.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
885 'flres = fl - 7.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
886 '\d OPFLOAT -.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
887 'flres = fl \* 7.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
888 '\d OPFLOAT \*.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
889 'flres = fl / 7.0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
890 '\d OPFLOAT /.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
891 instr) |
19338
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
892 endif |
ef432264b88a
patch 8.2.0227: compiling a few instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19336
diff
changeset
|
893 enddef |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
894 |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
895 def AddListBlob() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
896 let reslist = [1, 2] + [3, 4] |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
897 let resblob = 0z1122 + 0z3344 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
898 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
899 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
900 def Test_disassemble_add_list_blob() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
901 let instr = execute('disassemble AddListBlob') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
902 assert_match('AddListBlob.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
903 'let reslist = \[1, 2] + \[3, 4].*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
904 '\d PUSHNR 1.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
905 '\d PUSHNR 2.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
906 '\d NEWLIST size 2.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
907 '\d PUSHNR 3.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
908 '\d PUSHNR 4.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
909 '\d NEWLIST size 2.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
910 '\d ADDLIST.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
911 '\d STORE $.*.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
912 'let resblob = 0z1122 + 0z3344.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
913 '\d PUSHBLOB 0z1122.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
914 '\d PUSHBLOB 0z3344.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
915 '\d ADDBLOB.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
916 '\d STORE $.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
917 instr) |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
918 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
919 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
920 let g:aa = 'aa' |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
921 def ConcatString(): string |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
922 let res = g:aa .. "bb" |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
923 return res |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
924 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
925 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
926 def Test_disassemble_concat() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
927 let instr = execute('disassemble ConcatString') |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
928 assert_match('ConcatString.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
929 'let res = g:aa .. "bb".*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
930 '\d LOADG g:aa.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
931 '\d PUSHS "bb".*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
932 '\d 2STRING stack\[-2].*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
933 '\d CONCAT.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
934 '\d STORE $.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
935 instr) |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
936 assert_equal('aabb', ConcatString()) |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
937 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
938 |
21397
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
939 def StringIndex(): number |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
940 let s = "abcd" |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
941 let res = s[1] |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
942 return res |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
943 enddef |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
944 |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
945 def Test_disassemble_string_index() |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
946 let instr = execute('disassemble StringIndex') |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
947 assert_match('StringIndex\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
948 'let s = "abcd"\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
949 '\d PUSHS "abcd"\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
950 '\d STORE $0\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
951 'let res = s\[1]\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
952 '\d LOAD $0\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
953 '\d PUSHNR 1\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
954 '\d STRINDEX\_s*' .. |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
955 '\d STORE $1\_s*', |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
956 instr) |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
957 assert_equal('b', StringIndex()) |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
958 enddef |
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
959 |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
960 def ListIndex(): number |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
961 let l = [1, 2, 3] |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
962 let res = l[1] |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
963 return res |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
964 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
965 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
966 def Test_disassemble_list_index() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
967 let instr = execute('disassemble ListIndex') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
968 assert_match('ListIndex\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
969 'let l = \[1, 2, 3]\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
970 '\d PUSHNR 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
971 '\d PUSHNR 2\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
972 '\d PUSHNR 3\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
973 '\d NEWLIST size 3\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
974 '\d STORE $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
975 'let res = l\[1]\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
976 '\d LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
977 '\d PUSHNR 1\_s*' .. |
21397
62339482daab
patch 8.2.1249: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
978 '\d LISTINDEX\_s*' .. |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
979 '\d STORE $1\_s*', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
980 instr) |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
981 assert_equal(2, ListIndex()) |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
982 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
983 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
984 def DictMember(): number |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
985 let d = #{item: 1} |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
986 let res = d.item |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
987 res = d["item"] |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
988 return res |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
989 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
990 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
991 def Test_disassemble_dict_member() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
992 let instr = execute('disassemble DictMember') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
993 assert_match('DictMember\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
994 'let d = #{item: 1}\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
995 '\d PUSHS "item"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
996 '\d PUSHNR 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
997 '\d NEWDICT size 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
998 '\d STORE $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
999 'let res = d.item\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1000 '\d\+ LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1001 '\d\+ MEMBER item\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1002 '\d\+ STORE $1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1003 'res = d\["item"\]\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1004 '\d\+ LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1005 '\d\+ PUSHS "item"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1006 '\d\+ MEMBER\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1007 '\d\+ STORE $1\_s*', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1008 instr) |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1009 call assert_equal(1, DictMember()) |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1010 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1011 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1012 def NegateNumber(): number |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1013 let nr = 9 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1014 let plus = +nr |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1015 let res = -nr |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1016 return res |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1017 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1018 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1019 def Test_disassemble_negate_number() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1020 let instr = execute('disassemble NegateNumber') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1021 assert_match('NegateNumber\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1022 'let nr = 9\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1023 '\d STORE 9 in $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1024 'let plus = +nr\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1025 '\d LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1026 '\d CHECKNR\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1027 '\d STORE $1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1028 'let res = -nr\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1029 '\d LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1030 '\d NEGATENR\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1031 '\d STORE $2\_s*', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1032 instr) |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1033 call assert_equal(-9, NegateNumber()) |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1034 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1035 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1036 def InvertBool(): bool |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1037 let flag = true |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1038 let invert = !flag |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1039 let res = !!flag |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1040 return res |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1041 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1042 |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1043 def Test_disassemble_invert_bool() |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1044 let instr = execute('disassemble InvertBool') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1045 assert_match('InvertBool\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1046 'let flag = true\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1047 '\d PUSH v:true\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1048 '\d STORE $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1049 'let invert = !flag\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1050 '\d LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1051 '\d INVERT (!val)\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1052 '\d STORE $1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1053 'let res = !!flag\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1054 '\d LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1055 '\d 2BOOL (!!val)\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1056 '\d STORE $2\_s*', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1057 instr) |
19439
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1058 call assert_equal(true, InvertBool()) |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1059 enddef |
b347a6c61090
patch 8.2.0277: Vim9: not all instructions covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19390
diff
changeset
|
1060 |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1061 def Test_disassemble_compare() |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1062 let cases = [ |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1063 ['true == isFalse', 'COMPAREBOOL =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1064 ['true != isFalse', 'COMPAREBOOL !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1065 ['v:none == isNull', 'COMPARESPECIAL =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1066 ['v:none != isNull', 'COMPARESPECIAL !='], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1067 |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1068 ['111 == aNumber', 'COMPARENR =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1069 ['111 != aNumber', 'COMPARENR !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1070 ['111 > aNumber', 'COMPARENR >'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1071 ['111 < aNumber', 'COMPARENR <'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1072 ['111 >= aNumber', 'COMPARENR >='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1073 ['111 <= aNumber', 'COMPARENR <='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1074 ['111 =~ aNumber', 'COMPARENR =\~'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1075 ['111 !~ aNumber', 'COMPARENR !\~'], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1076 |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1077 ['"xx" != aString', 'COMPARESTRING !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1078 ['"xx" > aString', 'COMPARESTRING >'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1079 ['"xx" < aString', 'COMPARESTRING <'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1080 ['"xx" >= aString', 'COMPARESTRING >='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1081 ['"xx" <= aString', 'COMPARESTRING <='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1082 ['"xx" =~ aString', 'COMPARESTRING =\~'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1083 ['"xx" !~ aString', 'COMPARESTRING !\~'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1084 ['"xx" is aString', 'COMPARESTRING is'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1085 ['"xx" isnot aString', 'COMPARESTRING isnot'], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1086 |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1087 ['0z11 == aBlob', 'COMPAREBLOB =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1088 ['0z11 != aBlob', 'COMPAREBLOB !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1089 ['0z11 is aBlob', 'COMPAREBLOB is'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1090 ['0z11 isnot aBlob', 'COMPAREBLOB isnot'], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1091 |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1092 ['[1, 2] == aList', 'COMPARELIST =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1093 ['[1, 2] != aList', 'COMPARELIST !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1094 ['[1, 2] is aList', 'COMPARELIST is'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1095 ['[1, 2] isnot aList', 'COMPARELIST isnot'], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1096 |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1097 ['#{a: 1} == aDict', 'COMPAREDICT =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1098 ['#{a: 1} != aDict', 'COMPAREDICT !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1099 ['#{a: 1} is aDict', 'COMPAREDICT is'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1100 ['#{a: 1} isnot aDict', 'COMPAREDICT isnot'], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1101 |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1102 ['{->33} == {->44}', 'COMPAREFUNC =='], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1103 ['{->33} != {->44}', 'COMPAREFUNC !='], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1104 ['{->33} is {->44}', 'COMPAREFUNC is'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1105 ['{->33} isnot {->44}', 'COMPAREFUNC isnot'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1106 |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1107 ['77 == g:xx', 'COMPAREANY =='], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1108 ['77 != g:xx', 'COMPAREANY !='], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1109 ['77 > g:xx', 'COMPAREANY >'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1110 ['77 < g:xx', 'COMPAREANY <'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1111 ['77 >= g:xx', 'COMPAREANY >='], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1112 ['77 <= g:xx', 'COMPAREANY <='], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1113 ['77 =~ g:xx', 'COMPAREANY =\~'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1114 ['77 !~ g:xx', 'COMPAREANY !\~'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1115 ['77 is g:xx', 'COMPAREANY is'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1116 ['77 isnot g:xx', 'COMPAREANY isnot'], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1117 ] |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1118 let floatDecl = '' |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1119 if has('float') |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1120 cases->extend([ |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1121 ['1.1 == aFloat', 'COMPAREFLOAT =='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1122 ['1.1 != aFloat', 'COMPAREFLOAT !='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1123 ['1.1 > aFloat', 'COMPAREFLOAT >'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1124 ['1.1 < aFloat', 'COMPAREFLOAT <'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1125 ['1.1 >= aFloat', 'COMPAREFLOAT >='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1126 ['1.1 <= aFloat', 'COMPAREFLOAT <='], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1127 ['1.1 =~ aFloat', 'COMPAREFLOAT =\~'], |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1128 ['1.1 !~ aFloat', 'COMPAREFLOAT !\~'], |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1129 ]) |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1130 floatDecl = 'let aFloat = 2.2' |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1131 endif |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1132 |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1133 let nr = 1 |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1134 for case in cases |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21299
diff
changeset
|
1135 # declare local variables to get a non-constant with the right type |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1136 writefile(['def TestCase' .. nr .. '()', |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1137 ' let isFalse = false', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1138 ' let isNull = v:null', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1139 ' let aNumber = 222', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1140 ' let aString = "yy"', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1141 ' let aBlob = 0z22', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1142 ' let aList = [3, 4]', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1143 ' let aDict = #{x: 2}', |
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1144 floatDecl, |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1145 ' if ' .. case[0], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1146 ' echo 42' |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1147 ' endif', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1148 'enddef'], 'Xdisassemble') |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1149 source Xdisassemble |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1150 let instr = execute('disassemble TestCase' .. nr) |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1151 assert_match('TestCase' .. nr .. '.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1152 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1153 '\d \(PUSH\|FUNCREF\).*' .. |
20328
445c2b2ea44b
patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Bram Moolenaar <Bram@vim.org>
parents:
20324
diff
changeset
|
1154 '\d \(PUSH\|FUNCREF\|LOAD\).*' .. |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1155 '\d ' .. case[1] .. '.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1156 '\d JUMP_IF_FALSE -> \d\+.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1157 instr) |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1158 |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1159 nr += 1 |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1160 endfor |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1161 |
19703
f03357f16ffc
patch 8.2.0408: delete() commented out for testing
Bram Moolenaar <Bram@vim.org>
parents:
19579
diff
changeset
|
1162 delete('Xdisassemble') |
19342
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1163 enddef |
8ff84bc1c89b
patch 8.2.0229: compare instructions not tested
Bram Moolenaar <Bram@vim.org>
parents:
19338
diff
changeset
|
1164 |
19880
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1165 def Test_disassemble_compare_const() |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1166 let cases = [ |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1167 ['"xx" == "yy"', false], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1168 ['"aa" == "aa"', true], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1169 ['has("eval") ? true : false', true], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1170 ['has("asdf") ? true : false', false], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1171 ] |
19880
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1172 |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1173 let nr = 1 |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1174 for case in cases |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1175 writefile(['def TestCase' .. nr .. '()', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1176 ' if ' .. case[0], |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1177 ' echo 42' |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1178 ' endif', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1179 'enddef'], 'Xdisassemble') |
19880
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1180 source Xdisassemble |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1181 let instr = execute('disassemble TestCase' .. nr) |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1182 if case[1] |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21299
diff
changeset
|
1183 # condition true, "echo 42" executed |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1184 assert_match('TestCase' .. nr .. '.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1185 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1186 '\d PUSHNR 42.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1187 '\d ECHO 1.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1188 '\d PUSHNR 0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1189 '\d RETURN.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1190 instr) |
19880
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1191 else |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21299
diff
changeset
|
1192 # condition false, function just returns |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1193 assert_match('TestCase' .. nr .. '.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1194 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '[ \n]*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1195 'echo 42[ \n]*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1196 'endif[ \n]*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1197 '\s*\d PUSHNR 0.*' .. |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1198 '\d RETURN.*', |
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1199 instr) |
19880
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1200 endif |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1201 |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1202 nr += 1 |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1203 endfor |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1204 |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1205 delete('Xdisassemble') |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1206 enddef |
50fa63ca3828
patch 8.2.0496: Vim9: disassemble test fails
Bram Moolenaar <Bram@vim.org>
parents:
19862
diff
changeset
|
1207 |
19528
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1208 def s:Execute() |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1209 execute 'help vim9.txt' |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1210 let cmd = 'help vim9.txt' |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1211 execute cmd |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1212 let tag = 'vim9.txt' |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1213 execute 'help ' .. tag |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1214 enddef |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1215 |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1216 def Test_disassemble_execute() |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1217 let res = execute('disass s:Execute') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1218 assert_match('\<SNR>\d*_Execute\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1219 "execute 'help vim9.txt'\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1220 '\d PUSHS "help vim9.txt"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1221 '\d EXECUTE 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1222 "let cmd = 'help vim9.txt'\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1223 '\d PUSHS "help vim9.txt"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1224 '\d STORE $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1225 'execute cmd\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1226 '\d LOAD $0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1227 '\d EXECUTE 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1228 "let tag = 'vim9.txt'\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1229 '\d PUSHS "vim9.txt"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1230 '\d STORE $1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1231 "execute 'help ' .. tag\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1232 '\d\+ PUSHS "help "\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1233 '\d\+ LOAD $1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1234 '\d\+ CONCAT\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1235 '\d\+ EXECUTE 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1236 '\d\+ PUSHNR 0\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1237 '\d\+ RETURN', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1238 res) |
19528
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1239 enddef |
3b026343f398
patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents:
19483
diff
changeset
|
1240 |
20142
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1241 def s:Echomsg() |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1242 echomsg 'some' 'message' |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1243 echoerr 'went' .. 'wrong' |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1244 enddef |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1245 |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1246 def Test_disassemble_echomsg() |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1247 let res = execute('disass s:Echomsg') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1248 assert_match('\<SNR>\d*_Echomsg\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1249 "echomsg 'some' 'message'\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1250 '\d PUSHS "some"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1251 '\d PUSHS "message"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1252 '\d ECHOMSG 2\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1253 "echoerr 'went' .. 'wrong'\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1254 '\d PUSHS "wentwrong"\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1255 '\d ECHOERR 1\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1256 '\d PUSHNR 0\_s*' .. |
20142
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1257 '\d RETURN', |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1258 res) |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1259 enddef |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20099
diff
changeset
|
1260 |
19579
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1261 def SomeStringArg(arg: string) |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1262 echo arg |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1263 enddef |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1264 |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1265 def SomeAnyArg(arg: any) |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1266 echo arg |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1267 enddef |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1268 |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1269 def SomeStringArgAndReturn(arg: string): string |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1270 return arg |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1271 enddef |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1272 |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1273 def Test_display_func() |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1274 let res1 = execute('function SomeStringArg') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1275 assert_match('.* def SomeStringArg(arg: string)\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1276 '\d *echo arg.*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1277 ' *enddef', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1278 res1) |
19579
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1279 |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1280 let res2 = execute('function SomeAnyArg') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1281 assert_match('.* def SomeAnyArg(arg: any)\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1282 '\d *echo arg\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1283 ' *enddef', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1284 res2) |
19579
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1285 |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1286 let res3 = execute('function SomeStringArgAndReturn') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1287 assert_match('.* def SomeStringArgAndReturn(arg: string): string\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1288 '\d *return arg\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1289 ' *enddef', |
20019
e9af5a09a55b
patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
1290 res3) |
19579
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1291 enddef |
aae19dd172c0
patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents:
19572
diff
changeset
|
1292 |
20339
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1293 def Test_vim9script_forward_func() |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1294 let lines =<< trim END |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1295 vim9script |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1296 def FuncOne(): string |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1297 return FuncTwo() |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1298 enddef |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1299 def FuncTwo(): string |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1300 return 'two' |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1301 enddef |
20945
0653b9b72091
patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents:
20913
diff
changeset
|
1302 g:res_FuncOne = execute('disass FuncOne') |
20339
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1303 END |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1304 writefile(lines, 'Xdisassemble') |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1305 source Xdisassemble |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1306 |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21299
diff
changeset
|
1307 # check that the first function calls the second with DCALL |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1308 assert_match('\<SNR>\d*_FuncOne\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1309 'return FuncTwo()\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1310 '\d DCALL <SNR>\d\+_FuncTwo(argc 0)\_s*' .. |
20339
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1311 '\d RETURN', |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1312 g:res_FuncOne) |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1313 |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1314 delete('Xdisassemble') |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1315 unlet g:res_FuncOne |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1316 enddef |
7587d892c00c
patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20336
diff
changeset
|
1317 |
20305
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1318 def s:ConcatStrings(): string |
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1319 return 'one' .. 'two' .. 'three' |
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1320 enddef |
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1321 |
20324
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1322 def s:ComputeConst(): number |
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1323 return 2 + 3 * 4 / 6 + 7 |
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1324 enddef |
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1325 |
20336
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1326 def s:ComputeConstParen(): number |
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1327 return ((2 + 4) * (8 / 2)) / (3 + 4) |
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1328 enddef |
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1329 |
20305
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1330 def Test_simplify_const_expr() |
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1331 let res = execute('disass s:ConcatStrings') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1332 assert_match('<SNR>\d*_ConcatStrings\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1333 "return 'one' .. 'two' .. 'three'\\_s*" .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1334 '\d PUSHS "onetwothree"\_s*' .. |
20305
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1335 '\d RETURN', |
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1336 res) |
20324
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1337 |
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1338 res = execute('disass s:ComputeConst') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1339 assert_match('<SNR>\d*_ComputeConst\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1340 'return 2 + 3 \* 4 / 6 + 7\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1341 '\d PUSHNR 11\_s*' .. |
20324
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1342 '\d RETURN', |
23188ef99fc2
patch 8.2.0717: Vim9: postponed constant expressions does not scale
Bram Moolenaar <Bram@vim.org>
parents:
20305
diff
changeset
|
1343 res) |
20336
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1344 |
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1345 res = execute('disass s:ComputeConstParen') |
20405
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1346 assert_match('<SNR>\d*_ComputeConstParen\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1347 'return ((2 + 4) \* (8 / 2)) / (3 + 4)\_s*' .. |
83573e907c8b
patch 8.2.0757: Vim9: no test for MEMBER instruction
Bram Moolenaar <Bram@vim.org>
parents:
20397
diff
changeset
|
1348 '\d PUSHNR 3\>\_s*' .. |
20336
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1349 '\d RETURN', |
2fd980fb9ab3
patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Bram Moolenaar <Bram@vim.org>
parents:
20328
diff
changeset
|
1350 res) |
20305
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1351 enddef |
9a5e2370df0e
patch 8.2.0708: Vim9: constant expressions are not simplified
Bram Moolenaar <Bram@vim.org>
parents:
20301
diff
changeset
|
1352 |
21232
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1353 def s:CallAppend() |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1354 eval "some text"->append(2) |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1355 enddef |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1356 |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1357 def Test_shuffle() |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1358 let res = execute('disass s:CallAppend') |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1359 assert_match('<SNR>\d*_CallAppend\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1360 'eval "some text"->append(2)\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1361 '\d PUSHS "some text"\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1362 '\d PUSHNR 2\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1363 '\d SHUFFLE 2 up 1\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1364 '\d BCALL append(argc 2)\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1365 '\d DROP\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1366 '\d PUSHNR 0\_s*' .. |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1367 '\d RETURN', |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1368 res) |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1369 enddef |
3f14e0d4a4dd
patch 8.2.1167: Vim9: builtin function method call only supports first arg
Bram Moolenaar <Bram@vim.org>
parents:
21188
diff
changeset
|
1370 |
19330
9c8b803fe598
patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1371 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |