annotate src/testdir/test_vim9_script.vim @ 24077:5006d95ef82d v8.2.2580

patch 8.2.2580: Vim9: checking vararg type may be wrong Commit: https://github.com/vim/vim/commit/e3ffcd9902efc756178900d9bd972c74a09c3fcd Author: Bram Moolenaar <Bram@vim.org> Date: Mon Mar 8 21:47:13 2021 +0100 patch 8.2.2580: Vim9: checking vararg type may be wrong Problem: Vim9: checking vararg type is wrong when function is auto-loaded. Solution: Use the member type. (closes https://github.com/vim/vim/issues/7933)
author Bram Moolenaar <Bram@vim.org>
date Mon, 08 Mar 2021 22:00:03 +0100
parents da8347e453b4
children a9ff8368d35f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Test various aspects of the Vim9 script language.
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2
19183
1168c53d1b49 patch 8.2.0150: cannot define python function when using :execute
Bram Moolenaar <Bram@vim.org>
parents: 19181
diff changeset
3 source check.vim
20881
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
4 source term_util.vim
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
5 source view_util.vim
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents: 20142
diff changeset
6 source vim9.vim
21979
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
7 source shared.vim
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
8
21901
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
9 def Test_range_only()
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
10 new
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
11 setline(1, ['blah', 'Blah'])
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
12 :/Blah/
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
13 assert_equal(2, getcurpos()[1])
21939
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
14 bwipe!
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
15
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
16 # without range commands use current line
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
17 new
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
18 setline(1, ['one', 'two', 'three'])
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
19 :2
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
20 print
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
21 assert_equal('two', Screenline(&lines))
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
22 :3
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
23 list
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
24 assert_equal('three$', Screenline(&lines))
23954
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
25
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
26 # missing command does not print the line
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
27 var lines =<< trim END
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
28 vim9script
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
29 :1|
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
30 assert_equal('three$', Screenline(&lines))
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
31 :|
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
32 assert_equal('three$', Screenline(&lines))
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
33 END
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
34 CheckScriptSuccess(lines)
9c8a20cfa540 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Bram Moolenaar <Bram@vim.org>
parents: 23950
diff changeset
35
21939
8350bdbdbb28 patch 8.2.1519: Vim9: Ex command default range is not set
Bram Moolenaar <Bram@vim.org>
parents: 21937
diff changeset
36 bwipe!
23197
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
37
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
38 # won't generate anything
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
39 if false
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
40 :123
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
41 endif
21901
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
42 enddef
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
43
20419
d54dfb5f12db patch 8.2.0764: Vim9: assigning to option not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20401
diff changeset
44 let g:alist = [7]
d54dfb5f12db patch 8.2.0764: Vim9: assigning to option not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20401
diff changeset
45 let g:astring = 'text'
21365
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
46 let g:anumber = 123
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
47
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
48 def Test_delfunction()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
49 # Check function is defined in script namespace
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
50 CheckScriptSuccess([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
51 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
52 'func CheckMe()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
53 ' return 123',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
54 'endfunc',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
55 'assert_equal(123, s:CheckMe())',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
56 ])
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
57
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
58 # Check function in script namespace cannot be deleted
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
59 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
60 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
61 'func DeleteMe1()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
62 'endfunc',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
63 'delfunction DeleteMe1',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
64 ], 'E1084:')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
65 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
66 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
67 'func DeleteMe2()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
68 'endfunc',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
69 'def DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
70 ' delfunction DeleteMe2',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
71 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
72 'DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
73 ], 'E1084:')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
74 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
75 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
76 'def DeleteMe3()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
77 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
78 'delfunction DeleteMe3',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
79 ], 'E1084:')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
80 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
81 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
82 'def DeleteMe4()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
83 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
84 'def DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
85 ' delfunction DeleteMe4',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
86 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
87 'DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
88 ], 'E1084:')
21479
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
89
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
90 # Check that global :def function can be replaced and deleted
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
91 var lines =<< trim END
21479
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
92 vim9script
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
93 def g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
94 return "yes"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
95 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
96 assert_equal("yes", g:Global())
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
97 def! g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
98 return "no"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
99 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
100 assert_equal("no", g:Global())
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
101 delfunc g:Global
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
102 assert_false(exists('*g:Global'))
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
103 END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
104 CheckScriptSuccess(lines)
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
105
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
106 # Check that global function can be replaced by a :def function and deleted
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
107 lines =<< trim END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
108 vim9script
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
109 func g:Global()
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
110 return "yes"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
111 endfunc
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
112 assert_equal("yes", g:Global())
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
113 def! g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
114 return "no"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
115 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
116 assert_equal("no", g:Global())
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
117 delfunc g:Global
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
118 assert_false(exists('*g:Global'))
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
119 END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
120 CheckScriptSuccess(lines)
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
121
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
122 # Check that global :def function can be replaced by a function and deleted
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
123 lines =<< trim END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
124 vim9script
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
125 def g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
126 return "yes"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
127 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
128 assert_equal("yes", g:Global())
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
129 func! g:Global()
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
130 return "no"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
131 endfunc
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
132 assert_equal("no", g:Global())
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
133 delfunc g:Global
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
134 assert_false(exists('*g:Global'))
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
135 END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
136 CheckScriptSuccess(lines)
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
137 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
138
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
139 def Test_wrong_type()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
140 CheckDefFailure(['var name: list<nothing>'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
141 CheckDefFailure(['var name: list<list<nothing>>'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
142 CheckDefFailure(['var name: dict<nothing>'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
143 CheckDefFailure(['var name: dict<dict<nothing>>'], 'E1010:')
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
144
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
145 CheckDefFailure(['var name: dict<number'], 'E1009:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
146 CheckDefFailure(['var name: dict<list<number>'], 'E1009:')
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
147
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
148 CheckDefFailure(['var name: ally'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
149 CheckDefFailure(['var name: bram'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
150 CheckDefFailure(['var name: cathy'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
151 CheckDefFailure(['var name: dom'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
152 CheckDefFailure(['var name: freddy'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
153 CheckDefFailure(['var name: john'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
154 CheckDefFailure(['var name: larry'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
155 CheckDefFailure(['var name: ned'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
156 CheckDefFailure(['var name: pam'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
157 CheckDefFailure(['var name: sam'], 'E1010:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
158 CheckDefFailure(['var name: vim'], 'E1010:')
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
159
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
160 CheckDefFailure(['var Ref: number', 'Ref()'], 'E1085:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
161 CheckDefFailure(['var Ref: string', 'var res = Ref()'], 'E1085:')
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
162 enddef
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
163
22529
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
164 def Test_script_wrong_type()
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
165 var lines =<< trim END
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
166 vim9script
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
167 var s:dict: dict<string>
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
168 s:dict['a'] = ['x']
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
169 END
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
170 CheckScriptFailure(lines, 'E1012: Type mismatch; expected string but got list<string>', 3)
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
171 enddef
35ef9b0a81a3 patch 8.2.1813: Vim9: can assign wrong type to script dict
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
172
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
173 def Test_const()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
174 CheckDefFailure(['final name = 234', 'name = 99'], 'E1018:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
175 CheckDefFailure(['final one = 234', 'var one = 99'], 'E1017:')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
176 CheckDefFailure(['final list = [1, 2]', 'var list = [3, 4]'], 'E1017:')
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
177 CheckDefFailure(['final two'], 'E1125:')
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
178 CheckDefFailure(['final &option'], 'E996:')
22266
23f5750146d9 patch 8.2.1682: Vim9: const works in an unexpected way
Bram Moolenaar <Bram@vim.org>
parents: 22264
diff changeset
179
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
180 var lines =<< trim END
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
181 final list = [1, 2, 3]
22266
23f5750146d9 patch 8.2.1682: Vim9: const works in an unexpected way
Bram Moolenaar <Bram@vim.org>
parents: 22264
diff changeset
182 list[0] = 4
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
183 list->assert_equal([4, 2, 3])
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
184 const other = [5, 6, 7]
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
185 other->assert_equal([5, 6, 7])
22274
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
186
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
187 var varlist = [7, 8]
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
188 const constlist = [1, varlist, 3]
22274
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
189 varlist[0] = 77
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
190 # TODO: does not work yet
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
191 # constlist[1][1] = 88
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
192 var cl = constlist[1]
22274
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
193 cl[1] = 88
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
194 constlist->assert_equal([1, [77, 88], 3])
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
195
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
196 var vardict = {five: 5, six: 6}
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
197 const constdict = {one: 1, two: vardict, three: 3}
22274
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
198 vardict['five'] = 55
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
199 # TODO: does not work yet
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
200 # constdict['two']['six'] = 66
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
201 var cd = constdict['two']
22274
1634ca41e4d3 patch 8.2.1686: Vim9: "const!" not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 22272
diff changeset
202 cd['six'] = 66
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
203 constdict->assert_equal({one: 1, two: {five: 55, six: 66}, three: 3})
22266
23f5750146d9 patch 8.2.1682: Vim9: const works in an unexpected way
Bram Moolenaar <Bram@vim.org>
parents: 22264
diff changeset
204 END
23f5750146d9 patch 8.2.1682: Vim9: const works in an unexpected way
Bram Moolenaar <Bram@vim.org>
parents: 22264
diff changeset
205 CheckDefAndScriptSuccess(lines)
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
206 enddef
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
207
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
208 def Test_const_bang()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
209 var lines =<< trim END
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
210 const var = 234
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
211 var = 99
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
212 END
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
213 CheckDefExecFailure(lines, 'E1018:', 2)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
214 CheckScriptFailure(['vim9script'] + lines, 'E46:', 3)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
215
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
216 lines =<< trim END
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
217 const ll = [2, 3, 4]
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
218 ll[0] = 99
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
219 END
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
220 CheckDefExecFailure(lines, 'E1119:', 2)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
221 CheckScriptFailure(['vim9script'] + lines, 'E741:', 3)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
222
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
223 lines =<< trim END
22391
a9fb7efa31d6 patch 8.2.1744: Vim9: using ":const!" is weird
Bram Moolenaar <Bram@vim.org>
parents: 22387
diff changeset
224 const ll = [2, 3, 4]
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
225 ll[3] = 99
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
226 END
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
227 CheckDefExecFailure(lines, 'E1118:', 2)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
228 CheckScriptFailure(['vim9script'] + lines, 'E684:', 3)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
229
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
230 lines =<< trim END
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
231 const dd = {one: 1, two: 2}
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
232 dd["one"] = 99
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
233 END
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
234 CheckDefExecFailure(lines, 'E1121:', 2)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
235 CheckScriptFailure(['vim9script'] + lines, 'E741:', 3)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
236
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
237 lines =<< trim END
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
238 const dd = {one: 1, two: 2}
22272
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
239 dd["three"] = 99
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
240 END
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
241 CheckDefExecFailure(lines, 'E1120:')
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
242 CheckScriptFailure(['vim9script'] + lines, 'E741:', 3)
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
243 enddef
eb1f5f618c75 patch 8.2.1685: Vim9: cannot declare a constant value
Bram Moolenaar <Bram@vim.org>
parents: 22266
diff changeset
244
20982
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
245 def Test_range_no_colon()
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
246 CheckDefFailure(['%s/a/b/'], 'E1050:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
247 CheckDefFailure(['+ s/a/b/'], 'E1050:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
248 CheckDefFailure(['- s/a/b/'], 'E1050:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
249 CheckDefFailure(['. s/a/b/'], 'E1050:')
20982
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
250 enddef
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
251
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
252
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
253 def Test_block()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
254 var outer = 1
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
255 {
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
256 var inner = 2
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
257 assert_equal(1, outer)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
258 assert_equal(2, inner)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
259 }
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
260 assert_equal(1, outer)
24027
8298c0798040 patch 8.2.2555: Vim9: missing test for 8.2.2553
Bram Moolenaar <Bram@vim.org>
parents: 24025
diff changeset
261
8298c0798040 patch 8.2.2555: Vim9: missing test for 8.2.2553
Bram Moolenaar <Bram@vim.org>
parents: 24025
diff changeset
262 {|echo 'yes'|}
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
263 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
264
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
265 def Test_block_failure()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
266 CheckDefFailure(['{', 'var inner = 1', '}', 'echo inner'], 'E1001:')
22264
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
267 CheckDefFailure(['}'], 'E1025:')
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
268 CheckDefFailure(['{', 'echo 1'], 'E1026:')
e0a4d029cb87 patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents: 22250
diff changeset
269 enddef
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
270
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
271 def Test_block_local_vars()
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
272 var lines =<< trim END
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
273 vim9script
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
274 v:testing = 1
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
275 if true
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
276 var text = ['hello']
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
277 def SayHello(): list<string>
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
278 return text
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
279 enddef
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
280 def SetText(v: string)
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
281 text = [v]
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
282 enddef
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
283 endif
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
284
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
285 if true
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
286 var text = ['again']
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
287 def SayAgain(): list<string>
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
288 return text
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
289 enddef
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
290 endif
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
291
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
292 # test that the "text" variables are not cleaned up
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
293 test_garbagecollect_now()
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
294
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
295 defcompile
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
296
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
297 assert_equal(['hello'], SayHello())
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
298 assert_equal(['again'], SayAgain())
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
299
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
300 SetText('foobar')
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
301 assert_equal(['foobar'], SayHello())
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
302
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
303 call writefile(['ok'], 'Xdidit')
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
304 qall!
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
305 END
22602
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
306
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
307 # need to execute this with a separate Vim instance to avoid the current
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
308 # context gets garbage collected.
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
309 writefile(lines, 'Xscript')
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
310 RunVim([], [], '-S Xscript')
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
311 assert_equal(['ok'], readfile('Xdidit'))
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
312
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
313 delete('Xscript')
2c77ec32deeb patch 8.2.1849: Vim9: garbage collection frees block-local variables
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
314 delete('Xdidit')
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
315 enddef
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
316
22643
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
317 def Test_block_local_vars_with_func()
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
318 var lines =<< trim END
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
319 vim9script
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
320 if true
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
321 var foo = 'foo'
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
322 if true
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
323 var bar = 'bar'
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
324 def Func(): list<string>
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
325 return [foo, bar]
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
326 enddef
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
327 endif
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
328 endif
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
329 # function is compiled here, after blocks have finished, can still access
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
330 # "foo" and "bar"
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
331 assert_equal(['foo', 'bar'], Func())
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
332 END
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
333 CheckScriptSuccess(lines)
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
334 enddef
71b57779177d patch 8.2.1870: Vim9: no need to keep all script variables
Bram Moolenaar <Bram@vim.org>
parents: 22621
diff changeset
335
21375
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
336 func g:NoSuchFunc()
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
337 echo 'none'
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
338 endfunc
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
339
23576
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
340 def Test_try_catch_throw()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
341 var l = []
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
342 try # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
343 add(l, '1')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
344 throw 'wrong'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
345 add(l, '2')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
346 catch # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
347 add(l, v:exception)
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
348 finally # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
349 add(l, '3')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
350 endtry # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
351 assert_equal(['1', 'wrong', '3'], l)
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
352
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
353 l = []
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
354 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
355 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
356 add(l, '1')
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
357 throw 'wrong'
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
358 add(l, '2')
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
359 catch /right/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
360 add(l, v:exception)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
361 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
362 catch /wrong/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
363 add(l, 'caught')
22395
03249b8976a9 patch 8.2.1746: Vim9: cannot use "fina" for "finally"
Bram Moolenaar <Bram@vim.org>
parents: 22391
diff changeset
364 fina
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
365 add(l, 'finally')
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
366 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
367 assert_equal(['1', 'caught', 'finally'], l)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
368
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
369 var n: number
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
370 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
371 n = l[3]
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
372 catch /E684:/
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
373 n = 99
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
374 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
375 assert_equal(99, n)
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
376
23440
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
377 var done = 'no'
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
378 if 0
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
379 try | catch | endtry
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
380 else
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
381 done = 'yes'
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
382 endif
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
383 assert_equal('yes', done)
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
384
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
385 done = 'no'
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
386 if 1
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
387 done = 'yes'
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
388 else
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
389 try | catch | endtry
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
390 done = 'never'
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
391 endif
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
392 assert_equal('yes', done)
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
393
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
394 if 1
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
395 else
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
396 try | catch /pat/ | endtry
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
397 try | catch /pat/
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
398 endtry
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
399 try
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
400 catch /pat/ | endtry
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
401 try
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
402 catch /pat/
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
403 endtry
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
404 endif
b0587f7ec422 patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
405
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
406 try
21833
e3f9528bddda patch 8.2.1466: Vim9: cannot index or slice a variable with type "any"
Bram Moolenaar <Bram@vim.org>
parents: 21831
diff changeset
407 # string slice returns a string, not a number
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
408 n = g:astring[3]
22284
6b385c2b9ff5 patch 8.2.1691: Vim9: list<any> is not accepted where list<number> is expected
Bram Moolenaar <Bram@vim.org>
parents: 22274
diff changeset
409 catch /E1012:/
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
410 n = 77
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
411 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
412 assert_equal(77, n)
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
413
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
414 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
415 n = l[g:astring]
22284
6b385c2b9ff5 patch 8.2.1691: Vim9: list<any> is not accepted where list<number> is expected
Bram Moolenaar <Bram@vim.org>
parents: 22274
diff changeset
416 catch /E1012:/
21831
d8422de73113 patch 8.2.1465: Vim9: subscript not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21821
diff changeset
417 n = 88
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
418 endtry
21831
d8422de73113 patch 8.2.1465: Vim9: subscript not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21821
diff changeset
419 assert_equal(88, n)
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
420
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
421 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
422 n = s:does_not_exist
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
423 catch /E121:/
21365
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
424 n = 111
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
425 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
426 assert_equal(111, n)
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
427
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
428 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
429 n = g:does_not_exist
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
430 catch /E121:/
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
431 n = 121
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
432 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
433 assert_equal(121, n)
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
434
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
435 var d = {one: 1}
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
436 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
437 n = d[g:astring]
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
438 catch /E716:/
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
439 n = 222
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
440 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
441 assert_equal(222, n)
21365
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
442
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
443 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
444 n = -g:astring
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
445 catch /E39:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
446 n = 233
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
447 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
448 assert_equal(233, n)
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
449
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
450 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
451 n = +g:astring
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
452 catch /E1030:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
453 n = 244
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
454 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
455 assert_equal(244, n)
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
456
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
457 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
458 n = +g:alist
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
459 catch /E745:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
460 n = 255
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
461 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
462 assert_equal(255, n)
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
463
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
464 var nd: dict<any>
21365
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
465 try
23827
7e0d8f1cae7d patch 8.2.2455: Vim9: key type for literal dict and indexing is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 23790
diff changeset
466 nd = {[g:alist]: 1}
7e0d8f1cae7d patch 8.2.2455: Vim9: key type for literal dict and indexing is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 23790
diff changeset
467 catch /E1105:/
21365
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
468 n = 266
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
469 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
470 assert_equal(266, n)
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
471
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
472 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
473 [n] = [1, 2, 3]
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
474 catch /E1093:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
475 n = 277
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
476 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
477 assert_equal(277, n)
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
478
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
479 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
480 &ts = g:astring
22284
6b385c2b9ff5 patch 8.2.1691: Vim9: list<any> is not accepted where list<number> is expected
Bram Moolenaar <Bram@vim.org>
parents: 22274
diff changeset
481 catch /E1012:/
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
482 n = 288
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
483 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
484 assert_equal(288, n)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
485
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
486 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
487 &backspace = 'asdf'
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
488 catch /E474:/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
489 n = 299
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
490 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
491 assert_equal(299, n)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
492
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
493 l = [1]
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
494 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
495 l[3] = 3
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
496 catch /E684:/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
497 n = 300
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
498 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
499 assert_equal(300, n)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
500
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
501 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
502 unlet g:does_not_exist
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
503 catch /E108:/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
504 n = 322
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
505 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
506 assert_equal(322, n)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
507
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
508 try
22936
00b0275ffe7f patch 8.2.2015: Vim9: literal dict #{} is not like any other language
Bram Moolenaar <Bram@vim.org>
parents: 22810
diff changeset
509 d = {text: 1, [g:astring]: 2}
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
510 catch /E721:/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
511 n = 333
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
512 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
513 assert_equal(333, n)
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
514
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
515 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
516 l = DeletedFunc()
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
517 catch /E933:/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
518 n = 344
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
519 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
520 assert_equal(344, n)
21375
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
521
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
522 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
523 echo len(v:true)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
524 catch /E701:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
525 n = 355
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
526 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
527 assert_equal(355, n)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
528
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
529 var P = function('g:NoSuchFunc')
21375
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
530 delfunc g:NoSuchFunc
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
531 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
532 echo P()
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
533 catch /E117:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
534 n = 366
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
535 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
536 assert_equal(366, n)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
537
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
538 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
539 echo g:NoSuchFunc()
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
540 catch /E117:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
541 n = 377
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
542 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
543 assert_equal(377, n)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
544
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
545 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
546 echo g:alist + 4
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
547 catch /E745:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
548 n = 388
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
549 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
550 assert_equal(388, n)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
551
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
552 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
553 echo 4 + g:alist
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
554 catch /E745:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
555 n = 399
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
556 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
557 assert_equal(399, n)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
558
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
559 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
560 echo g:alist.member
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
561 catch /E715:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
562 n = 400
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
563 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
564 assert_equal(400, n)
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
565
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
566 try
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
567 echo d.member
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
568 catch /E716:/
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
569 n = 411
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
570 endtry
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
571 assert_equal(411, n)
23921
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
572
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
573 var counter = 0
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
574 for i in range(4)
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
575 try
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
576 eval [][0]
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
577 catch
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
578 endtry
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
579 counter += 1
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
580 endfor
a834f9c082e3 patch 8.2.2503: Vim9: a caught error may leave something on the stack
Bram Moolenaar <Bram@vim.org>
parents: 23886
diff changeset
581 assert_equal(4, counter)
23994
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
582
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
583 # return in finally after empty catch
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
584 def ReturnInFinally(): number
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
585 try
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
586 finally
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
587 return 4
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
588 endtry
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
589 return 2
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
590 enddef
3daeb2060f25 patch 8.2.2539: Vim9: return from finally block causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 23980
diff changeset
591 assert_equal(4, ReturnInFinally())
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
592 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
593
24002
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
594 def Test_nocatch_return_in_try()
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
595 # return in try block returns normally
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
596 def ReturnInTry(): string
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
597 try
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
598 return '"some message"'
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
599 catch
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
600 endtry
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
601 return 'not reached'
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
602 enddef
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
603 exe 'echoerr ' .. ReturnInTry()
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
604 enddef
5dbed4837ea3 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Bram Moolenaar <Bram@vim.org>
parents: 23994
diff changeset
605
23656
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
606 def Test_cnext_works_in_catch()
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
607 var lines =<< trim END
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
608 vim9script
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
609 au BufEnter * eval 0
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
610 writefile(['text'], 'Xfile1')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
611 writefile(['text'], 'Xfile2')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
612 var items = [
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
613 {lnum: 1, filename: 'Xfile1', valid: true},
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
614 {lnum: 1, filename: 'Xfile2', valid: true}
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
615 ]
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
616 setqflist([], ' ', {items: items})
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
617 cwindow
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
618
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
619 def CnextOrCfirst()
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
620 # if cnext fails, cfirst is used
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
621 try
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
622 cnext
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
623 catch
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
624 cfirst
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
625 endtry
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
626 enddef
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
627
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
628 CnextOrCfirst()
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
629 CnextOrCfirst()
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
630 writefile([getqflist({idx: 0}).idx], 'Xresult')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
631 qall
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
632 END
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
633 writefile(lines, 'XCatchCnext')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
634 RunVim([], [], '--clean -S XCatchCnext')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
635 assert_equal(['1'], readfile('Xresult'))
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
636
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
637 delete('Xfile1')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
638 delete('Xfile2')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
639 delete('XCatchCnext')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
640 delete('Xresult')
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
641 enddef
c6f7df86cd9d patch 8.2.2370: Vim9: command fails in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23618
diff changeset
642
23576
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
643 def Test_throw_skipped()
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
644 if 0
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
645 throw dontgethere
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
646 endif
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
647 enddef
4cd173b3d572 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Bram Moolenaar <Bram@vim.org>
parents: 23571
diff changeset
648
23618
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
649 def Test_nocatch_throw_silenced()
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
650 var lines =<< trim END
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
651 vim9script
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
652 def Func()
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
653 throw 'error'
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
654 enddef
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
655 silent! Func()
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
656 END
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
657 writefile(lines, 'XthrowSilenced')
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
658 source XthrowSilenced
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
659 delete('XthrowSilenced')
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
660 enddef
d228ca435f3a patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Bram Moolenaar <Bram@vim.org>
parents: 23576
diff changeset
661
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
662 def DeletedFunc(): list<any>
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
663 return ['delete me']
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
664 enddef
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
665 defcompile
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
666 delfunc DeletedFunc
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
667
19445
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
668 def ThrowFromDef()
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
669 throw "getout" # comment
19445
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
670 enddef
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
671
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
672 func CatchInFunc()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
673 try
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
674 call ThrowFromDef()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
675 catch
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
676 let g:thrown_func = v:exception
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
677 endtry
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
678 endfunc
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
679
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
680 def CatchInDef()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
681 try
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
682 ThrowFromDef()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
683 catch
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
684 g:thrown_def = v:exception
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
685 endtry
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
686 enddef
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
687
19459
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
688 def ReturnFinally(): string
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
689 try
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
690 return 'intry'
22395
03249b8976a9 patch 8.2.1746: Vim9: cannot use "fina" for "finally"
Bram Moolenaar <Bram@vim.org>
parents: 22391
diff changeset
691 finall
19459
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
692 g:in_finally = 'finally'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
693 endtry
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
694 return 'end'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
695 enddef
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
696
19445
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
697 def Test_try_catch_nested()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
698 CatchInFunc()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
699 assert_equal('getout', g:thrown_func)
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
700
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
701 CatchInDef()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
702 assert_equal('getout', g:thrown_def)
19459
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
703
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
704 assert_equal('intry', ReturnFinally())
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
705 assert_equal('finally', g:in_finally)
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
706 enddef
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
707
22302
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
708 def TryOne(): number
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
709 try
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
710 return 0
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
711 catch
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
712 endtry
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
713 return 0
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
714 enddef
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
715
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
716 def TryTwo(n: number): string
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
717 try
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
718 var x = {}
22302
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
719 catch
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
720 endtry
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
721 return 'text'
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
722 enddef
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
723
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
724 def Test_try_catch_twice()
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
725 assert_equal('text', TryOne()->TryTwo())
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
726 enddef
36e8e046c335 patch 8.2.1700: Vim9: try/catch causes wrong value to be returned
Bram Moolenaar <Bram@vim.org>
parents: 22296
diff changeset
727
19459
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
728 def Test_try_catch_match()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
729 var seq = 'a'
19459
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
730 try
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
731 throw 'something'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
732 catch /nothing/
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
733 seq ..= 'x'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
734 catch /some/
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
735 seq ..= 'b'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
736 catch /asdf/
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
737 seq ..= 'x'
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
738 catch ?a\?sdf?
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
739 seq ..= 'y'
19459
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
740 finally
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
741 seq ..= 'c'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
742 endtry
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
743 assert_equal('abc', seq)
19445
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
744 enddef
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
745
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
746 def Test_try_catch_fails()
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
747 CheckDefFailure(['catch'], 'E603:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
748 CheckDefFailure(['try', 'echo 0', 'catch', 'catch'], 'E1033:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
749 CheckDefFailure(['try', 'echo 0', 'catch /pat'], 'E1067:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
750 CheckDefFailure(['finally'], 'E606:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
751 CheckDefFailure(['try', 'echo 0', 'finally', 'echo 1', 'finally'], 'E607:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
752 CheckDefFailure(['endtry'], 'E602:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
753 CheckDefFailure(['while 1', 'endtry'], 'E170:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
754 CheckDefFailure(['for i in range(5)', 'endtry'], 'E170:')
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22458
diff changeset
755 CheckDefFailure(['if 1', 'endtry'], 'E171:')
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
756 CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
757
23183
4d5d12138b36 patch 8.2.2137: Vim9: :echo and :execute give error for empty argument
Bram Moolenaar <Bram@vim.org>
parents: 23179
diff changeset
758 CheckDefFailure(['throw'], 'E1143:')
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
759 CheckDefFailure(['throw xxx'], 'E1001:')
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
760 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
761
23950
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
762 def Try_catch_skipped()
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
763 var l = []
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
764 try
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
765 finally
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
766 endtry
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
767
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
768 if 1
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
769 else
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
770 try
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
771 endtry
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
772 endif
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
773 enddef
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
774
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
775 " The skipped try/endtry was updating the wrong instruction.
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
776 def Test_try_catch_skipped()
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
777 var instr = execute('disassemble Try_catch_skipped')
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
778 assert_match("NEWLIST size 0\n", instr)
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
779 enddef
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
780
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
781
4279c1c66df1 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Bram Moolenaar <Bram@vim.org>
parents: 23940
diff changeset
782
21094
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
783 def Test_throw_vimscript()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
784 # only checks line continuation
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
785 var lines =<< trim END
21094
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
786 vim9script
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
787 try
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
788 throw 'one'
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
789 .. 'two'
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
790 catch
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
791 assert_equal('onetwo', v:exception)
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
792 endtry
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
793 END
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
794 CheckScriptSuccess(lines)
22612
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
795
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
796 lines =<< trim END
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
797 vim9script
22621
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
798 @r = ''
22612
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
799 def Func()
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
800 throw @r
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
801 enddef
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
802 var result = ''
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
803 try
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
804 Func()
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
805 catch /E1129:/
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
806 result = 'caught'
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
807 endtry
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
808 assert_equal('caught', result)
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
809 END
b08f435d5b86 patch 8.2.1854: Vim9: crash when throwing exception for NULL string
Bram Moolenaar <Bram@vim.org>
parents: 22602
diff changeset
810 CheckScriptSuccess(lines)
21094
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
811 enddef
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
812
21757
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
813 def Test_error_in_nested_function()
23940
949238ccbd50 patch 8.2.2512: Vim9: compiling error test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 23927
diff changeset
814 # an error in a nested :function aborts executing in the calling :def function
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
815 var lines =<< trim END
21757
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
816 vim9script
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
817 def Func()
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
818 Error()
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
819 g:test_var = 1
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
820 enddef
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
821 func Error() abort
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
822 eval [][0]
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
823 endfunc
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
824 Func()
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
825 END
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
826 g:test_var = 0
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
827 CheckScriptFailure(lines, 'E684:')
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
828 assert_equal(0, g:test_var)
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
829 enddef
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
830
21096
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
831 def Test_cexpr_vimscript()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
832 # only checks line continuation
21096
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
833 set errorformat=File\ %f\ line\ %l
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
834 var lines =<< trim END
21096
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
835 vim9script
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
836 cexpr 'File'
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
837 .. ' someFile' ..
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
838 ' line 19'
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
839 assert_equal(19, getqflist()[0].lnum)
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
840 END
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
841 CheckScriptSuccess(lines)
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
842 set errorformat&
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
843 enddef
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
844
21775
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
845 def Test_statusline_syntax()
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
846 # legacy syntax is used for 'statusline'
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
847 var lines =<< trim END
21775
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
848 vim9script
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
849 func g:Status()
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
850 return '%{"x" is# "x"}'
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
851 endfunc
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
852 set laststatus=2 statusline=%!Status()
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
853 redrawstatus
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
854 set laststatus statusline=
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
855 END
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
856 CheckScriptSuccess(lines)
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
857 enddef
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
858
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
859 def Test_list_vimscript()
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
860 # checks line continuation and comments
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
861 var lines =<< trim END
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
862 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
863 var mylist = [
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
864 'one',
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
865 # comment
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
866 'two', # empty line follows
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
867
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
868 'three',
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
869 ]
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
870 assert_equal(['one', 'two', 'three'], mylist)
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
871 END
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
872 CheckScriptSuccess(lines)
21883
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
873
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
874 # check all lines from heredoc are kept
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
875 lines =<< trim END
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
876 # comment 1
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
877 two
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
878 # comment 3
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
879
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
880 five
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
881 # comment 6
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
882 END
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
883 assert_equal(['# comment 1', 'two', '# comment 3', '', 'five', '# comment 6'], lines)
23703
6bfb302d8392 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Bram Moolenaar <Bram@vim.org>
parents: 23658
diff changeset
884
6bfb302d8392 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Bram Moolenaar <Bram@vim.org>
parents: 23658
diff changeset
885 lines =<< trim END
6bfb302d8392 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Bram Moolenaar <Bram@vim.org>
parents: 23658
diff changeset
886 [{
6bfb302d8392 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Bram Moolenaar <Bram@vim.org>
parents: 23658
diff changeset
887 a: 0}]->string()->assert_equal("[{'a': 0}]")
6bfb302d8392 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Bram Moolenaar <Bram@vim.org>
parents: 23658
diff changeset
888 END
6bfb302d8392 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Bram Moolenaar <Bram@vim.org>
parents: 23658
diff changeset
889 CheckDefAndScriptSuccess(lines)
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
890 enddef
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
891
20291
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
892 if has('channel')
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
893 let someJob = test_null_job()
20289
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
894
20291
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
895 def FuncWithError()
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
896 echomsg g:someJob
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
897 enddef
20289
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
898
20291
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
899 func Test_convert_emsg_to_exception()
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
900 try
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
901 call FuncWithError()
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
902 catch
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
903 call assert_match('Vim:E908:', v:exception)
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
904 endtry
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
905 endfunc
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
906 endif
20289
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
907
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
908 let s:export_script_lines =<< trim END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
909 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
910 var name: string = 'bob'
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
911 def Concat(arg: string): string
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
912 return name .. arg
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
913 enddef
20401
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
914 g:result = Concat('bie')
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
915 g:localname = name
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
916
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
917 export const CONST = 1234
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
918 export var exported = 9876
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
919 export var exp_name = 'John'
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
920 export def Exported(): string
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
921 return 'Exported'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
922 enddef
24025
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
923 export final theList = [1]
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
924 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
925
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
926 def Undo_export_script_lines()
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
927 unlet g:result
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
928 unlet g:localname
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
929 enddef
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
930
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
931 def Test_vim9_import_export()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
932 var import_script_lines =<< trim END
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
933 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
934 import {exported, Exported} from './Xexport.vim'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
935 g:imported = exported
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
936 exported += 3
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
937 g:imported_added = exported
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
938 g:imported_func = Exported()
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
939
21473
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
940 def GetExported(): string
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
941 var local_dict = {ref: Exported}
21473
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
942 return local_dict.ref()
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
943 enddef
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
944 g:funcref_result = GetExported()
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
945
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
946 import {exp_name} from './Xexport.vim'
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
947 g:imported_name = exp_name
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
948 exp_name ..= ' Doe'
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
949 g:imported_name_appended = exp_name
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
950 g:imported_later = exported
24025
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
951
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
952 import theList from './Xexport.vim'
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
953 theList->add(2)
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
954 assert_equal([1, 2], theList)
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
955 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
956
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
957 writefile(import_script_lines, 'Ximport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
958 writefile(s:export_script_lines, 'Xexport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
959
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
960 source Ximport.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
961
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
962 assert_equal('bobbie', g:result)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
963 assert_equal('bob', g:localname)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
964 assert_equal(9876, g:imported)
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
965 assert_equal(9879, g:imported_added)
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
966 assert_equal(9879, g:imported_later)
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
967 assert_equal('Exported', g:imported_func)
21473
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
968 assert_equal('Exported', g:funcref_result)
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
969 assert_equal('John', g:imported_name)
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
970 assert_equal('John Doe', g:imported_name_appended)
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
971 assert_false(exists('g:name'))
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
972
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
973 Undo_export_script_lines()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
974 unlet g:imported
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
975 unlet g:imported_added
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
976 unlet g:imported_later
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
977 unlet g:imported_func
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
978 unlet g:imported_name g:imported_name_appended
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
979 delete('Ximport.vim')
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
980
21146
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
981 # similar, with line breaks
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
982 var import_line_break_script_lines =<< trim END
21146
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
983 vim9script
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
984 import {
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
985 exported,
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
986 Exported,
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
987 }
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
988 from
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
989 './Xexport.vim'
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
990 g:imported = exported
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
991 exported += 5
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
992 g:imported_added = exported
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
993 g:imported_func = Exported()
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
994 END
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
995 writefile(import_line_break_script_lines, 'Ximport_lbr.vim')
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
996 source Ximport_lbr.vim
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
997
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
998 assert_equal(9876, g:imported)
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
999 assert_equal(9881, g:imported_added)
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1000 assert_equal('Exported', g:imported_func)
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1001
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1002 # exported script not sourced again
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1003 assert_false(exists('g:result'))
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1004 unlet g:imported
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1005 unlet g:imported_added
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1006 unlet g:imported_func
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1007 delete('Ximport_lbr.vim')
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1008
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1009 # import inside :def function
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1010 var import_in_def_lines =<< trim END
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1011 vim9script
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1012 def ImportInDef()
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1013 import exported from './Xexport.vim'
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1014 g:imported = exported
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1015 exported += 7
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1016 g:imported_added = exported
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1017 enddef
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1018 ImportInDef()
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1019 END
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1020 writefile(import_in_def_lines, 'Ximport2.vim')
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1021 source Ximport2.vim
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1022 # TODO: this should be 9879
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1023 assert_equal(9876, g:imported)
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1024 assert_equal(9883, g:imported_added)
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1025 unlet g:imported
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1026 unlet g:imported_added
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1027 delete('Ximport2.vim')
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1028
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1029 var import_star_as_lines =<< trim END
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1030 vim9script
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1031 import * as Export from './Xexport.vim'
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1032 def UseExport()
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1033 g:imported = Export.exported
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1034 enddef
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1035 UseExport()
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1036 END
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1037 writefile(import_star_as_lines, 'Ximport.vim')
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1038 source Ximport.vim
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1039 assert_equal(9883, g:imported)
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1040
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1041 var import_star_as_lines_no_dot =<< trim END
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1042 vim9script
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1043 import * as Export from './Xexport.vim'
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1044 def Func()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1045 var dummy = 1
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1046 var imported = Export + dummy
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1047 enddef
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
1048 defcompile
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1049 END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1050 writefile(import_star_as_lines_no_dot, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1051 assert_fails('source Ximport.vim', 'E1060:', '', 2, 'Func')
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1052
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1053 var import_star_as_lines_dot_space =<< trim END
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1054 vim9script
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1055 import * as Export from './Xexport.vim'
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1056 def Func()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1057 var imported = Export . exported
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1058 enddef
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
1059 defcompile
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1060 END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1061 writefile(import_star_as_lines_dot_space, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1062 assert_fails('source Ximport.vim', 'E1074:', '', 1, 'Func')
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1063
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1064 var import_star_as_duplicated =<< trim END
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1065 vim9script
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1066 import * as Export from './Xexport.vim'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1067 var some = 'other'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1068 import * as Export from './Xexport.vim'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1069 defcompile
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1070 END
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1071 writefile(import_star_as_duplicated, 'Ximport.vim')
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1072 assert_fails('source Ximport.vim', 'E1073:', '', 4, 'Ximport.vim')
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1073
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1074 var import_star_as_lines_missing_name =<< trim END
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1075 vim9script
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1076 import * as Export from './Xexport.vim'
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1077 def Func()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1078 var imported = Export.
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1079 enddef
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
1080 defcompile
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1081 END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1082 writefile(import_star_as_lines_missing_name, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1083 assert_fails('source Ximport.vim', 'E1048:', '', 1, 'Func')
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1084
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1085 var import_star_as_lbr_lines =<< trim END
21146
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1086 vim9script
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1087 import *
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1088 as Export
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1089 from
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1090 './Xexport.vim'
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1091 def UseExport()
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1092 g:imported = Export.exported
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1093 enddef
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1094 UseExport()
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1095 END
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1096 writefile(import_star_as_lbr_lines, 'Ximport.vim')
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1097 source Ximport.vim
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1098 assert_equal(9883, g:imported)
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1099
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1100 var import_star_lines =<< trim END
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1101 vim9script
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1102 import * from './Xexport.vim'
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1103 END
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1104 writefile(import_star_lines, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1105 assert_fails('source Ximport.vim', 'E1045:', '', 2, 'Ximport.vim')
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1106
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1107 # try to import something that exists but is not exported
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1108 var import_not_exported_lines =<< trim END
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1109 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1110 import name from './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1111 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1112 writefile(import_not_exported_lines, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1113 assert_fails('source Ximport.vim', 'E1049:', '', 2, 'Ximport.vim')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1114
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1115 # try to import something that is already defined
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1116 var import_already_defined =<< trim END
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1117 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1118 var exported = 'something'
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1119 import exported from './Xexport.vim'
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1120 END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1121 writefile(import_already_defined, 'Ximport.vim')
24033
308d29307910 patch 8.2.2558: no error if a lambda argument shadows a variable
Bram Moolenaar <Bram@vim.org>
parents: 24029
diff changeset
1122 assert_fails('source Ximport.vim', 'E1054:', '', 3, 'Ximport.vim')
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1123
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1124 # try to import something that is already defined
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1125 import_already_defined =<< trim END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1126 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1127 var exported = 'something'
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1128 import * as exported from './Xexport.vim'
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1129 END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1130 writefile(import_already_defined, 'Ximport.vim')
24033
308d29307910 patch 8.2.2558: no error if a lambda argument shadows a variable
Bram Moolenaar <Bram@vim.org>
parents: 24029
diff changeset
1131 assert_fails('source Ximport.vim', 'E1054:', '', 3, 'Ximport.vim')
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1132
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1133 # try to import something that is already defined
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1134 import_already_defined =<< trim END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1135 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1136 var exported = 'something'
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1137 import {exported} from './Xexport.vim'
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1138 END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1139 writefile(import_already_defined, 'Ximport.vim')
24033
308d29307910 patch 8.2.2558: no error if a lambda argument shadows a variable
Bram Moolenaar <Bram@vim.org>
parents: 24029
diff changeset
1140 assert_fails('source Ximport.vim', 'E1054:', '', 3, 'Ximport.vim')
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1141
23106
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1142 # try changing an imported const
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1143 var import_assign_to_const =<< trim END
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1144 vim9script
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1145 import CONST from './Xexport.vim'
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1146 def Assign()
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1147 CONST = 987
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1148 enddef
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1149 defcompile
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1150 END
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1151 writefile(import_assign_to_const, 'Ximport.vim')
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1152 assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
b0c88aa0175b patch 8.2.2099: Vim9: some checks are not tested
Bram Moolenaar <Bram@vim.org>
parents: 23092
diff changeset
1153
24025
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1154 # try changing an imported final
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1155 var import_assign_to_final =<< trim END
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1156 vim9script
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1157 import theList from './Xexport.vim'
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1158 def Assign()
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1159 theList = [2]
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1160 enddef
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1161 defcompile
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1162 END
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1163 writefile(import_assign_to_final, 'Ximport.vim')
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1164 assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
edcb6cf55a26 patch 8.2.2554: Vim9: exporting a final is not tested
Bram Moolenaar <Bram@vim.org>
parents: 24002
diff changeset
1165
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1166 # import a very long name, requires making a copy
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1167 var import_long_name_lines =<< trim END
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1168 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1169 import name012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 from './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1170 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1171 writefile(import_long_name_lines, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1172 assert_fails('source Ximport.vim', 'E1048:', '', 2, 'Ximport.vim')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1173
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1174 var import_no_from_lines =<< trim END
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1175 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1176 import name './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1177 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1178 writefile(import_no_from_lines, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1179 assert_fails('source Ximport.vim', 'E1070:', '', 2, 'Ximport.vim')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1180
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1181 var import_invalid_string_lines =<< trim END
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1182 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1183 import name from Xexport.vim
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1184 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1185 writefile(import_invalid_string_lines, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1186 assert_fails('source Ximport.vim', 'E1071:', '', 2, 'Ximport.vim')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1187
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1188 var import_wrong_name_lines =<< trim END
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1189 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1190 import name from './XnoExport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1191 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1192 writefile(import_wrong_name_lines, 'Ximport.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1193 assert_fails('source Ximport.vim', 'E1053:', '', 2, 'Ximport.vim')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1194
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1195 var import_missing_comma_lines =<< trim END
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1196 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1197 import {exported name} from './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1198 END
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1199 writefile(import_missing_comma_lines, 'Ximport3.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1200 assert_fails('source Ximport3.vim', 'E1046:', '', 2, 'Ximport3.vim')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1201
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1202 delete('Ximport.vim')
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1203 delete('Ximport3.vim')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1204 delete('Xexport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1205
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1206 # Check that in a Vim9 script 'cpo' is set to the Vim default.
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1207 set cpo&vi
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1208 var cpo_before = &cpo
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1209 var lines =<< trim END
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1210 vim9script
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1211 g:cpo_in_vim9script = &cpo
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1212 END
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1213 writefile(lines, 'Xvim9_script')
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1214 source Xvim9_script
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1215 assert_equal(cpo_before, &cpo)
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1216 set cpo&vim
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1217 assert_equal(&cpo, g:cpo_in_vim9script)
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1218 delete('Xvim9_script')
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1219 enddef
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1220
24029
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1221 def Test_import_as()
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1222 var export_lines =<< trim END
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1223 vim9script
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1224 export var one = 1
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1225 export var yes = 'yes'
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1226 END
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1227 writefile(export_lines, 'XexportAs')
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1228
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1229 var import_lines =<< trim END
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1230 vim9script
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1231 import one as thatOne from './XexportAs'
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1232 assert_equal(1, thatOne)
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1233 import yes as yesYes from './XexportAs'
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1234 assert_equal('yes', yesYes)
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1235 END
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1236 CheckScriptSuccess(import_lines)
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1237
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1238 import_lines =<< trim END
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1239 vim9script
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1240 import {one as thatOne, yes as yesYes} from './XexportAs'
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1241 assert_equal(1, thatOne)
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1242 assert_equal('yes', yesYes)
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1243 assert_fails('echo one', 'E121:')
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1244 assert_fails('echo yes', 'E121:')
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1245 END
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1246 CheckScriptSuccess(import_lines)
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1247
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1248 delete('XexportAs')
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1249 enddef
429b4f8d2fac patch 8.2.2556: Vim9: :import with "as" not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 24027
diff changeset
1250
21652
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1251 func g:Trigger()
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1252 source Ximport.vim
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1253 return "echo 'yes'\<CR>"
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1254 endfunc
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1255
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1256 def Test_import_export_expr_map()
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1257 # check that :import and :export work when buffer is locked
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1258 var export_lines =<< trim END
21652
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1259 vim9script
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1260 export def That(): string
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1261 return 'yes'
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1262 enddef
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1263 END
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1264 writefile(export_lines, 'Xexport_that.vim')
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1265
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1266 var import_lines =<< trim END
21652
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1267 vim9script
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1268 import That from './Xexport_that.vim'
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1269 assert_equal('yes', That())
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1270 END
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1271 writefile(import_lines, 'Ximport.vim')
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1272
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1273 nnoremap <expr> trigger g:Trigger()
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1274 feedkeys('trigger', "xt")
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1275
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1276 delete('Xexport_that.vim')
21652
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1277 delete('Ximport.vim')
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1278 nunmap trigger
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1279 enddef
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1280
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1281 def Test_import_in_filetype()
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1282 # check that :import works when the buffer is locked
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1283 mkdir('ftplugin', 'p')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1284 var export_lines =<< trim END
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1285 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1286 export var That = 'yes'
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1287 END
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1288 writefile(export_lines, 'ftplugin/Xexport_ft.vim')
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1289
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1290 var import_lines =<< trim END
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1291 vim9script
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1292 import That from './Xexport_ft.vim'
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1293 assert_equal('yes', That)
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1294 g:did_load_mytpe = 1
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1295 END
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1296 writefile(import_lines, 'ftplugin/qf.vim')
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1297
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1298 var save_rtp = &rtp
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1299 &rtp = getcwd() .. ',' .. &rtp
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1300
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1301 filetype plugin on
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1302 copen
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1303 assert_equal(1, g:did_load_mytpe)
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1304
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1305 quit!
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1306 delete('Xexport_ft.vim')
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1307 delete('ftplugin', 'rf')
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1308 &rtp = save_rtp
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1309 enddef
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1310
21699
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1311 def Test_use_import_in_mapping()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1312 var lines =<< trim END
21699
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1313 vim9script
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1314 export def Funcx()
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1315 g:result = 42
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1316 enddef
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1317 END
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1318 writefile(lines, 'XsomeExport.vim')
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1319 lines =<< trim END
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1320 vim9script
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1321 import Funcx from './XsomeExport.vim'
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1322 nnoremap <F3> :call <sid>Funcx()<cr>
21699
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1323 END
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1324 writefile(lines, 'Xmapscript.vim')
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1325
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1326 source Xmapscript.vim
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1327 feedkeys("\<F3>", "xt")
21699
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1328 assert_equal(42, g:result)
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1329
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1330 unlet g:result
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1331 delete('XsomeExport.vim')
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1332 delete('Xmapscript.vim')
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1333 nunmap <F3>
21699
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1334 enddef
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1335
23974
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1336 def Test_vim9script_mix()
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1337 var lines =<< trim END
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1338 if has(g:feature)
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1339 " legacy script
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1340 let g:legacy = 1
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1341 finish
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1342 endif
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1343 vim9script
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1344 g:legacy = 0
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1345 END
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1346 g:feature = 'eval'
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1347 g:legacy = -1
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1348 CheckScriptSuccess(lines)
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1349 assert_equal(1, g:legacy)
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1350
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1351 g:feature = 'noteval'
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1352 g:legacy = -1
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1353 CheckScriptSuccess(lines)
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1354 assert_equal(0, g:legacy)
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1355 enddef
d4f7e4138544 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Bram Moolenaar <Bram@vim.org>
parents: 23954
diff changeset
1356
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1357 def Test_vim9script_fails()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1358 CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1359 CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1360 CheckScriptFailure(['export var some = 123'], 'E1042:')
20816
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
1361 CheckScriptFailure(['import some from "./Xexport.vim"'], 'E1048:')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1362 CheckScriptFailure(['vim9script', 'export var g:some'], 'E1022:')
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1363 CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1364
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1365 CheckScriptFailure(['vim9script', 'var str: string', 'str = 1234'], 'E1012:')
20919
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
1366 CheckScriptFailure(['vim9script', 'const str = "asdf"', 'str = "xxx"'], 'E46:')
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
1367
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21987
diff changeset
1368 assert_fails('vim9script', 'E1038:')
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21987
diff changeset
1369 assert_fails('export something', 'E1043:')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1370 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1371
20883
8bc11506d787 patch 8.2.0993: Vim9 script test fails with normal features
Bram Moolenaar <Bram@vim.org>
parents: 20881
diff changeset
1372 func Test_import_fails_without_script()
20881
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1373 CheckRunVimInTerminal
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1374
20885
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1375 " call indirectly to avoid compilation error for missing functions
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1376 call Run_Test_import_fails_on_command_line()
20885
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1377 endfunc
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1378
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1379 def Run_Test_import_fails_on_command_line()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1380 var export =<< trim END
20881
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1381 vim9script
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1382 export def Foo(): number
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1383 return 0
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1384 enddef
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1385 END
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1386 writefile(export, 'XexportCmd.vim')
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1387
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
1388 var buf = RunVimInTerminal('-c "import Foo from ''./XexportCmd.vim''"', {
20885
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1389 rows: 6, wait_for_ruler: 0})
23428
5807e3958e38 patch 8.2.2257: Vim9: using -> for lambda is ambiguous
Bram Moolenaar <Bram@vim.org>
parents: 23364
diff changeset
1390 WaitForAssert(() => assert_match('^E1094:', term_getline(buf, 5)))
20881
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1391
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1392 delete('XexportCmd.vim')
20885
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1393 StopVimInTerminal(buf)
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1394 enddef
20881
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1395
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1396 def Test_vim9script_reload_noclear()
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1397 var lines =<< trim END
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1398 vim9script
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1399 export var exported = 'thexport'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1400 END
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1401 writefile(lines, 'XExportReload')
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1402 lines =<< trim END
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1403 vim9script noclear
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1404 g:loadCount += 1
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1405 var s:reloaded = 'init'
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1406 import exported from './XExportReload'
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1407
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1408 def Again(): string
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1409 return 'again'
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1410 enddef
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1411
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1412 if exists('s:loaded') | finish | endif
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1413 var s:loaded = true
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1414
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1415 var s:notReloaded = 'yes'
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1416 s:reloaded = 'first'
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1417 def g:Values(): list<string>
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1418 return [s:reloaded, s:notReloaded, Again(), Once(), exported]
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1419 enddef
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1420
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1421 def Once(): string
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1422 return 'once'
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1423 enddef
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1424 END
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1425 writefile(lines, 'XReloaded')
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1426 g:loadCount = 0
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1427 source XReloaded
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1428 assert_equal(1, g:loadCount)
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1429 assert_equal(['first', 'yes', 'again', 'once', 'thexport'], g:Values())
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1430 source XReloaded
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1431 assert_equal(2, g:loadCount)
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1432 assert_equal(['init', 'yes', 'again', 'once', 'thexport'], g:Values())
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1433 source XReloaded
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1434 assert_equal(3, g:loadCount)
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1435 assert_equal(['init', 'yes', 'again', 'once', 'thexport'], g:Values())
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1436
23571
b02ac00aacbf patch 8.2.2328: some test files may not be deleted
Bram Moolenaar <Bram@vim.org>
parents: 23440
diff changeset
1437 delete('XReloaded')
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
1438 delete('XExportReload')
23358
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1439 delfunc g:Values
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1440 unlet g:loadCount
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1441 enddef
b3142fc0a414 patch 8.2.2222: Vim9: cannot keep script variables when reloading
Bram Moolenaar <Bram@vim.org>
parents: 23342
diff changeset
1442
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1443 def Test_vim9script_reload_import()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1444 var lines =<< trim END
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1445 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1446 const var = ''
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1447 var valone = 1234
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1448 def MyFunc(arg: string)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1449 valone = 5678
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1450 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1451 END
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1452 var morelines =<< trim END
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1453 var valtwo = 222
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1454 export def GetValtwo(): number
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1455 return valtwo
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1456 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1457 END
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1458 writefile(lines + morelines, 'Xreload.vim')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1459 source Xreload.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1460 source Xreload.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1461 source Xreload.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1462
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1463 var testlines =<< trim END
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1464 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1465 def TheFunc()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1466 import GetValtwo from './Xreload.vim'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1467 assert_equal(222, GetValtwo())
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1468 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1469 TheFunc()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1470 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1471 writefile(testlines, 'Ximport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1472 source Ximport.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1473
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1474 # Test that when not using "morelines" GetValtwo() and valtwo are still
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1475 # defined, because import doesn't reload a script.
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1476 writefile(lines, 'Xreload.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1477 source Ximport.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1478
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1479 # cannot declare a var twice
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1480 lines =<< trim END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1481 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1482 var valone = 1234
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1483 var valone = 5678
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1484 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1485 writefile(lines, 'Xreload.vim')
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1486 assert_fails('source Xreload.vim', 'E1041:', '', 3, 'Xreload.vim')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1487
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1488 delete('Xreload.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1489 delete('Ximport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1490 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1491
23362
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1492 " if a script is reloaded with a script-local variable that changed its type, a
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1493 " compiled function using that variable must fail.
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1494 def Test_script_reload_change_type()
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1495 var lines =<< trim END
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1496 vim9script noclear
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1497 var str = 'string'
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1498 def g:GetStr(): string
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1499 return str .. 'xxx'
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1500 enddef
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1501 END
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1502 writefile(lines, 'Xreload.vim')
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1503 source Xreload.vim
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1504 echo g:GetStr()
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1505
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1506 lines =<< trim END
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1507 vim9script noclear
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1508 var str = 1234
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1509 END
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1510 writefile(lines, 'Xreload.vim')
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1511 source Xreload.vim
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1512 assert_fails('echo g:GetStr()', 'E1150:')
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1513
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1514 delfunc g:GetStr
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1515 delete('Xreload.vim')
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1516 enddef
f181fe2150ab patch 8.2.2224: Vim9: crash if script reloaded with different variable type
Bram Moolenaar <Bram@vim.org>
parents: 23360
diff changeset
1517
24051
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1518 def Test_script_var_shadows_function()
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1519 var lines =<< trim END
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1520 vim9script
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1521 def Func(): number
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1522 return 123
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1523 enddef
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1524 var Func = 1
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1525 END
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1526 CheckScriptFailure(lines, 'E1041:', 5)
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1527 enddef
da8347e453b4 patch 8.2.2567: Vim9: no error if variable is defined for existing function
Bram Moolenaar <Bram@vim.org>
parents: 24033
diff changeset
1528
21983
3fe594c72d8c patch 8.2.1541: Vim9: cannot find function reference for s:Func
Bram Moolenaar <Bram@vim.org>
parents: 21979
diff changeset
1529 def s:RetSome(): string
3fe594c72d8c patch 8.2.1541: Vim9: cannot find function reference for s:Func
Bram Moolenaar <Bram@vim.org>
parents: 21979
diff changeset
1530 return 'some'
3fe594c72d8c patch 8.2.1541: Vim9: cannot find function reference for s:Func
Bram Moolenaar <Bram@vim.org>
parents: 21979
diff changeset
1531 enddef
3fe594c72d8c patch 8.2.1541: Vim9: cannot find function reference for s:Func
Bram Moolenaar <Bram@vim.org>
parents: 21979
diff changeset
1532
21202
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1533 " Not exported function that is referenced needs to be accessed by the
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1534 " script-local name.
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1535 def Test_vim9script_funcref()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1536 var sortlines =<< trim END
21202
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1537 vim9script
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1538 def Compare(i1: number, i2: number): number
21204
3c91581cef33 patch 8.2.1153: Vim9: script test fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 21202
diff changeset
1539 return i2 - i1
21202
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1540 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1541
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1542 export def FastSort(): list<number>
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1543 return range(5)->sort(Compare)
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1544 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1545 END
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1546 writefile(sortlines, 'Xsort.vim')
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1547
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1548 var lines =<< trim END
21202
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1549 vim9script
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1550 import FastSort from './Xsort.vim'
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1551 def Test()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1552 g:result = FastSort()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1553 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1554 Test()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1555 END
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1556 writefile(lines, 'Xscript.vim')
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1557
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1558 source Xscript.vim
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1559 assert_equal([4, 3, 2, 1, 0], g:result)
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1560
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1561 unlet g:result
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1562 delete('Xsort.vim')
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1563 delete('Xscript.vim')
21983
3fe594c72d8c patch 8.2.1541: Vim9: cannot find function reference for s:Func
Bram Moolenaar <Bram@vim.org>
parents: 21979
diff changeset
1564
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1565 var Funcref = function('s:RetSome')
21983
3fe594c72d8c patch 8.2.1541: Vim9: cannot find function reference for s:Func
Bram Moolenaar <Bram@vim.org>
parents: 21979
diff changeset
1566 assert_equal('some', Funcref())
21202
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1567 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1568
21955
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1569 " Check that when searching for "FilterFunc" it finds the import in the
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1570 " script where FastFilter() is called from, both as a string and as a direct
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1571 " function reference.
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1572 def Test_vim9script_funcref_other_script()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1573 var filterLines =<< trim END
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1574 vim9script
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1575 export def FilterFunc(idx: number, val: number): bool
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1576 return idx % 2 == 1
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1577 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1578 export def FastFilter(): list<number>
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1579 return range(10)->filter('FilterFunc')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1580 enddef
21955
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1581 export def FastFilterDirect(): list<number>
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1582 return range(10)->filter(FilterFunc)
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1583 enddef
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1584 END
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1585 writefile(filterLines, 'Xfilter.vim')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1586
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1587 var lines =<< trim END
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1588 vim9script
21955
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1589 import {FilterFunc, FastFilter, FastFilterDirect} from './Xfilter.vim'
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1590 def Test()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1591 var x: list<number> = FastFilter()
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1592 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1593 Test()
21955
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1594 def TestDirect()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1595 var x: list<number> = FastFilterDirect()
21955
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1596 enddef
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1597 TestDirect()
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1598 END
21955
3991a6df522e patch 8.2.1527: Vim9: cannot use a function name at script level
Bram Moolenaar <Bram@vim.org>
parents: 21939
diff changeset
1599 CheckScriptSuccess(lines)
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1600 delete('Xfilter.vim')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1601 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1602
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1603 def Test_vim9script_reload_delfunc()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1604 var first_lines =<< trim END
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1605 vim9script
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1606 def FuncYes(): string
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1607 return 'yes'
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1608 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1609 END
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1610 var withno_lines =<< trim END
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1611 def FuncNo(): string
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1612 return 'no'
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1613 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1614 def g:DoCheck(no_exists: bool)
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1615 assert_equal('yes', FuncYes())
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1616 assert_equal('no', FuncNo())
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1617 enddef
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1618 END
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1619 var nono_lines =<< trim END
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1620 def g:DoCheck(no_exists: bool)
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1621 assert_equal('yes', FuncYes())
22165
c512e6f57ff2 patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents: 22147
diff changeset
1622 assert_fails('FuncNo()', 'E117:', '', 2, 'DoCheck')
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1623 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1624 END
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1625
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1626 # FuncNo() is defined
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1627 writefile(first_lines + withno_lines, 'Xreloaded.vim')
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1628 source Xreloaded.vim
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1629 g:DoCheck(true)
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1630
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1631 # FuncNo() is not redefined
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1632 writefile(first_lines + nono_lines, 'Xreloaded.vim')
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1633 source Xreloaded.vim
23252
35583da6397e patch 8.2.2172: Vim9: number of arguments is not always checked
Bram Moolenaar <Bram@vim.org>
parents: 23247
diff changeset
1634 g:DoCheck(false)
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1635
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1636 # FuncNo() is back
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1637 writefile(first_lines + withno_lines, 'Xreloaded.vim')
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1638 source Xreloaded.vim
23252
35583da6397e patch 8.2.2172: Vim9: number of arguments is not always checked
Bram Moolenaar <Bram@vim.org>
parents: 23247
diff changeset
1639 g:DoCheck(false)
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1640
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1641 delete('Xreloaded.vim')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1642 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1643
20347
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1644 def Test_vim9script_reload_delvar()
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1645 # write the script with a script-local variable
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1646 var lines =<< trim END
20347
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1647 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1648 var name = 'string'
20347
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1649 END
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1650 writefile(lines, 'XreloadVar.vim')
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1651 source XreloadVar.vim
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1652
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1653 # now write the script using the same variable locally - works
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1654 lines =<< trim END
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1655 vim9script
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1656 def Func()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1657 var name = 'string'
20347
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1658 enddef
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1659 END
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1660 writefile(lines, 'XreloadVar.vim')
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1661 source XreloadVar.vim
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1662
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1663 delete('XreloadVar.vim')
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1664 enddef
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1665
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1666 def Test_import_absolute()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1667 var import_lines = [
20011
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1668 'vim9script',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1669 'import exported from "' .. escape(getcwd(), '\') .. '/Xexport_abs.vim"',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1670 'def UseExported()',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1671 ' g:imported_abs = exported',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1672 ' exported = 8888',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1673 ' g:imported_after = exported',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1674 'enddef',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1675 'UseExported()',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1676 'g:import_disassembled = execute("disass UseExported")',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1677 ]
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1678 writefile(import_lines, 'Ximport_abs.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1679 writefile(s:export_script_lines, 'Xexport_abs.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1680
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1681 source Ximport_abs.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1682
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1683 assert_equal(9876, g:imported_abs)
19285
86665583dc83 patch 8.2.0201: cannot assign to an imported variable
Bram Moolenaar <Bram@vim.org>
parents: 19283
diff changeset
1684 assert_equal(8888, g:imported_after)
22596
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1685 assert_match('<SNR>\d\+_UseExported\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1686 'g:imported_abs = exported\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1687 '0 LOADSCRIPT exported-2 from .*Xexport_abs.vim\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1688 '1 STOREG g:imported_abs\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1689 'exported = 8888\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1690 '2 PUSHNR 8888\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1691 '3 STORESCRIPT exported-2 in .*Xexport_abs.vim\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1692 'g:imported_after = exported\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1693 '4 LOADSCRIPT exported-2 from .*Xexport_abs.vim\_s*' ..
107eae953b87 patch 8.2.1846: Vim9: block variables are not found in compiled function
Bram Moolenaar <Bram@vim.org>
parents: 22555
diff changeset
1694 '5 STOREG g:imported_after',
20011
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1695 g:import_disassembled)
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1696
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1697 Undo_export_script_lines()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1698 unlet g:imported_abs
19285
86665583dc83 patch 8.2.0201: cannot assign to an imported variable
Bram Moolenaar <Bram@vim.org>
parents: 19283
diff changeset
1699 unlet g:import_disassembled
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1700
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1701 delete('Ximport_abs.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1702 delete('Xexport_abs.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1703 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1704
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1705 def Test_import_rtp()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1706 var import_lines = [
20011
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1707 'vim9script',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1708 'import exported from "Xexport_rtp.vim"',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1709 'g:imported_rtp = exported',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1710 ]
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1711 writefile(import_lines, 'Ximport_rtp.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1712 mkdir('import')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1713 writefile(s:export_script_lines, 'import/Xexport_rtp.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1714
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1715 var save_rtp = &rtp
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1716 &rtp = getcwd()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1717 source Ximport_rtp.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1718 &rtp = save_rtp
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1719
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1720 assert_equal(9876, g:imported_rtp)
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1721
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1722 Undo_export_script_lines()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1723 unlet g:imported_rtp
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1724 delete('Ximport_rtp.vim')
20347
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1725 delete('import', 'rf')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1726 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1727
20538
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1728 def Test_import_compile_error()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1729 var export_lines = [
20538
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1730 'vim9script',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1731 'export def ExpFunc(): string',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1732 ' return notDefined',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1733 'enddef',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1734 ]
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1735 writefile(export_lines, 'Xexported.vim')
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1736
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1737 var import_lines = [
20538
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1738 'vim9script',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1739 'import ExpFunc from "./Xexported.vim"',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1740 'def ImpFunc()',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1741 ' echo ExpFunc()',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1742 'enddef',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1743 'defcompile',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1744 ]
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1745 writefile(import_lines, 'Ximport.vim')
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1746
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1747 try
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1748 source Ximport.vim
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1749 catch /E1001/
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1750 # Error should be fore the Xexported.vim file.
22296
006b8ab9d554 patch 8.2.1697: inconsistent capitalization of error messages
Bram Moolenaar <Bram@vim.org>
parents: 22284
diff changeset
1751 assert_match('E1001: Variable not found: notDefined', v:exception)
20538
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1752 assert_match('function <SNR>\d\+_ImpFunc\[1\]..<SNR>\d\+_ExpFunc, line 1', v:throwpoint)
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1753 endtry
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1754
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1755 delete('Xexported.vim')
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1756 delete('Ximport.vim')
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1757 enddef
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1758
21791
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1759 def Test_func_redefine_error()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1760 var lines = [
21791
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1761 'vim9script',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1762 'def Func()',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1763 ' eval [][0]',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1764 'enddef',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1765 'Func()',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1766 ]
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1767 writefile(lines, 'Xtestscript.vim')
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1768
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1769 for count in range(3)
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1770 try
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1771 source Xtestscript.vim
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1772 catch /E684/
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1773 # function name should contain <SNR> every time
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1774 assert_match('E684: list index out of range', v:exception)
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1775 assert_match('function <SNR>\d\+_Func, line 1', v:throwpoint)
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1776 endtry
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1777 endfor
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1778
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1779 delete('Xtestscript.vim')
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1780 enddef
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1781
21598
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1782 def Test_func_overrules_import_fails()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1783 var export_lines =<< trim END
21598
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1784 vim9script
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1785 export def Func()
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1786 echo 'imported'
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1787 enddef
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1788 END
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1789 writefile(export_lines, 'XexportedFunc.vim')
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1790
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1791 var lines =<< trim END
21598
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1792 vim9script
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1793 import Func from './XexportedFunc.vim'
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1794 def Func()
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1795 echo 'local to function'
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1796 enddef
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1797 END
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1798 CheckScriptFailure(lines, 'E1073:')
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1799
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1800 lines =<< trim END
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1801 vim9script
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1802 import Func from './XexportedFunc.vim'
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1803 def Outer()
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1804 def Func()
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1805 echo 'local to function'
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1806 enddef
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1807 enddef
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1808 defcompile
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1809 END
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1810 CheckScriptFailure(lines, 'E1073:')
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1811
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1812 delete('XexportedFunc.vim')
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1813 enddef
7b5b9558500a patch 8.2.1349: Vim9: can define a function with the name of an import
Bram Moolenaar <Bram@vim.org>
parents: 21584
diff changeset
1814
21600
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1815 def Test_func_redefine_fails()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1816 var lines =<< trim END
21600
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1817 vim9script
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1818 def Func()
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1819 echo 'one'
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1820 enddef
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1821 def Func()
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1822 echo 'two'
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1823 enddef
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1824 END
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1825 CheckScriptFailure(lines, 'E1073:')
21683
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1826
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1827 lines =<< trim END
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1828 vim9script
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1829 def Foo(): string
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1830 return 'foo'
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1831 enddef
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1832 def Func()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1833 var Foo = {-> 'lambda'}
21683
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1834 enddef
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1835 defcompile
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1836 END
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1837 CheckScriptFailure(lines, 'E1073:')
21600
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1838 enddef
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1839
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1840 def Test_fixed_size_list()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1841 # will be allocated as one piece of memory, check that changes work
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1842 var l = [1, 2, 3, 4]
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1843 l->remove(0)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1844 l->add(5)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1845 l->insert(99, 1)
19281
9fcdeaa18bd1 patch 8.2.0199: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19253
diff changeset
1846 assert_equal([2, 99, 3, 4, 5], l)
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1847 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1848
21516
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1849 def Test_no_insert_xit()
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1850 CheckDefExecFailure(['a = 1'], 'E1100:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1851 CheckDefExecFailure(['c = 1'], 'E1100:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1852 CheckDefExecFailure(['i = 1'], 'E1100:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1853 CheckDefExecFailure(['t = 1'], 'E1100:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1854 CheckDefExecFailure(['x = 1'], 'E1100:')
21516
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1855
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1856 CheckScriptFailure(['vim9script', 'a = 1'], 'E488:')
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1857 CheckScriptFailure(['vim9script', 'a'], 'E1100:')
21584
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1858 CheckScriptFailure(['vim9script', 'c = 1'], 'E488:')
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1859 CheckScriptFailure(['vim9script', 'c'], 'E1100:')
21516
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1860 CheckScriptFailure(['vim9script', 'i = 1'], 'E488:')
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1861 CheckScriptFailure(['vim9script', 'i'], 'E1100:')
21584
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1862 CheckScriptFailure(['vim9script', 't'], 'E1100:')
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1863 CheckScriptFailure(['vim9script', 't = 1'], 'E1100:')
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1864 CheckScriptFailure(['vim9script', 'x = 1'], 'E1100:')
21516
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1865 enddef
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1866
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1867 def IfElse(what: number): string
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1868 var res = ''
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1869 if what == 1
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1870 res = "one"
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1871 elseif what == 2
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1872 res = "two"
19253
a8d2d3c8f0b3 patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Bram Moolenaar <Bram@vim.org>
parents: 19185
diff changeset
1873 else
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1874 res = "three"
19253
a8d2d3c8f0b3 patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Bram Moolenaar <Bram@vim.org>
parents: 19185
diff changeset
1875 endif
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1876 return res
19253
a8d2d3c8f0b3 patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Bram Moolenaar <Bram@vim.org>
parents: 19185
diff changeset
1877 enddef
a8d2d3c8f0b3 patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Bram Moolenaar <Bram@vim.org>
parents: 19185
diff changeset
1878
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1879 def Test_if_elseif_else()
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1880 assert_equal('one', IfElse(1))
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1881 assert_equal('two', IfElse(2))
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1882 assert_equal('three', IfElse(3))
19281
9fcdeaa18bd1 patch 8.2.0199: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19253
diff changeset
1883 enddef
9fcdeaa18bd1 patch 8.2.0199: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19253
diff changeset
1884
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1885 def Test_if_elseif_else_fails()
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1886 CheckDefFailure(['elseif true'], 'E582:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1887 CheckDefFailure(['else'], 'E581:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1888 CheckDefFailure(['endif'], 'E580:')
23723
14e92f4c98c9 patch 8.2.2403: Vim9: profiling if/elseif/endif not correct
Bram Moolenaar <Bram@vim.org>
parents: 23703
diff changeset
1889 CheckDefFailure(['if g:abool', 'elseif xxx'], 'E1001:')
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1890 CheckDefFailure(['if true', 'echo 1'], 'E171:')
23882
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1891
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1892 var lines =<< trim END
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1893 var s = ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1894 if s = ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1895 endif
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1896 END
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1897 CheckDefFailure(lines, 'E488:')
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1898
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1899 lines =<< trim END
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1900 var s = ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1901 if s == ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1902 elseif s = ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1903 endif
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1904 END
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
1905 CheckDefFailure(lines, 'E488:')
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1906 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1907
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1908 let g:bool_true = v:true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1909 let g:bool_false = v:false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1910
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1911 def Test_if_const_expr()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
1912 var res = false
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1913 if true ? true : false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1914 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1915 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1916 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1917
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1918 g:glob = 2
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1919 if false
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
1920 execute('g:glob = 3')
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1921 endif
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1922 assert_equal(2, g:glob)
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1923 if true
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
1924 execute('g:glob = 3')
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1925 endif
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1926 assert_equal(3, g:glob)
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1927
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1928 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1929 if g:bool_true ? true : false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1930 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1931 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1932 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1933
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1934 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1935 if true ? g:bool_true : false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1936 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1937 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1938 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1939
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1940 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1941 if true ? true : g:bool_false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1942 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1943 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1944 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1945
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1946 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1947 if true ? false : true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1948 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1949 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1950 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1951
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1952 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1953 if false ? false : true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1954 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1955 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1956 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1957
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1958 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1959 if false ? true : false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1960 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1961 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1962 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1963
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1964 res = false
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1965 if has('xyz') ? true : false
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1966 res = true
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1967 endif
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1968 assert_equal(false, res)
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1969
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1970 res = false
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1971 if true && true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1972 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1973 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1974 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1975
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1976 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1977 if true && false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1978 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1979 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1980 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1981
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1982 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1983 if g:bool_true && false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1984 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1985 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1986 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1987
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1988 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1989 if true && g:bool_false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1990 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1991 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1992 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1993
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1994 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1995 if false && false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1996 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1997 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1998 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1999
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2000 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2001 if true || false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2002 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2003 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2004 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2005
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2006 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2007 if g:bool_true || false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2008 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2009 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2010 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2011
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2012 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2013 if true || g:bool_false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2014 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2015 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2016 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2017
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2018 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2019 if false || false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2020 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2021 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2022 assert_equal(false, res)
21957
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2023
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2024 # with constant "false" expression may be invalid so long as the syntax is OK
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2025 if false | eval 0 | endif
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2026 if false | eval burp + 234 | endif
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2027 if false | echo burp 234 'asd' | endif
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2028 if false
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2029 burp
4343657b49fa patch 8.2.1528: Vim9: :endif not found after "if false"
Bram Moolenaar <Bram@vim.org>
parents: 21955
diff changeset
2030 endif
19878
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
2031 enddef
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2032
19878
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
2033 def Test_if_const_expr_fails()
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2034 CheckDefFailure(['if "aaa" == "bbb'], 'E114:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2035 CheckDefFailure(["if 'aaa' == 'bbb"], 'E115:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2036 CheckDefFailure(["if has('aaa'"], 'E110:')
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2037 CheckDefFailure(["if has('aaa') ? true false"], 'E109:')
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2038 enddef
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2039
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2040 def RunNested(i: number): number
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2041 var x: number = 0
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2042 if i % 2
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2043 if 1
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2044 # comment
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2045 else
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2046 # comment
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2047 endif
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2048 x += 1
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2049 else
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2050 x += 1000
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2051 endif
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2052 return x
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2053 enddef
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2054
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2055 def Test_nested_if()
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2056 assert_equal(1, RunNested(1))
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2057 assert_equal(1000, RunNested(2))
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2058 enddef
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2059
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2060 def Test_execute_cmd()
23183
4d5d12138b36 patch 8.2.2137: Vim9: :echo and :execute give error for empty argument
Bram Moolenaar <Bram@vim.org>
parents: 23179
diff changeset
2061 # missing argument is ignored
4d5d12138b36 patch 8.2.2137: Vim9: :echo and :execute give error for empty argument
Bram Moolenaar <Bram@vim.org>
parents: 23179
diff changeset
2062 execute
4d5d12138b36 patch 8.2.2137: Vim9: :echo and :execute give error for empty argument
Bram Moolenaar <Bram@vim.org>
parents: 23179
diff changeset
2063 execute # comment
4d5d12138b36 patch 8.2.2137: Vim9: :echo and :execute give error for empty argument
Bram Moolenaar <Bram@vim.org>
parents: 23179
diff changeset
2064
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2065 new
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2066 setline(1, 'default')
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2067 execute 'setline(1, "execute-string")'
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2068 assert_equal('execute-string', getline(1))
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2069
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2070 execute "setline(1, 'execute-string')"
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2071 assert_equal('execute-string', getline(1))
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2072
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2073 var cmd1 = 'setline(1,'
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2074 var cmd2 = '"execute-var")'
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2075 execute cmd1 cmd2 # comment
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2076 assert_equal('execute-var', getline(1))
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2077
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2078 execute cmd1 cmd2 '|setline(1, "execute-var-string")'
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2079 assert_equal('execute-var-string', getline(1))
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2080
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2081 var cmd_first = 'call '
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2082 var cmd_last = 'setline(1, "execute-var-var")'
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2083 execute cmd_first .. cmd_last
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2084 assert_equal('execute-var-var', getline(1))
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2085 bwipe!
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
2086
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2087 var n = true
21485
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
2088 execute 'echomsg' (n ? '"true"' : '"no"')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
2089 assert_match('^true$', Screenline(&lines))
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
2090
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2091 echomsg [1, 2, 3] {a: 1, b: 2}
21835
b530ead4265a patch 8.2.1467: Vim9: :echomsg doesn't like a dict argument
Bram Moolenaar <Bram@vim.org>
parents: 21833
diff changeset
2092 assert_match('^\[1, 2, 3\] {''a'': 1, ''b'': 2}$', Screenline(&lines))
b530ead4265a patch 8.2.1467: Vim9: :echomsg doesn't like a dict argument
Bram Moolenaar <Bram@vim.org>
parents: 21833
diff changeset
2093
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2094 CheckDefFailure(['execute xxx'], 'E1001:', 1)
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2095 CheckDefExecFailure(['execute "tabnext " .. 8'], 'E475:', 1)
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2096 CheckDefFailure(['execute "cmd"# comment'], 'E488:', 1)
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2097 enddef
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2098
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2099 def Test_execute_cmd_vimscript()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2100 # only checks line continuation
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2101 var lines =<< trim END
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2102 vim9script
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2103 execute 'g:someVar'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2104 .. ' = ' ..
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2105 '28'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2106 assert_equal(28, g:someVar)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2107 unlet g:someVar
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2108 END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2109 CheckScriptSuccess(lines)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2110 enddef
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2111
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2112 def Test_echo_cmd()
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2113 echo 'some' # comment
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
2114 echon 'thing'
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2115 assert_match('^something$', Screenline(&lines))
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2116
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2117 echo "some" # comment
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2118 echon "thing"
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2119 assert_match('^something$', Screenline(&lines))
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2120
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2121 var str1 = 'some'
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2122 var str2 = 'more'
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2123 echo str1 str2
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2124 assert_match('^some more$', Screenline(&lines))
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2125
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2126 CheckDefFailure(['echo "xxx"# comment'], 'E488:')
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2127 enddef
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2128
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2129 def Test_echomsg_cmd()
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2130 echomsg 'some' 'more' # comment
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2131 assert_match('^some more$', Screenline(&lines))
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2132 echo 'clear'
20982
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
2133 :1messages
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2134 assert_match('^some more$', Screenline(&lines))
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2135
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
2136 CheckDefFailure(['echomsg "xxx"# comment'], 'E488:')
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2137 enddef
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2138
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2139 def Test_echomsg_cmd_vimscript()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2140 # only checks line continuation
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2141 var lines =<< trim END
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2142 vim9script
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2143 echomsg 'here'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2144 .. ' is ' ..
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2145 'a message'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2146 assert_match('^here is a message$', Screenline(&lines))
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2147 END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2148 CheckScriptSuccess(lines)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2149 enddef
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2150
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2151 def Test_echoerr_cmd()
20289
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2152 try
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2153 echoerr 'something' 'wrong' # comment
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2154 catch
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2155 assert_match('something wrong', v:exception)
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2156 endtry
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2157 enddef
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2158
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2159 def Test_echoerr_cmd_vimscript()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2160 # only checks line continuation
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2161 var lines =<< trim END
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2162 vim9script
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2163 try
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2164 echoerr 'this'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2165 .. ' is ' ..
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2166 'wrong'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2167 catch
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2168 assert_match('this is wrong', v:exception)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2169 endtry
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2170 END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2171 CheckScriptSuccess(lines)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2172 enddef
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2173
19568
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2174 def Test_for_outside_of_function()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2175 var lines =<< trim END
19568
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2176 vim9script
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2177 new
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2178 for var in range(0, 3)
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2179 append(line('$'), var)
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2180 endfor
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2181 assert_equal(['', '0', '1', '2', '3'], getline(1, '$'))
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2182 bwipe!
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2183 END
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2184 writefile(lines, 'Xvim9for.vim')
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2185 source Xvim9for.vim
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2186 delete('Xvim9for.vim')
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2187 enddef
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2188
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2189 def Test_for_loop()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2190 var result = ''
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2191 for cnt in range(7)
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2192 if cnt == 4
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2193 break
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2194 endif
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2195 if cnt == 2
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2196 continue
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2197 endif
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2198 result ..= cnt .. '_'
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2199 endfor
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2200 assert_equal('0_1_3_', result)
21188
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2201
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2202 var concat = ''
21188
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2203 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: 21150
diff changeset
2204 concat ..= str
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2205 endfor
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2206 assert_equal('onetwo', concat)
23066
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2207
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2208 var total = 0
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2209 for nr in
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2210 [1, 2, 3]
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2211 total += nr
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2212 endfor
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2213 assert_equal(6, total)
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2214
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2215 total = 0
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2216 for nr
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2217 in [1, 2, 3]
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2218 total += nr
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2219 endfor
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2220 assert_equal(6, total)
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2221
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2222 total = 0
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2223 for nr
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2224 in
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2225 [1, 2, 3]
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2226 total += nr
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2227 endfor
b3124656f050 patch 8.2.2079: Vim9: cannot put a linebreak before or after "in" of ":for"
Bram Moolenaar <Bram@vim.org>
parents: 23056
diff changeset
2228 assert_equal(6, total)
23658
c8f26523d7d7 patch 8.2.2371: Vim9: crash when using types in :for with unpack
Bram Moolenaar <Bram@vim.org>
parents: 23656
diff changeset
2229
c8f26523d7d7 patch 8.2.2371: Vim9: crash when using types in :for with unpack
Bram Moolenaar <Bram@vim.org>
parents: 23656
diff changeset
2230 var res = ""
c8f26523d7d7 patch 8.2.2371: Vim9: crash when using types in :for with unpack
Bram Moolenaar <Bram@vim.org>
parents: 23656
diff changeset
2231 for [n: number, s: string] in [[1, 'a'], [2, 'b']]
c8f26523d7d7 patch 8.2.2371: Vim9: crash when using types in :for with unpack
Bram Moolenaar <Bram@vim.org>
parents: 23656
diff changeset
2232 res ..= n .. s
c8f26523d7d7 patch 8.2.2371: Vim9: crash when using types in :for with unpack
Bram Moolenaar <Bram@vim.org>
parents: 23656
diff changeset
2233 endfor
c8f26523d7d7 patch 8.2.2371: Vim9: crash when using types in :for with unpack
Bram Moolenaar <Bram@vim.org>
parents: 23656
diff changeset
2234 assert_equal('1a2b', res)
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2235 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2236
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2237 def Test_for_loop_fails()
23197
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
2238 CheckDefFailure(['for '], 'E1097:')
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
2239 CheckDefFailure(['for x'], 'E1097:')
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23185
diff changeset
2240 CheckDefFailure(['for x in'], 'E1097:')
20019
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2241 CheckDefFailure(['for # in range(5)'], 'E690:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2242 CheckDefFailure(['for i In range(5)'], 'E690:')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2243 CheckDefFailure(['var x = 5', 'for x in range(5)'], 'E1017:')
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
2244 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
23092
c713358da074 patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents: 23084
diff changeset
2245 delfunc! g:Func
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
2246 CheckDefFailure(['for i in "text"'], 'E1012:')
20019
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2247 CheckDefFailure(['for i in xxx'], 'E1001:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2248 CheckDefFailure(['endfor'], 'E588:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2249 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:')
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2250 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2251
23068
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2252 def Test_for_loop_script_var()
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2253 # cannot use s:var in a :def function
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2254 CheckDefFailure(['for s:var in range(3)', 'echo 3'], 'E1101:')
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2255
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2256 # can use s:var in Vim9 script, with or without s:
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2257 var lines =<< trim END
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2258 vim9script
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2259 var total = 0
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2260 for s:var in [1, 2, 3]
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2261 total += s:var
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2262 endfor
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2263 assert_equal(6, total)
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2264
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2265 total = 0
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2266 for var in [1, 2, 3]
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2267 total += var
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2268 endfor
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2269 assert_equal(6, total)
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2270 END
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2271 enddef
2f034cb0a046 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop
Bram Moolenaar <Bram@vim.org>
parents: 23066
diff changeset
2272
22975
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2273 def Test_for_loop_unpack()
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2274 var lines =<< trim END
23054
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2275 var result = []
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2276 for [v1, v2] in [[1, 2], [3, 4]]
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2277 result->add(v1)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2278 result->add(v2)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2279 endfor
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2280 assert_equal([1, 2, 3, 4], result)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2281
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2282 result = []
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2283 for [v1, v2; v3] in [[1, 2], [3, 4, 5, 6]]
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2284 result->add(v1)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2285 result->add(v2)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2286 result->add(v3)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2287 endfor
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2288 assert_equal([1, 2, [], 3, 4, [5, 6]], result)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2289
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2290 result = []
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2291 for [&ts, &sw] in [[1, 2], [3, 4]]
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2292 result->add(&ts)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2293 result->add(&sw)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2294 endfor
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2295 assert_equal([1, 2, 3, 4], result)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2296
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2297 var slist: list<string>
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2298 for [$LOOPVAR, @r, v:errmsg] in [['a', 'b', 'c'], ['d', 'e', 'f']]
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2299 slist->add($LOOPVAR)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2300 slist->add(@r)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2301 slist->add(v:errmsg)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2302 endfor
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2303 assert_equal(['a', 'b', 'c', 'd', 'e', 'f'], slist)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2304
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2305 slist = []
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2306 for [g:globalvar, b:bufvar, w:winvar, t:tabvar] in [['global', 'buf', 'win', 'tab'], ['1', '2', '3', '4']]
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2307 slist->add(g:globalvar)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2308 slist->add(b:bufvar)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2309 slist->add(w:winvar)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2310 slist->add(t:tabvar)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2311 endfor
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2312 assert_equal(['global', 'buf', 'win', 'tab', '1', '2', '3', '4'], slist)
23084
49c9aa9e40d4 patch 8.2.2088: Vim9: script test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
2313 unlet! g:globalvar b:bufvar w:winvar t:tabvar
23054
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2314 END
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2315 CheckDefAndScriptSuccess(lines)
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2316
df0548b649c1 patch 8.2.2073: Vim9: for with unpack only works for local variables
Bram Moolenaar <Bram@vim.org>
parents: 22975
diff changeset
2317 lines =<< trim END
22975
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2318 for [v1, v2] in [[1, 2, 3], [3, 4]]
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2319 echo v1 v2
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2320 endfor
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2321 END
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2322 CheckDefExecFailure(lines, 'E710:', 1)
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2323
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2324 lines =<< trim END
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2325 for [v1, v2] in [[1], [3, 4]]
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2326 echo v1 v2
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2327 endfor
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2328 END
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2329 CheckDefExecFailure(lines, 'E711:', 1)
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2330
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2331 lines =<< trim END
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2332 for [v1, v1] in [[1, 2], [3, 4]]
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2333 echo v1
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2334 endfor
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2335 END
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2336 CheckDefExecFailure(lines, 'E1017:', 1)
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2337 enddef
a943b175586a patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Bram Moolenaar <Bram@vim.org>
parents: 22936
diff changeset
2338
23927
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2339 def Test_for_loop_with_try_continue()
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2340 var looped = 0
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2341 var cleanup = 0
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2342 for i in range(3)
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2343 looped += 1
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2344 try
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2345 eval [][0]
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2346 catch
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2347 continue
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2348 finally
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2349 cleanup += 1
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2350 endtry
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2351 endfor
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2352 assert_equal(3, looped)
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2353 assert_equal(3, cleanup)
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2354 enddef
5e5780e3f75d patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Bram Moolenaar <Bram@vim.org>
parents: 23921
diff changeset
2355
19593
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2356 def Test_while_loop()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2357 var result = ''
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2358 var cnt = 0
19593
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2359 while cnt < 555
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2360 if cnt == 3
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2361 break
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2362 endif
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2363 cnt += 1
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2364 if cnt == 2
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2365 continue
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2366 endif
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2367 result ..= cnt .. '_'
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2368 endwhile
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2369 assert_equal('1_3_', result)
23884
00e904bdb8a5 patch 8.2.2484: Vim9: Cannot use a comment starting with #{
Bram Moolenaar <Bram@vim.org>
parents: 23882
diff changeset
2370
00e904bdb8a5 patch 8.2.2484: Vim9: Cannot use a comment starting with #{
Bram Moolenaar <Bram@vim.org>
parents: 23882
diff changeset
2371 var s = ''
23886
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
2372 while s == 'x' #{comment}
23884
00e904bdb8a5 patch 8.2.2484: Vim9: Cannot use a comment starting with #{
Bram Moolenaar <Bram@vim.org>
parents: 23882
diff changeset
2373 endwhile
19593
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2374 enddef
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2375
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2376 def Test_while_loop_fails()
20019
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2377 CheckDefFailure(['while xxx'], 'E1001:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2378 CheckDefFailure(['endwhile'], 'E588:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2379 CheckDefFailure(['continue'], 'E586:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2380 CheckDefFailure(['if true', 'continue'], 'E586:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2381 CheckDefFailure(['break'], 'E587:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2382 CheckDefFailure(['if true', 'break'], 'E587:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2383 CheckDefFailure(['while 1', 'echo 3'], 'E170:')
23882
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2384
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2385 var lines =<< trim END
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2386 var s = ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2387 while s = ''
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2388 endwhile
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2389 END
a4df35126d9c patch 8.2.2483: Vim9: type error for misformed expression
Bram Moolenaar <Bram@vim.org>
parents: 23827
diff changeset
2390 CheckDefFailure(lines, 'E488:')
19862
846fbbacce3a patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19860
diff changeset
2391 enddef
846fbbacce3a patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19860
diff changeset
2392
19730
fe8ba2f82f59 patch 8.2.0421: interrupting with CTRL-C does not always work
Bram Moolenaar <Bram@vim.org>
parents: 19728
diff changeset
2393 def Test_interrupt_loop()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2394 var caught = false
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2395 var x = 0
19736
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2396 try
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2397 while 1
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2398 x += 1
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2399 if x == 100
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2400 feedkeys("\<C-C>", 'Lt')
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2401 endif
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2402 endwhile
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2403 catch
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2404 caught = true
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2405 assert_equal(100, x)
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2406 endtry
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2407 assert_true(caught, 'should have caught an exception')
21987
c33cec63cf53 patch 8.2.1543: Vim9: test with invalid SID is skipped in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21985
diff changeset
2408 # consume the CTRL-C
c33cec63cf53 patch 8.2.1543: Vim9: test with invalid SID is skipped in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21985
diff changeset
2409 getchar(0)
19730
fe8ba2f82f59 patch 8.2.0421: interrupting with CTRL-C does not always work
Bram Moolenaar <Bram@vim.org>
parents: 19728
diff changeset
2410 enddef
19726
ad37a198a708 patch 8.2.0419: various memory leaks in Vim9 script code
Bram Moolenaar <Bram@vim.org>
parents: 19623
diff changeset
2411
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2412 def Test_automatic_line_continuation()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2413 var mylist = [
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2414 'one',
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2415 'two',
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2416 'three',
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2417 ] # comment
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2418 assert_equal(['one', 'two', 'three'], mylist)
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2419
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2420 var mydict = {
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2421 ['one']: 1,
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2422 ['two']: 2,
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2423 ['three']:
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2424 3,
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2425 } # comment
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2426 assert_equal({one: 1, two: 2, three: 3}, mydict)
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2427 mydict = {
20023
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2428 one: 1, # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2429 two: # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2430 2, # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2431 three: 3 # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2432 }
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2433 assert_equal({one: 1, two: 2, three: 3}, mydict)
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2434 mydict = {
20023
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2435 one: 1,
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2436 two:
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2437 2,
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2438 three: 3
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2439 }
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
2440 assert_equal({one: 1, two: 2, three: 3}, mydict)
20011
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2441
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2442 assert_equal(
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2443 ['one', 'two', 'three'],
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2444 split('one two three')
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2445 )
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2446 enddef
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2447
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2448 def Test_vim9_comment()
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2449 CheckScriptSuccess([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2450 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2451 '# something',
23179
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2452 '#something',
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2453 '#{something',
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2454 ])
23179
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2455
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2456 split Xfile
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2457 CheckScriptSuccess([
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2458 'vim9script',
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2459 'edit #something',
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2460 ])
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2461 CheckScriptSuccess([
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2462 'vim9script',
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2463 'edit #{something',
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2464 ])
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2465 close
821701ecbde7 patch 8.2.2135: Vim9: #{ still seen as start of dict in some places
Bram Moolenaar <Bram@vim.org>
parents: 23162
diff changeset
2466
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2467 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2468 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2469 ':# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2470 ], 'E488:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2471 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2472 '# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2473 ], 'E488:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2474 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2475 ':# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2476 ], 'E488:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2477
20061
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2478 { # block start
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2479 } # block end
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2480 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2481 '{# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2482 ], 'E488:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2483 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2484 '{',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2485 '}# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2486 ], 'E488:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2487
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2488 echo "yes" # comment
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2489 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2490 'echo "yes"# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2491 ], 'E488:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2492 CheckScriptSuccess([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2493 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2494 'echo "yes" # something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2495 ])
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2496 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2497 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2498 'echo "yes"# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2499 ], 'E121:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2500 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2501 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2502 'echo# something',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2503 ], 'E1144:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2504 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2505 'echo "yes" # something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2506 ], 'E121:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2507
20061
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2508 exe "echo" # comment
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2509 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2510 'exe "echo"# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2511 ], 'E488:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2512 CheckScriptSuccess([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2513 'vim9script',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2514 'exe "echo" # something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2515 ])
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2516 CheckScriptFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2517 'vim9script',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2518 'exe "echo"# something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2519 ], 'E121:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2520 CheckScriptFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2521 'vim9script',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2522 'exe# something',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2523 ], 'E1144:')
20061
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2524 CheckScriptFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2525 'exe "echo" # something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2526 ], 'E121:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2527
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2528 CheckDefFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2529 'try# comment',
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2530 ' echo "yes"',
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2531 'catch',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2532 'endtry',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2533 ], 'E1144:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2534 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2535 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2536 'try# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2537 'echo "yes"',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2538 ], 'E1144:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2539 CheckDefFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2540 'try',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2541 ' throw#comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2542 'catch',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2543 'endtry',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2544 ], 'E1144:')
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2545 CheckDefFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2546 'try',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2547 ' throw "yes"#comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2548 'catch',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2549 'endtry',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2550 ], 'E488:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2551 CheckDefFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2552 'try',
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2553 ' echo "yes"',
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2554 'catch# comment',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2555 'endtry',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2556 ], 'E1144:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2557 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2558 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2559 'try',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2560 ' echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2561 'catch# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2562 'endtry',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2563 ], 'E1144:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2564 CheckDefFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2565 'try',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2566 ' echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2567 'catch /pat/# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2568 'endtry',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2569 ], 'E488:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2570 CheckDefFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2571 'try',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2572 'echo "yes"',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2573 'catch',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2574 'endtry# comment',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2575 ], 'E1144:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2576 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2577 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2578 'try',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2579 ' echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2580 'catch',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2581 'endtry# comment',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2582 ], 'E1144:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2583
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2584 CheckScriptSuccess([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2585 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2586 'hi # comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2587 ])
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2588 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2589 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2590 'hi# comment',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2591 ], 'E1144:')
20116
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2592 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2593 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2594 'hi Search # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2595 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2596 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2597 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2598 'hi Search# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2599 ], 'E416:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2600 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2601 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2602 'hi link This Search # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2603 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2604 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2605 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2606 'hi link This That# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2607 ], 'E413:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2608 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2609 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2610 'hi clear This # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2611 'hi clear # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2612 ])
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2613 # not tested, because it doesn't give an error but a warning:
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2614 # hi clear This# comment',
20116
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2615 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2616 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2617 'hi clear# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2618 ], 'E416:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2619
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2620 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2621 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2622 'hi Group term=bold',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2623 'match Group /todo/ # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2624 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2625 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2626 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2627 'hi Group term=bold',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2628 'match Group /todo/# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2629 ], 'E488:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2630 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2631 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2632 'match # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2633 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2634 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2635 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2636 'match# comment',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2637 ], 'E1144:')
20116
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2638 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2639 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2640 'match none # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2641 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2642 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2643 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2644 'match none# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2645 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2646
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2647 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2648 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2649 'menutrans clear # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2650 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2651 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2652 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2653 'menutrans clear# comment text',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2654 ], 'E474:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2655
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2656 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2657 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2658 'syntax clear # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2659 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2660 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2661 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2662 'syntax clear# comment text',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2663 ], 'E28:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2664 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2665 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2666 'syntax keyword Word some',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2667 'syntax clear Word # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2668 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2669 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2670 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2671 'syntax keyword Word some',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2672 'syntax clear Word# comment text',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2673 ], 'E28:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2674
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2675 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2676 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2677 'syntax list # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2678 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2679 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2680 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2681 'syntax list# comment text',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2682 ], 'E28:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2683
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2684 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2685 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2686 'syntax match Word /pat/ oneline # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2687 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2688 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2689 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2690 'syntax match Word /pat/ oneline# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2691 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2692
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2693 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2694 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2695 'syntax keyword Word word # comm[ent',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2696 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2697 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2698 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2699 'syntax keyword Word word# comm[ent',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2700 ], 'E789:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2701
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2702 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2703 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2704 'syntax match Word /pat/ # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2705 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2706 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2707 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2708 'syntax match Word /pat/# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2709 ], 'E402:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2710
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2711 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2712 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2713 'syntax match Word /pat/ contains=Something # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2714 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2715 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2716 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2717 'syntax match Word /pat/ contains=Something# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2718 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2719 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2720 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2721 'syntax match Word /pat/ contains= # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2722 ], 'E406:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2723 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2724 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2725 'syntax match Word /pat/ contains=# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2726 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2727
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2728 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2729 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2730 'syntax region Word start=/pat/ end=/pat/ # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2731 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2732 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2733 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2734 'syntax region Word start=/pat/ end=/pat/# comment',
21375
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
2735 ], 'E402:')
20116
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2736
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2737 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2738 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2739 'syntax sync # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2740 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2741 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2742 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2743 'syntax sync# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2744 ], 'E404:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2745 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2746 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2747 'syntax sync ccomment # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2748 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2749 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2750 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2751 'syntax sync ccomment# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2752 ], 'E404:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2753
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2754 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2755 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2756 'syntax cluster Some contains=Word # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2757 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2758 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2759 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2760 'syntax cluster Some contains=Word# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2761 ], 'E475:')
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2762
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2763 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2764 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2765 'command Echo echo # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2766 'command Echo # comment',
23092
c713358da074 patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents: 23084
diff changeset
2767 'delcommand Echo',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2768 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2769 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2770 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2771 'command Echo echo# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2772 'Echo',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2773 ], 'E1144:')
23092
c713358da074 patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents: 23084
diff changeset
2774 delcommand Echo
23162
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2775
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2776 var curdir = getcwd()
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2777 CheckScriptSuccess([
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2778 'command Echo cd " comment',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2779 'Echo',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2780 'delcommand Echo',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2781 ])
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2782 CheckScriptSuccess([
23247
f2d05fb28e54 patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 23237
diff changeset
2783 'vim9script',
23162
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2784 'command Echo cd # comment',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2785 'Echo',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2786 'delcommand Echo',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2787 ])
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2788 CheckScriptFailure([
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2789 'vim9script',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2790 'command Echo cd " comment',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2791 'Echo',
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2792 ], 'E344:')
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2793 delcommand Echo
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2794 chdir(curdir)
c923f1888a77 patch 8.2.2127: Vim9: executing user command from Vim9 script not tested
Bram Moolenaar <Bram@vim.org>
parents: 23152
diff changeset
2795
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2796 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2797 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2798 'command Echo# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2799 ], 'E182:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2800 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2801 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2802 'command Echo echo',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2803 'command Echo# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2804 ], 'E182:')
23092
c713358da074 patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents: 23084
diff changeset
2805 delcommand Echo
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2806
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2807 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2808 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2809 'function # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2810 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2811 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2812 'vim9script',
21528
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2813 'function " comment',
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2814 ], 'E129:')
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2815 CheckScriptFailure([
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2816 'vim9script',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2817 'function# comment',
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2818 ], 'E1144:')
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2819 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2820 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2821 'function CheckScriptSuccess # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2822 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2823 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2824 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2825 'function CheckScriptSuccess# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2826 ], 'E488:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2827
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2828 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2829 'vim9script',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2830 'func g:DeleteMeA()',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2831 'endfunc',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2832 'delfunction g:DeleteMeA # comment',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2833 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2834 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2835 'vim9script',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2836 'func g:DeleteMeB()',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2837 'endfunc',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2838 'delfunction g:DeleteMeB# comment',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2839 ], 'E488:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2840
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2841 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2842 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2843 'call execute("ls") # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2844 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2845 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2846 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2847 'call execute("ls")# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2848 ], 'E488:')
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2849
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2850 CheckScriptFailure([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2851 'def Test() " comment',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2852 'enddef',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2853 ], 'E488:')
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2854 CheckScriptFailure([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2855 'vim9script',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2856 'def Test() " comment',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2857 'enddef',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2858 ], 'E488:')
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2859
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2860 CheckScriptSuccess([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2861 'func Test() " comment',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2862 'endfunc',
23092
c713358da074 patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents: 23084
diff changeset
2863 'delfunc Test',
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2864 ])
21528
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2865 CheckScriptSuccess([
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2866 'vim9script',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2867 'func Test() " comment',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2868 'endfunc',
21528
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2869 ])
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2870
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2871 CheckScriptSuccess([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2872 'def Test() # comment',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2873 'enddef',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2874 ])
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2875 CheckScriptFailure([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2876 'func Test() # comment',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2877 'endfunc',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2878 ], 'E488:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2879 enddef
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2880
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2881 def Test_vim9_comment_gui()
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2882 CheckCanRunGui
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2883
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2884 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2885 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2886 'gui#comment'
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
2887 ], 'E1144:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2888 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2889 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2890 'gui -f#comment'
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2891 ], 'E499:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2892 enddef
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2893
20079
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2894 def Test_vim9_comment_not_compiled()
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2895 au TabEnter *.vim g:entered = 1
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2896 au TabEnter *.x g:entered = 2
20079
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2897
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2898 edit test.vim
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2899 doautocmd TabEnter #comment
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2900 assert_equal(1, g:entered)
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2901
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2902 doautocmd TabEnter f.x
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2903 assert_equal(2, g:entered)
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2904
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2905 g:entered = 0
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2906 doautocmd TabEnter f.x #comment
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2907 assert_equal(2, g:entered)
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2908
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2909 assert_fails('doautocmd Syntax#comment', 'E216:')
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2910
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2911 au! TabEnter
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2912 unlet g:entered
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2913
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2914 CheckScriptSuccess([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2915 'vim9script',
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2916 'g:var = 123',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2917 'b:var = 456',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2918 'w:var = 777',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2919 't:var = 888',
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2920 'unlet g:var w:var # something',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2921 ])
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2922
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2923 CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2924 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2925 'let var = 123',
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2926 ], 'E1126: Cannot use :let in Vim9 script')
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2927
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2928 CheckScriptFailure([
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2929 'vim9script',
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2930 'var g:var = 123',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2931 ], 'E1016: Cannot declare a global variable:')
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2932
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2933 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2934 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2935 'var b:var = 123',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2936 ], 'E1016: Cannot declare a buffer variable:')
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2937
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2938 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2939 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2940 'var w:var = 123',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2941 ], 'E1016: Cannot declare a window variable:')
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2942
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2943 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2944 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2945 'var t:var = 123',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2946 ], 'E1016: Cannot declare a tab variable:')
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2947
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2948 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2949 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2950 'var v:version = 123',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2951 ], 'E1016: Cannot declare a v: variable:')
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2952
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2953 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2954 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2955 'var $VARIABLE = "text"',
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2956 ], 'E1016: Cannot declare an environment variable:')
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2957
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2958 CheckScriptFailure([
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2959 'vim9script',
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2960 'g:var = 123',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2961 'unlet g:var# comment1',
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2962 ], 'E108:')
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2963
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2964 CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2965 'let g:var = 123',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2966 'unlet g:var # something',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2967 ], 'E488:')
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2968
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2969 CheckScriptSuccess([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2970 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2971 'if 1 # comment2',
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2972 ' echo "yes"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2973 'elseif 2 #comment',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2974 ' echo "no"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2975 'endif',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2976 ])
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2977
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2978 CheckScriptFailure([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2979 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2980 'if 1# comment3',
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2981 ' echo "yes"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2982 'endif',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2983 ], 'E15:')
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2984
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2985 CheckScriptFailure([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2986 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2987 'if 0 # comment4',
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2988 ' echo "yes"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2989 'elseif 2#comment',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2990 ' echo "no"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2991 'endif',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2992 ], 'E15:')
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2993
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2994 CheckScriptSuccess([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2995 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
2996 'var v = 1 # comment5',
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2997 ])
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2998
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2999 CheckScriptFailure([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3000 'vim9script',
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3001 'var v = 1# comment6',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
3002 ], 'E15:')
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3003
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3004 CheckScriptSuccess([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3005 'vim9script',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3006 'new'
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
3007 'setline(1, ["# define pat", "last"])',
20982
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
3008 ':$',
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3009 'dsearch /pat/ #comment',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3010 'bwipe!',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3011 ])
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
3012
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3013 CheckScriptFailure([
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3014 'vim9script',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3015 'new'
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
3016 'setline(1, ["# define pat", "last"])',
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3017 ':$',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3018 'dsearch /pat/#comment',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3019 'bwipe!',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3020 ], 'E488:')
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3021
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3022 CheckScriptFailure([
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3023 'vim9script',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3024 'func! SomeFunc()',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3025 ], 'E477:')
20079
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
3026 enddef
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
3027
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3028 def Test_finish()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3029 var lines =<< trim END
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3030 vim9script
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
3031 g:res = 'one'
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3032 if v:false | finish | endif
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
3033 g:res = 'two'
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3034 finish
20945
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
3035 g:res = 'three'
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3036 END
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3037 writefile(lines, 'Xfinished')
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3038 source Xfinished
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3039 assert_equal('two', g:res)
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3040
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3041 unlet g:res
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3042 delete('Xfinished')
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3043 enddef
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
3044
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3045 def Test_forward_declaration()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3046 var lines =<< trim END
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3047 vim9script
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3048 def GetValue(): string
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3049 return theVal
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3050 enddef
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3051 var theVal = 'something'
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
3052 g:initVal = GetValue()
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3053 theVal = 'else'
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3054 g:laterVal = GetValue()
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3055 END
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3056 writefile(lines, 'Xforward')
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3057 source Xforward
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3058 assert_equal('something', g:initVal)
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3059 assert_equal('else', g:laterVal)
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3060
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3061 unlet g:initVal
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3062 unlet g:laterVal
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3063 delete('Xforward')
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3064 enddef
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3065
20816
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3066 def Test_source_vim9_from_legacy()
23364
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3067 var vim9_lines =<< trim END
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3068 vim9script
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3069 var local = 'local'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3070 g:global = 'global'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3071 export var exported = 'exported'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3072 export def GetText(): string
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3073 return 'text'
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3074 enddef
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3075 END
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3076 writefile(vim9_lines, 'Xvim9_script.vim')
17a0e32eefd4 patch 8.2.2225: Vim9: error when using :import in legacy script twice
Bram Moolenaar <Bram@vim.org>
parents: 23362
diff changeset
3077
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3078 var legacy_lines =<< trim END
20816
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3079 source Xvim9_script.vim
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3080
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3081 call assert_false(exists('local'))
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3082 call assert_false(exists('exported'))
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3083 call assert_false(exists('s:exported'))
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3084 call assert_equal('global', global)
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3085 call assert_equal('global', g:global)
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3086
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3087 " imported variable becomes script-local
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3088 import exported from './Xvim9_script.vim'
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3089 call assert_equal('exported', s:exported)
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3090 call assert_false(exists('exported'))
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3091
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3092 " imported function becomes script-local
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3093 import GetText from './Xvim9_script.vim'
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3094 call assert_equal('text', s:GetText())
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3095 call assert_false(exists('*GetText'))
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3096 END
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3097 writefile(legacy_lines, 'Xlegacy_script.vim')
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3098
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3099 source Xlegacy_script.vim
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3100 assert_equal('global', g:global)
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3101 unlet g:global
20816
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3102
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3103 delete('Xlegacy_script.vim')
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3104 delete('Xvim9_script.vim')
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3105 enddef
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3106
21801
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3107 func Test_vim9script_not_global()
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3108 " check that items defined in Vim9 script are script-local, not global
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3109 let vim9lines =<< trim END
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3110 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3111 var name = 'local'
21801
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3112 func TheFunc()
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3113 echo 'local'
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3114 endfunc
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3115 def DefFunc()
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3116 echo 'local'
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3117 enddef
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3118 END
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3119 call writefile(vim9lines, 'Xvim9script.vim')
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3120 source Xvim9script.vim
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3121 try
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3122 echo g:var
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3123 assert_report('did not fail')
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3124 catch /E121:/
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3125 " caught
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3126 endtry
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3127 try
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3128 call TheFunc()
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3129 assert_report('did not fail')
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3130 catch /E117:/
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3131 " caught
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3132 endtry
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3133 try
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3134 call DefFunc()
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3135 assert_report('did not fail')
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3136 catch /E117:/
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3137 " caught
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3138 endtry
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3139
21987
c33cec63cf53 patch 8.2.1543: Vim9: test with invalid SID is skipped in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21985
diff changeset
3140 call delete('Xvim9script.vim')
21801
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3141 endfunc
1344d45ca6f2 patch 8.2.1450: Vim9: no check that script-local items don't become global
Bram Moolenaar <Bram@vim.org>
parents: 21791
diff changeset
3142
21150
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3143 def Test_vim9_copen()
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3144 # this was giving an error for setting w:quickfix_title
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3145 copen
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3146 quit
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3147 enddef
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3148
23233
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3149 " test using an auto-loaded function and variable
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3150 def Test_vim9_autoload()
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3151 var lines =<< trim END
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3152 vim9script
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3153 def some#gettest(): string
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3154 return 'test'
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3155 enddef
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3156 g:some#name = 'name'
24077
5006d95ef82d patch 8.2.2580: Vim9: checking vararg type may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 24051
diff changeset
3157
5006d95ef82d patch 8.2.2580: Vim9: checking vararg type may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 24051
diff changeset
3158 def some#varargs(a1: string, ...l: list<string>): string
5006d95ef82d patch 8.2.2580: Vim9: checking vararg type may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 24051
diff changeset
3159 return a1 .. l[0] .. l[1]
5006d95ef82d patch 8.2.2580: Vim9: checking vararg type may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 24051
diff changeset
3160 enddef
23233
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3161 END
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3162
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3163 mkdir('Xdir/autoload', 'p')
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3164 writefile(lines, 'Xdir/autoload/some.vim')
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3165 var save_rtp = &rtp
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3166 exe 'set rtp^=' .. getcwd() .. '/Xdir'
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3167
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3168 assert_equal('test', g:some#gettest())
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3169 assert_equal('name', g:some#name)
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3170 g:some#other = 'other'
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3171 assert_equal('other', g:some#other)
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3172
24077
5006d95ef82d patch 8.2.2580: Vim9: checking vararg type may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 24051
diff changeset
3173 assert_equal('abc', some#varargs('a', 'b', 'c'))
5006d95ef82d patch 8.2.2580: Vim9: checking vararg type may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 24051
diff changeset
3174
23237
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3175 # upper case script name works
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3176 lines =<< trim END
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3177 vim9script
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3178 def Other#getOther(): string
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3179 return 'other'
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3180 enddef
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3181 END
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3182 writefile(lines, 'Xdir/autoload/Other.vim')
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3183 assert_equal('other', g:Other#getOther())
033b2a97d59b patch 8.2.2164: Vim9: autoload function doesn't work in uppercased script
Bram Moolenaar <Bram@vim.org>
parents: 23233
diff changeset
3184
23233
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3185 delete('Xdir', 'rf')
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3186 &rtp = save_rtp
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3187 enddef
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3188
21485
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3189 " test using a vim9script that is auto-loaded from an autocmd
23233
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3190 def Test_vim9_aucmd_autoload()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3191 var lines =<< trim END
21485
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3192 vim9script
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3193 def foo#test()
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3194 echomsg getreg('"')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3195 enddef
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3196 END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3197
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3198 mkdir('Xdir/autoload', 'p')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3199 writefile(lines, 'Xdir/autoload/foo.vim')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3200 var save_rtp = &rtp
21485
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3201 exe 'set rtp^=' .. getcwd() .. '/Xdir'
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3202 augroup test
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3203 autocmd TextYankPost * call foo#test()
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3204 augroup END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3205
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3206 normal Y
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3207
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3208 augroup test
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3209 autocmd!
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3210 augroup END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3211 delete('Xdir', 'rf')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3212 &rtp = save_rtp
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3213 enddef
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3214
22310
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3215 " This was causing a crash because suppress_errthrow wasn't reset.
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3216 def Test_vim9_autoload_error()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3217 var lines =<< trim END
22310
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3218 vim9script
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3219 def crash#func()
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3220 try
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3221 for x in List()
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3222 endfor
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3223 catch
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3224 endtry
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3225 g:ok = true
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3226 enddef
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3227 fu List()
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3228 invalid
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3229 endfu
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3230 try
23571
b02ac00aacbf patch 8.2.2328: some test files may not be deleted
Bram Moolenaar <Bram@vim.org>
parents: 23440
diff changeset
3231 alsoinvalid
22310
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3232 catch /wontmatch/
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3233 endtry
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3234 END
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3235 call mkdir('Xruntime/autoload', 'p')
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3236 call writefile(lines, 'Xruntime/autoload/crash.vim')
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3237
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3238 # run in a separate Vim to avoid the side effects of assert_fails()
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3239 lines =<< trim END
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3240 exe 'set rtp^=' .. getcwd() .. '/Xruntime'
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3241 call crash#func()
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3242 call writefile(['ok'], 'Xdidit')
22381
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3243 qall!
22310
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3244 END
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3245 writefile(lines, 'Xscript')
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3246 RunVim([], [], '-S Xscript')
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3247 assert_equal(['ok'], readfile('Xdidit'))
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3248
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3249 delete('Xdidit')
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3250 delete('Xscript')
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3251 delete('Xruntime', 'rf')
23233
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3252
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3253 lines =<< trim END
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3254 vim9script
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3255 var foo#bar = 'asdf'
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3256 END
657216220293 patch 8.2.2162: Vim9: Cannot load or store autoload variables
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
3257 CheckScriptFailure(lines, 'E461: Illegal variable name: foo#bar', 2)
22310
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3258 enddef
74d0a7a30583 patch 8.2.1704: Vim9: crash in for loop when autoload script has an error
Bram Moolenaar <Bram@vim.org>
parents: 22302
diff changeset
3259
21907
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3260 def Test_script_var_in_autocmd()
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3261 # using a script variable from an autocommand, defined in a :def function in a
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3262 # legacy Vim script, cannot check the variable type.
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3263 var lines =<< trim END
21907
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3264 let s:counter = 1
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3265 def s:Func()
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3266 au! CursorHold
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3267 au CursorHold * s:counter += 1
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3268 enddef
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3269 call s:Func()
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3270 doau CursorHold
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3271 call assert_equal(2, s:counter)
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3272 au! CursorHold
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3273 END
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3274 CheckScriptSuccess(lines)
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3275 enddef
f4e21796f47d patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 21905
diff changeset
3276
21707
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3277 def Test_cmdline_win()
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3278 # if the Vim syntax highlighting uses Vim9 constructs they can be used from
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3279 # the command line window.
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3280 mkdir('rtp/syntax', 'p')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3281 var export_lines =<< trim END
21707
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3282 vim9script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3283 export var That = 'yes'
21707
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3284 END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3285 writefile(export_lines, 'rtp/syntax/Xexport.vim')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3286 var import_lines =<< trim END
21707
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3287 vim9script
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3288 import That from './Xexport.vim'
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3289 END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3290 writefile(import_lines, 'rtp/syntax/vim.vim')
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3291 var save_rtp = &rtp
21707
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3292 &rtp = getcwd() .. '/rtp' .. ',' .. &rtp
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3293 syntax on
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3294 augroup CmdWin
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3295 autocmd CmdwinEnter * g:got_there = 'yes'
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3296 augroup END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3297 # this will open and also close the cmdline window
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3298 feedkeys('q:', 'xt')
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3299 assert_equal('yes', g:got_there)
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3300
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3301 augroup CmdWin
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3302 au!
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3303 augroup END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3304 &rtp = save_rtp
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3305 delete('rtp', 'rf')
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3306 enddef
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3307
21979
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
3308 def Test_invalid_sid()
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
3309 assert_fails('func <SNR>1234_func', 'E123:')
21987
c33cec63cf53 patch 8.2.1543: Vim9: test with invalid SID is skipped in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21985
diff changeset
3310
22381
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3311 if RunVim([], ['wq! Xdidit'], '+"func <SNR>1_func"')
22147
d55008685870 patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
3312 assert_equal([], readfile('Xdidit'))
21979
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
3313 endif
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
3314 delete('Xdidit')
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
3315 enddef
a98211c3e14e patch 8.2.1539: using invalid script ID causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 21957
diff changeset
3316
23152
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3317 def Test_restoring_cpo()
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3318 writefile(['vim9script', 'set nocp'], 'Xsourced')
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3319 writefile(['call writefile(["done"], "Xdone")', 'quit!'], 'Xclose')
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3320 if RunVim([], [], '-u NONE +"set cpo+=a" -S Xsourced -S Xclose')
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3321 assert_equal(['done'], readfile('Xdone'))
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3322 endif
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3323 delete('Xsourced')
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3324 delete('Xclose')
23247
f2d05fb28e54 patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 23237
diff changeset
3325 delete('Xdone')
23886
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3326
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3327 writefile(['vim9script'], 'XanotherScript')
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3328 set cpo=aABceFsMny>
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3329 edit XanotherScript
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3330 so %
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3331 assert_equal('aABceFsMny>', &cpo)
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3332 :1del
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3333 w
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3334 so %
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3335 assert_equal('aABceFsMny>', &cpo)
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3336
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3337 delete('XanotherScript')
eef0cffbdb94 patch 8.2.2485: when sourcing a script again the script version isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 23884
diff changeset
3338 set cpo&vim
23152
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3339 enddef
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3340
1c94e4c9db00 patch 8.2.2122: Vim9: crash when sourcing vim9script early
Bram Moolenaar <Bram@vim.org>
parents: 23106
diff changeset
3341
22250
dd42235ed626 patch 8.2.1674: Vim9: internal error when using variable that was not set
Bram Moolenaar <Bram@vim.org>
parents: 22202
diff changeset
3342 def Test_unset_any_variable()
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3343 var lines =<< trim END
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3344 var name: any
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3345 assert_equal(0, name)
22250
dd42235ed626 patch 8.2.1674: Vim9: internal error when using variable that was not set
Bram Moolenaar <Bram@vim.org>
parents: 22202
diff changeset
3346 END
dd42235ed626 patch 8.2.1674: Vim9: internal error when using variable that was not set
Bram Moolenaar <Bram@vim.org>
parents: 22202
diff changeset
3347 CheckDefAndScriptSuccess(lines)
dd42235ed626 patch 8.2.1674: Vim9: internal error when using variable that was not set
Bram Moolenaar <Bram@vim.org>
parents: 22202
diff changeset
3348 enddef
dd42235ed626 patch 8.2.1674: Vim9: internal error when using variable that was not set
Bram Moolenaar <Bram@vim.org>
parents: 22202
diff changeset
3349
22387
36f13f35bd78 patch 8.2.1742: test still fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22383
diff changeset
3350 func Test_define_func_at_command_line()
22383
82d92f6c756c patch 8.2.1740: test fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22381
diff changeset
3351 CheckRunVimInTerminal
82d92f6c756c patch 8.2.1740: test fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22381
diff changeset
3352
22387
36f13f35bd78 patch 8.2.1742: test still fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22383
diff changeset
3353 " call indirectly to avoid compilation error for missing functions
36f13f35bd78 patch 8.2.1742: test still fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22383
diff changeset
3354 call Run_Test_define_func_at_command_line()
36f13f35bd78 patch 8.2.1742: test still fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22383
diff changeset
3355 endfunc
36f13f35bd78 patch 8.2.1742: test still fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22383
diff changeset
3356
36f13f35bd78 patch 8.2.1742: test still fails without the terminal feature
Bram Moolenaar <Bram@vim.org>
parents: 22383
diff changeset
3357 def Run_Test_define_func_at_command_line()
22381
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3358 # run in a separate Vim instance to avoid the script context
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3359 var lines =<< trim END
22381
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3360 func CheckAndQuit()
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3361 call assert_fails('call Afunc()', 'E117: Unknown function: Bfunc')
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3362 call writefile(['errors: ' .. string(v:errors)], 'Xdidcmd')
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3363 endfunc
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3364 END
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3365 writefile([''], 'Xdidcmd')
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3366 writefile(lines, 'XcallFunc')
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
3367 var buf = RunVimInTerminal('-S XcallFunc', {rows: 6})
22381
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3368 # define Afunc() on the command line
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3369 term_sendkeys(buf, ":def Afunc()\<CR>Bfunc()\<CR>enddef\<CR>")
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3370 term_sendkeys(buf, ":call CheckAndQuit()\<CR>")
23428
5807e3958e38 patch 8.2.2257: Vim9: using -> for lambda is ambiguous
Bram Moolenaar <Bram@vim.org>
parents: 23364
diff changeset
3371 WaitForAssert(() => assert_equal(['errors: []'], readfile('Xdidcmd')))
22381
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3372
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3373 call StopVimInTerminal(buf)
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3374 delete('XcallFunc')
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3375 delete('Xdidcmd')
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3376 enddef
6fe9536694ff patch 8.2.1739: Vim9: crash when compiling a manually defined function
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
3377
22551
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3378 def Test_script_var_scope()
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3379 var lines =<< trim END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3380 vim9script
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3381 if true
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3382 if true
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3383 var one = 'one'
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3384 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3385 endif
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3386 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3387 endif
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3388 END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3389 CheckScriptFailure(lines, 'E121:', 7)
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3390
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3391 lines =<< trim END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3392 vim9script
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3393 if true
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3394 if false
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3395 var one = 'one'
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3396 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3397 else
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3398 var one = 'one'
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3399 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3400 endif
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3401 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3402 endif
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3403 END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3404 CheckScriptFailure(lines, 'E121:', 10)
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3405
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3406 lines =<< trim END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3407 vim9script
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3408 while true
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3409 var one = 'one'
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3410 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3411 break
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3412 endwhile
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3413 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3414 END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3415 CheckScriptFailure(lines, 'E121:', 7)
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3416
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3417 lines =<< trim END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3418 vim9script
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3419 for i in range(1)
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3420 var one = 'one'
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3421 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3422 endfor
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3423 echo one
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3424 END
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3425 CheckScriptFailure(lines, 'E121:', 6)
22555
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3426
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3427 lines =<< trim END
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3428 vim9script
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3429 {
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3430 var one = 'one'
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3431 assert_equal('one', one)
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3432 }
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3433 assert_false(exists('one'))
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3434 assert_false(exists('s:one'))
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3435 END
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3436 CheckScriptSuccess(lines)
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3437
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3438 lines =<< trim END
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3439 vim9script
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3440 {
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3441 var one = 'one'
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3442 echo one
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3443 }
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3444 echo one
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3445 END
7d25264c246c patch 8.2.1826: Vim9: cannot use a {} block at script level
Bram Moolenaar <Bram@vim.org>
parents: 22551
diff changeset
3446 CheckScriptFailure(lines, 'E121:', 6)
22551
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3447 enddef
86a115a80262 patch 8.2.1824: Vim9: variables at the script level escape their scope
Bram Moolenaar <Bram@vim.org>
parents: 22529
diff changeset
3448
22621
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3449 def Test_catch_exception_in_callback()
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3450 var lines =<< trim END
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3451 vim9script
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3452 def Callback(...l: any)
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3453 try
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3454 var x: string
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3455 var y: string
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3456 # this error should be caught with CHECKLEN
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3457 [x, y] = ['']
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3458 catch
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3459 g:caught = 'yes'
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3460 endtry
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3461 enddef
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
3462 popup_menu('popup', {callback: Callback})
22621
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3463 feedkeys("\r", 'xt')
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3464 END
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3465 CheckScriptSuccess(lines)
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3466
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3467 unlet g:caught
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3468 enddef
576a69fc0066 patch 8.2.1859: Vim9: crash in unpack assignment
Bram Moolenaar <Bram@vim.org>
parents: 22612
diff changeset
3469
22810
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3470 def Test_no_unknown_error_after_error()
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3471 if !has('unix') || !has('job')
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3472 throw 'Skipped: not unix of missing +job feature'
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3473 endif
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3474 var lines =<< trim END
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3475 vim9script
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3476 var source: list<number>
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3477 def Out_cb(...l: any)
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3478 eval [][0]
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3479 enddef
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3480 def Exit_cb(...l: any)
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3481 sleep 1m
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3482 source += l
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3483 enddef
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23068
diff changeset
3484 var myjob = job_start('echo burp', {out_cb: Out_cb, exit_cb: Exit_cb, mode: 'raw'})
23268
65fd662b434d patch 8.2.2180: Vim9: test for error after error is flaky
Bram Moolenaar <Bram@vim.org>
parents: 23252
diff changeset
3485 while job_status(myjob) == 'run'
65fd662b434d patch 8.2.2180: Vim9: test for error after error is flaky
Bram Moolenaar <Bram@vim.org>
parents: 23252
diff changeset
3486 sleep 10m
65fd662b434d patch 8.2.2180: Vim9: test for error after error is flaky
Bram Moolenaar <Bram@vim.org>
parents: 23252
diff changeset
3487 endwhile
23790
e2ebd45d4db0 patch 8.2.2436: Vim9 script test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 23723
diff changeset
3488 # wait for Exit_cb() to be called
e2ebd45d4db0 patch 8.2.2436: Vim9 script test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 23723
diff changeset
3489 sleep 100m
22810
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3490 END
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3491 writefile(lines, 'Xdef')
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3492 assert_fails('so Xdef', ['E684:', 'E1012:'])
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3493 delete('Xdef')
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3494 enddef
2d05dd71aac3 patch 8.2.1953: Vim9: extra "unknown" error after other error
Bram Moolenaar <Bram@vim.org>
parents: 22732
diff changeset
3495
23056
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3496 def InvokeNormal()
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3497 exe "norm! :m+1\r"
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3498 enddef
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3499
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3500 def Test_invoke_normal_in_visual_mode()
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3501 xnoremap <F3> <Cmd>call <SID>InvokeNormal()<CR>
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3502 new
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3503 setline(1, ['aaa', 'bbb'])
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3504 feedkeys("V\<F3>", 'xt')
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3505 assert_equal(['bbb', 'aaa'], getline(1, 2))
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3506 xunmap <F3>
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3507 enddef
57b6427c18e4 patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Bram Moolenaar <Bram@vim.org>
parents: 23054
diff changeset
3508
23185
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3509 def Test_white_space_after_command()
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3510 var lines =<< trim END
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3511 exit_cb: Func})
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3512 END
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3513 CheckDefAndScriptFailure(lines, 'E1144:', 1)
23342
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
3514
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
3515 lines =<< trim END
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
3516 e#
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
3517 END
13572a262b15 patch 8.2.2214: ":e#" does not give a warning for missing white space
Bram Moolenaar <Bram@vim.org>
parents: 23330
diff changeset
3518 CheckDefAndScriptFailure(lines, 'E1144:', 1)
23185
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3519 enddef
055fa9db6f39 patch 8.2.2138: Vim9: "exit_cb" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 23183
diff changeset
3520
23330
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3521 def Test_script_var_gone_when_sourced_twice()
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3522 var lines =<< trim END
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3523 vim9script
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3524 if exists('g:guard')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3525 finish
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3526 endif
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3527 g:guard = 1
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3528 var name = 'thename'
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3529 def g:GetName(): string
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3530 return name
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3531 enddef
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3532 def g:SetName(arg: string)
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3533 name = arg
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3534 enddef
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3535 END
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3536 writefile(lines, 'XscriptTwice.vim')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3537 so XscriptTwice.vim
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3538 assert_equal('thename', g:GetName())
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3539 g:SetName('newname')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3540 assert_equal('newname', g:GetName())
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3541 so XscriptTwice.vim
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3542 assert_fails('call g:GetName()', 'E1149:')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3543 assert_fails('call g:SetName("x")', 'E1149:')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3544
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3545 delfunc g:GetName
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3546 delfunc g:SetName
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3547 delete('XscriptTwice.vim')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3548 unlet g:guard
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3549 enddef
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3550
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3551 def Test_import_gone_when_sourced_twice()
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3552 var exportlines =<< trim END
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3553 vim9script
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3554 if exists('g:guard')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3555 finish
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3556 endif
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3557 g:guard = 1
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3558 export var name = 'someName'
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3559 END
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3560 writefile(exportlines, 'XexportScript.vim')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3561
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3562 var lines =<< trim END
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3563 vim9script
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3564 import name from './XexportScript.vim'
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3565 def g:GetName(): string
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3566 return name
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3567 enddef
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3568 END
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3569 writefile(lines, 'XscriptImport.vim')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3570 so XscriptImport.vim
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3571 assert_equal('someName', g:GetName())
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3572
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3573 so XexportScript.vim
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3574 assert_fails('call g:GetName()', 'E1149:')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3575
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3576 delfunc g:GetName
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3577 delete('XexportScript.vim')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3578 delete('XscriptImport.vim')
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3579 unlet g:guard
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3580 enddef
e8eb4fd44902 patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
Bram Moolenaar <Bram@vim.org>
parents: 23268
diff changeset
3581
23978
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3582 def Test_unsupported_commands()
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3583 var lines =<< trim END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3584 ka
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3585 END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3586 CheckDefAndScriptFailure(lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3587
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3588 lines =<< trim END
23980
bee8c78c0c6a patch 8.2.2532: Vim9: confusing error if :k is used with a range
Bram Moolenaar <Bram@vim.org>
parents: 23978
diff changeset
3589 :1ka
bee8c78c0c6a patch 8.2.2532: Vim9: confusing error if :k is used with a range
Bram Moolenaar <Bram@vim.org>
parents: 23978
diff changeset
3590 END
bee8c78c0c6a patch 8.2.2532: Vim9: confusing error if :k is used with a range
Bram Moolenaar <Bram@vim.org>
parents: 23978
diff changeset
3591 CheckDefAndScriptFailure(lines, 'E481:')
bee8c78c0c6a patch 8.2.2532: Vim9: confusing error if :k is used with a range
Bram Moolenaar <Bram@vim.org>
parents: 23978
diff changeset
3592
bee8c78c0c6a patch 8.2.2532: Vim9: confusing error if :k is used with a range
Bram Moolenaar <Bram@vim.org>
parents: 23978
diff changeset
3593 lines =<< trim END
23978
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3594 t
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3595 END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3596 CheckDefFailure(lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3597 CheckScriptFailure(['vim9script'] + lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3598
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3599 lines =<< trim END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3600 x
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3601 END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3602 CheckDefFailure(lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3603 CheckScriptFailure(['vim9script'] + lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3604
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3605 lines =<< trim END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3606 xit
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3607 END
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3608 CheckDefFailure(lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3609 CheckScriptFailure(['vim9script'] + lines, 'E1100:')
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3610 enddef
54b2aa1f0d42 patch 8.2.2531: Vim9: the :k command is obscure
Bram Moolenaar <Bram@vim.org>
parents: 23974
diff changeset
3611
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3612 " Keep this last, it messes up highlighting.
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3613 def Test_substitute_cmd()
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3614 new
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3615 setline(1, 'something')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3616 :substitute(some(other(
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3617 assert_equal('otherthing', getline(1))
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3618 bwipe!
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3619
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3620 # also when the context is Vim9 script
22415
1cefe1c013ac patch 8.2.1756: Vim9: :let will soon be disallowed
Bram Moolenaar <Bram@vim.org>
parents: 22395
diff changeset
3621 var lines =<< trim END
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3622 vim9script
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3623 new
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3624 setline(1, 'something')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3625 :substitute(some(other(
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3626 assert_equal('otherthing', getline(1))
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3627 bwipe!
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3628 END
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3629 writefile(lines, 'Xvim9lines')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3630 source Xvim9lines
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3631
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3632 delete('Xvim9lines')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3633 enddef
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3634
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3635 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker