annotate src/testdir/test_vim9_script.vim @ 21905:2474c6b0c5de v8.2.1502

patch 8.2.1502: Vim9: can use += with a :let command at script level Commit: https://github.com/vim/vim/commit/122616d9c1b57f1e1f29f1151f8e26d24df9092a Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 21 21:32:50 2020 +0200 patch 8.2.1502: Vim9: can use += with a :let command at script level Problem: Vim9: can use += with a :let command at script level. Solution: Give an error.
author Bram Moolenaar <Bram@vim.org>
date Fri, 21 Aug 2020 21:45:04 +0200
parents 1ebcce655dd3
children f4e21796f47d
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
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
8 def Test_syntax()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
9 let var = 234
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
10 let other: list<string> = ['asdf']
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
11 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
12
21901
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
13 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
14 new
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
15 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
16 :/Blah/
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
17 assert_equal(2, getcurpos()[1])
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
18 enddef
1ebcce655dd3 patch 8.2.1500: Vim9: error when using address without a command
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
19
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
20 let s:appendToMe = 'xxx'
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
21 let s:addToMe = 111
19449
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
22 let g:existing = 'yes'
19872
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
23 let g:inc_counter = 1
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
24 let $SOME_ENV_VAR = 'some'
20419
d54dfb5f12db patch 8.2.0764: Vim9: assigning to option not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20401
diff changeset
25 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
26 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
27 let g:anumber = 123
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
28
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
29 def Test_assignment()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
30 let bool1: bool = true
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
31 assert_equal(v:true, bool1)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
32 let bool2: bool = false
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
33 assert_equal(v:false, bool2)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
34
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
35 call CheckDefFailure(['let x:string'], 'E1069:')
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
36 call CheckDefFailure(['let x:string = "x"'], 'E1069:')
20349
e29b2ec8d4d2 patch 8.2.0730: Vim9: Assignment to dict member does not work
Bram Moolenaar <Bram@vim.org>
parents: 20347
diff changeset
37 call CheckDefFailure(['let a:string = "x"'], 'E1069:')
21691
f41c646cb8b9 patch 8.2.1395: Vim9: no error if declaring a funcref with lower case letter
Bram Moolenaar <Bram@vim.org>
parents: 21689
diff changeset
38 call CheckDefFailure(['let lambda = {-> "lambda"}'], 'E704:')
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
39
21443
66386ca8a69f patch 8.2.1272: Vim9: type not checked if declaration also assigns value
Bram Moolenaar <Bram@vim.org>
parents: 21435
diff changeset
40 let nr: number = 1234
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
41 call CheckDefFailure(['let nr: number = "asdf"'], 'E1012:')
21443
66386ca8a69f patch 8.2.1272: Vim9: type not checked if declaration also assigns value
Bram Moolenaar <Bram@vim.org>
parents: 21435
diff changeset
42
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
43 let a: number = 6 #comment
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
44 assert_equal(6, a)
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
45
19558
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
46 if has('channel')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
47 let chan1: channel
19564
06f29b6ea04a patch 8.2.0339: Vim9: function return type may depend on arguments
Bram Moolenaar <Bram@vim.org>
parents: 19558
diff changeset
48 let job1: job
19572
6b6e97d0185e patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Bram Moolenaar <Bram@vim.org>
parents: 19568
diff changeset
49 let job2: job = job_start('willfail')
19558
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
50 endif
19564
06f29b6ea04a patch 8.2.0339: Vim9: function return type may depend on arguments
Bram Moolenaar <Bram@vim.org>
parents: 19558
diff changeset
51 if has('float')
06f29b6ea04a patch 8.2.0339: Vim9: function return type may depend on arguments
Bram Moolenaar <Bram@vim.org>
parents: 19558
diff changeset
52 let float1: float = 3.4
06f29b6ea04a patch 8.2.0339: Vim9: function return type may depend on arguments
Bram Moolenaar <Bram@vim.org>
parents: 19558
diff changeset
53 endif
19912
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
54 let Funky1: func
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
55 let Funky2: func = function('len')
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
56 let Party2: func = funcref('g:Test_syntax')
19558
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
57
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
58 g:newvar = 'new' #comment
19449
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
59 assert_equal('new', g:newvar)
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
60
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
61 assert_equal('yes', g:existing)
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
62 g:existing = 'no'
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
63 assert_equal('no', g:existing)
f8408ba21982 patch 8.2.0282: Vim9: setting number option not tested
Bram Moolenaar <Bram@vim.org>
parents: 19445
diff changeset
64
19283
9dc843109c97 patch 8.2.0200: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19281
diff changeset
65 v:char = 'abc'
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
66 assert_equal('abc', v:char)
19283
9dc843109c97 patch 8.2.0200: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19281
diff changeset
67
9dc843109c97 patch 8.2.0200: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19281
diff changeset
68 $ENVVAR = 'foobar'
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
69 assert_equal('foobar', $ENVVAR)
19283
9dc843109c97 patch 8.2.0200: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19281
diff changeset
70 $ENVVAR = ''
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
71
21526
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
72 let lines =<< trim END
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
73 vim9script
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
74 $ENVVAR = 'barfoo'
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
75 assert_equal('barfoo', $ENVVAR)
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
76 $ENVVAR = ''
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
77 END
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
78 call CheckScriptSuccess(lines)
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
79
19451
b26e96f7c12f patch 8.2.0283: Vim9: failing to load script var not tested
Bram Moolenaar <Bram@vim.org>
parents: 19449
diff changeset
80 s:appendToMe ..= 'yyy'
b26e96f7c12f patch 8.2.0283: Vim9: failing to load script var not tested
Bram Moolenaar <Bram@vim.org>
parents: 19449
diff changeset
81 assert_equal('xxxyyy', s:appendToMe)
b26e96f7c12f patch 8.2.0283: Vim9: failing to load script var not tested
Bram Moolenaar <Bram@vim.org>
parents: 19449
diff changeset
82 s:addToMe += 222
b26e96f7c12f patch 8.2.0283: Vim9: failing to load script var not tested
Bram Moolenaar <Bram@vim.org>
parents: 19449
diff changeset
83 assert_equal(333, s:addToMe)
19455
655631882288 patch 8.2.0285: unused error message; cannot create s:var
Bram Moolenaar <Bram@vim.org>
parents: 19451
diff changeset
84 s:newVar = 'new'
655631882288 patch 8.2.0285: unused error message; cannot create s:var
Bram Moolenaar <Bram@vim.org>
parents: 19451
diff changeset
85 assert_equal('new', s:newVar)
19872
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
86
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
87 set ts=7
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
88 &ts += 1
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
89 assert_equal(8, &ts)
19878
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
90 &ts -= 3
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
91 assert_equal(5, &ts)
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
92 &ts *= 2
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
93 assert_equal(10, &ts)
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
94 &ts /= 3
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
95 assert_equal(3, &ts)
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
96 set ts=10
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
97 &ts %= 4
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
98 assert_equal(2, &ts)
21526
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
99
21881
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
100 if has('float')
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
101 let f100: float = 100.0
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
102 f100 /= 5
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
103 assert_equal(20.0, f100)
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
104
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
105 let f200: float = 200.0
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
106 f200 /= 5.0
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
107 assert_equal(40.0, f200)
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
108
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
109 CheckDefFailure(['let nr: number = 200', 'nr /= 5.0'], 'E1012:')
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
110 endif
675bf9475fff patch 8.2.1490: Vim9: using /= with float and number doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21839
diff changeset
111
21526
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
112 lines =<< trim END
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
113 vim9script
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
114 &ts = 6
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
115 &ts += 3
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
116 assert_equal(9, &ts)
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
117 END
21839
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
118 CheckScriptSuccess(lines)
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
119
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
120 CheckDefFailure(['&notex += 3'], 'E113:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
121 CheckDefFailure(['&ts ..= "xxx"'], 'E1019:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
122 CheckDefFailure(['&ts = [7]'], 'E1012:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
123 CheckDefExecFailure(['&ts = g:alist'], 'E1029: Expected number but got list')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
124 CheckDefFailure(['&ts = "xx"'], 'E1012:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
125 CheckDefExecFailure(['&ts = g:astring'], 'E1029: Expected number but got string')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
126 CheckDefFailure(['&path += 3'], 'E1012:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
127 CheckDefExecFailure(['&bs = "asdf"'], 'E474:')
20055
686deb5959c2 patch 8.2.0583: Vim9: # comment not recognized in :def function
Bram Moolenaar <Bram@vim.org>
parents: 20029
diff changeset
128 # test freeing ISN_STOREOPT
21839
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
129 CheckDefFailure(['&ts = 3', 'let asdf'], 'E1022:')
19878
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
130 &ts = 8
19872
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
131
21839
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
132 lines =<< trim END
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
133 let save_TI = &t_TI
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
134 &t_TI = ''
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
135 assert_equal('', &t_TI)
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
136 &t_TI = 'xxx'
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
137 assert_equal('xxx', &t_TI)
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
138 &t_TI = save_TI
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
139 END
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
140 CheckDefSuccess(lines)
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
141 CheckScriptSuccess(['vim9script'] + lines)
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
142
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
143 CheckDefFailure(['&t_TI = 123'], 'E1012:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
144 CheckScriptFailure(['vim9script', '&t_TI = 123'], 'E928:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
145
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
146 CheckDefFailure(['let s:var = 123'], 'E1101:')
c7699985db00 patch 8.2.1469: Vim9: cannot assign string to string option
Bram Moolenaar <Bram@vim.org>
parents: 21835
diff changeset
147 CheckDefFailure(['let s:var: number'], 'E1101:')
21540
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
148
21646
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
149 lines =<< trim END
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
150 vim9script
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
151 def SomeFunc()
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
152 s:var = 123
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
153 enddef
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
154 defcompile
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
155 END
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
156 call CheckScriptFailure(lines, 'E1089:')
a640bc762196 patch 8.2.1373: Vim9: no error for assigning to non-existing script var
Bram Moolenaar <Bram@vim.org>
parents: 21618
diff changeset
157
19872
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
158 g:inc_counter += 1
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
159 assert_equal(2, g:inc_counter)
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
160
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
161 $SOME_ENV_VAR ..= 'more'
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
162 assert_equal('somemore', $SOME_ENV_VAR)
21677
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
163 call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:')
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
164 call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:')
19872
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
165
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
166 @a = 'areg'
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
167 @a ..= 'add'
8a7bede7b138 patch 8.2.0492: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19862
diff changeset
168 assert_equal('aregadd', @a)
21677
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
169 call CheckDefFailure(['@a += "more"'], 'E1051:')
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
170 call CheckDefFailure(['@a += 123'], 'E1012:')
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
171
21526
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
172 lines =<< trim END
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
173 vim9script
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
174 @c = 'areg'
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
175 @c ..= 'add'
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
176 assert_equal('aregadd', @c)
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
177 END
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
178 call CheckScriptSuccess(lines)
a7afee13873d patch 8.2.1313: Vim9 script: cannot assign to environment variable
Bram Moolenaar <Bram@vim.org>
parents: 21516
diff changeset
179
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
180 v:errmsg = 'none'
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
181 v:errmsg ..= 'again'
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
182 assert_equal('noneagain', v:errmsg)
21677
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
183 call CheckDefFailure(['v:errmsg += "more"'], 'E1051:')
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
184 call CheckDefFailure(['v:errmsg += 123'], 'E1012:')
21540
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
185
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
186 # single letter variables
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
187 a = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
188 assert_equal(123, a)
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
189 let b: number
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
190 b = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
191 assert_equal(123, b)
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
192 let g: number
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
193 g = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
194 assert_equal(123, g)
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
195 let s: number
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
196 s = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
197 assert_equal(123, s)
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
198 let t: number
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
199 t = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
200 assert_equal(123, t)
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
201 let v: number
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
202 v = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
203 assert_equal(123, v)
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
204 let w: number
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
205 w = 123
8e278698b1fe patch 8.2.1320: Vim9: cannot declare some single letter variables
Bram Moolenaar <Bram@vim.org>
parents: 21528
diff changeset
206 assert_equal(123, w)
19912
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
207 enddef
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
208
20921
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
209 def Test_vim9_single_char_vars()
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
210 let lines =<< trim END
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
211 vim9script
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
212
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
213 # single character variable declarations work
20921
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
214 let a: string
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
215 let b: number
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
216 let l: list<any>
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
217 let s: string
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
218 let t: number
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
219 let v: number
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
220 let w: number
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
221
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
222 # script-local variables can be used without s: prefix
20921
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
223 a = 'script-a'
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
224 b = 111
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
225 l = [1, 2, 3]
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
226 s = 'script-s'
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
227 t = 222
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
228 v = 333
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
229 w = 444
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
230
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
231 assert_equal('script-a', a)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
232 assert_equal(111, b)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
233 assert_equal([1, 2, 3], l)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
234 assert_equal('script-s', s)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
235 assert_equal(222, t)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
236 assert_equal(333, v)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
237 assert_equal(444, w)
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
238 END
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
239 writefile(lines, 'Xsinglechar')
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
240 source Xsinglechar
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
241 delete('Xsinglechar')
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
242 enddef
187c3fb42c8f patch 8.2.1012: Vim9: cannot declare single character script variables
Bram Moolenaar <Bram@vim.org>
parents: 20919
diff changeset
243
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
244 def Test_assignment_list()
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
245 let list1: list<bool> = [false, true, false]
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
246 let list2: list<number> = [1, 2, 3]
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
247 let list3: list<string> = ['sdf', 'asdf']
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
248 let list4: list<any> = ['yes', true, 1234]
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
249 let list5: list<blob> = [0z01, 0z02]
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
250
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
251 let listS: list<string> = []
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
252 let listN: list<number> = []
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
253
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
254 assert_equal([1, 2, 3], list2)
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
255 list2[-1] = 99
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
256 assert_equal([1, 2, 99], list2)
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
257 list2[-2] = 88
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
258 assert_equal([1, 88, 99], list2)
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
259 list2[-3] = 77
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
260 assert_equal([77, 88, 99], list2)
21677
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
261 list2 += [100]
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
262 assert_equal([77, 88, 99, 100], list2)
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
263
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
264 list3 += ['end']
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
265 assert_equal(['sdf', 'asdf', 'end'], list3)
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
266
84d38f98e5de patch 8.2.1388: Vim9: += only works for numbers
Bram Moolenaar <Bram@vim.org>
parents: 21674
diff changeset
267
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
268 call CheckDefExecFailure(['let ll = [1, 2, 3]', 'll[-4] = 6'], 'E684:')
20915
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
269 call CheckDefExecFailure(['let [v1, v2] = [1, 2]'], 'E1092:')
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
270
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
271 # type becomes list<any>
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
272 let somelist = rand() > 0 ? [1, 2, 3] : ['a', 'b', 'c']
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
273 enddef
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
274
21413
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
275 def Test_assignment_list_vim9script()
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
276 let lines =<< trim END
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
277 vim9script
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
278 let v1: number
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
279 let v2: number
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
280 let v3: number
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
281 [v1, v2, v3] = [1, 2, 3]
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
282 assert_equal([1, 2, 3], [v1, v2, v3])
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
283 END
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
284 call CheckScriptSuccess(lines)
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
285 enddef
8992d4f63761 patch 8.2.1257: Vim9: list unpack doesn't work at the script level
Bram Moolenaar <Bram@vim.org>
parents: 21391
diff changeset
286
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
287 def Test_assignment_dict()
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
288 let dict1: dict<bool> = #{one: false, two: true}
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
289 let dict2: dict<number> = #{one: 1, two: 2}
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
290 let dict3: dict<string> = #{key: 'value'}
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
291 let dict4: dict<any> = #{one: 1, two: '2'}
20504
7fb80f486aad patch 8.2.0806: using "func!" after vim9script gives confusing error
Bram Moolenaar <Bram@vim.org>
parents: 20472
diff changeset
292 let dict5: dict<blob> = #{one: 0z01, two: 0z02}
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
293
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
294 # overwrite
20919
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
295 dict3['key'] = 'another'
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
296
21574
b8b15e8cbf5f patch 8.2.1337: Vim9: cannot use empty key in dict assignment
Bram Moolenaar <Bram@vim.org>
parents: 21548
diff changeset
297 # empty key can be used
b8b15e8cbf5f patch 8.2.1337: Vim9: cannot use empty key in dict assignment
Bram Moolenaar <Bram@vim.org>
parents: 21548
diff changeset
298 let dd = {}
b8b15e8cbf5f patch 8.2.1337: Vim9: cannot use empty key in dict assignment
Bram Moolenaar <Bram@vim.org>
parents: 21548
diff changeset
299 dd[""] = 6
b8b15e8cbf5f patch 8.2.1337: Vim9: cannot use empty key in dict assignment
Bram Moolenaar <Bram@vim.org>
parents: 21548
diff changeset
300 assert_equal({'': 6}, dd)
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
301
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
302 # type becomes dict<any>
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
303 let somedict = rand() > 0 ? #{a: 1, b: 2} : #{a: 'a', b: 'b'}
21576
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
304
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
305 # assignment to script-local dict
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
306 let lines =<< trim END
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
307 vim9script
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
308 let test: dict<any> = {}
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
309 def FillDict(): dict<any>
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
310 test['a'] = 43
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
311 return test
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
312 enddef
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
313 assert_equal(#{a: 43}, FillDict())
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
314 END
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
315 call CheckScriptSuccess(lines)
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
316
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
317 lines =<< trim END
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
318 vim9script
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
319 let test: dict<any>
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
320 def FillDict(): dict<any>
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
321 test['a'] = 43
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
322 return test
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
323 enddef
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
324 FillDict()
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
325 END
f4252efe370e patch 8.2.1338: Vim9: assigning to script-local variable doesn't check type
Bram Moolenaar <Bram@vim.org>
parents: 21574
diff changeset
326 call CheckScriptFailure(lines, 'E1103:')
21578
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
327
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
328 # assignment to global dict
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
329 lines =<< trim END
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
330 vim9script
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
331 g:test = {}
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
332 def FillDict(): dict<any>
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
333 g:test['a'] = 43
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
334 return g:test
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
335 enddef
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
336 assert_equal(#{a: 43}, FillDict())
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
337 END
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
338 call CheckScriptSuccess(lines)
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
339
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
340 # assignment to buffer dict
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
341 lines =<< trim END
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
342 vim9script
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
343 b:test = {}
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
344 def FillDict(): dict<any>
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
345 b:test['a'] = 43
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
346 return b:test
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
347 enddef
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
348 assert_equal(#{a: 43}, FillDict())
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
349 END
7417cb54cb24 patch 8.2.1339: Vim9: assigning to global dict variable doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21576
diff changeset
350 call CheckScriptSuccess(lines)
20472
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
351 enddef
1338b4dcb885 patch 8.2.0790: Vim9: list index not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20435
diff changeset
352
20089
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
353 def Test_assignment_local()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
354 # Test in a separated file in order not to the current buffer/window/tab is
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
355 # changed.
20089
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
356 let script_lines: list<string> =<< trim END
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
357 let b:existing = 'yes'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
358 let w:existing = 'yes'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
359 let t:existing = 'yes'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
360
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
361 def Test_assignment_local_internal()
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
362 b:newvar = 'new'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
363 assert_equal('new', b:newvar)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
364 assert_equal('yes', b:existing)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
365 b:existing = 'no'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
366 assert_equal('no', b:existing)
20338
ff4ae3f09307 patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Bram Moolenaar <Bram@vim.org>
parents: 20301
diff changeset
367 b:existing ..= 'NO'
ff4ae3f09307 patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Bram Moolenaar <Bram@vim.org>
parents: 20301
diff changeset
368 assert_equal('noNO', b:existing)
20089
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
369
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
370 w:newvar = 'new'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
371 assert_equal('new', w:newvar)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
372 assert_equal('yes', w:existing)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
373 w:existing = 'no'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
374 assert_equal('no', w:existing)
20338
ff4ae3f09307 patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Bram Moolenaar <Bram@vim.org>
parents: 20301
diff changeset
375 w:existing ..= 'NO'
ff4ae3f09307 patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Bram Moolenaar <Bram@vim.org>
parents: 20301
diff changeset
376 assert_equal('noNO', w:existing)
20089
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
377
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
378 t:newvar = 'new'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
379 assert_equal('new', t:newvar)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
380 assert_equal('yes', t:existing)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
381 t:existing = 'no'
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
382 assert_equal('no', t:existing)
20338
ff4ae3f09307 patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Bram Moolenaar <Bram@vim.org>
parents: 20301
diff changeset
383 t:existing ..= 'NO'
ff4ae3f09307 patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Bram Moolenaar <Bram@vim.org>
parents: 20301
diff changeset
384 assert_equal('noNO', t:existing)
20089
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
385 enddef
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
386 call Test_assignment_local_internal()
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
387 END
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
388 call CheckScriptSuccess(script_lines)
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
389 enddef
7fc5d62fe2a5 patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
390
19912
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
391 def Test_assignment_default()
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
392
20055
686deb5959c2 patch 8.2.0583: Vim9: # comment not recognized in :def function
Bram Moolenaar <Bram@vim.org>
parents: 20029
diff changeset
393 # Test default values.
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
394 let thebool: bool
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
395 assert_equal(v:false, thebool)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
396
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
397 let thenumber: number
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
398 assert_equal(0, thenumber)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
399
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
400 if has('float')
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
401 let thefloat: float
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
402 assert_equal(0.0, thefloat)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
403 endif
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
404
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
405 let thestring: string
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
406 assert_equal('', thestring)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
407
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
408 let theblob: blob
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
409 assert_equal(0z, theblob)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
410
19912
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
411 let Thefunc: func
d4fa9db88d16 patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents: 19904
diff changeset
412 assert_equal(test_null_function(), Thefunc)
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
413
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
414 let thelist: list<any>
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
415 assert_equal([], thelist)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
416
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
417 let thedict: dict<any>
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
418 assert_equal({}, thedict)
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
419
19890
2b117844f784 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Bram Moolenaar <Bram@vim.org>
parents: 19878
diff changeset
420 if has('channel')
2b117844f784 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Bram Moolenaar <Bram@vim.org>
parents: 19878
diff changeset
421 let thejob: job
2b117844f784 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Bram Moolenaar <Bram@vim.org>
parents: 19878
diff changeset
422 assert_equal(test_null_job(), thejob)
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
423
19890
2b117844f784 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Bram Moolenaar <Bram@vim.org>
parents: 19878
diff changeset
424 let thechannel: channel
2b117844f784 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Bram Moolenaar <Bram@vim.org>
parents: 19878
diff changeset
425 assert_equal(test_null_channel(), thechannel)
20919
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
426
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
427 if has('unix') && executable('cat')
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
428 # check with non-null job and channel, types must match
20919
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
429 thejob = job_start("cat ", #{})
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
430 thechannel = job_getchannel(thejob)
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
431 job_stop(thejob, 'kill')
96bf2b304932 patch 8.2.1011: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 20915
diff changeset
432 endif
19890
2b117844f784 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Bram Moolenaar <Bram@vim.org>
parents: 19878
diff changeset
433 endif
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
434
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
435 let nr = 1234 | nr = 5678
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
436 assert_equal(5678, nr)
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
437 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
438
20859
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
439 def Test_assignment_var_list()
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
440 let v1: string
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
441 let v2: string
20871
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
442 let vrem: list<string>
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
443 [v1] = ['aaa']
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
444 assert_equal('aaa', v1)
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
445
20859
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
446 [v1, v2] = ['one', 'two']
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
447 assert_equal('one', v1)
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
448 assert_equal('two', v2)
20871
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
449
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
450 [v1, v2; vrem] = ['one', 'two']
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
451 assert_equal('one', v1)
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
452 assert_equal('two', v2)
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
453 assert_equal([], vrem)
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
454
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
455 [v1, v2; vrem] = ['one', 'two', 'three']
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
456 assert_equal('one', v1)
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
457 assert_equal('two', v2)
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
458 assert_equal(['three'], vrem)
21681
877321650f7f patch 8.2.1390: Vim9: type error after storing an option value
Bram Moolenaar <Bram@vim.org>
parents: 21677
diff changeset
459
877321650f7f patch 8.2.1390: Vim9: type error after storing an option value
Bram Moolenaar <Bram@vim.org>
parents: 21677
diff changeset
460 [&ts, &sw] = [3, 4]
877321650f7f patch 8.2.1390: Vim9: type error after storing an option value
Bram Moolenaar <Bram@vim.org>
parents: 21677
diff changeset
461 assert_equal(3, &ts)
877321650f7f patch 8.2.1390: Vim9: type error after storing an option value
Bram Moolenaar <Bram@vim.org>
parents: 21677
diff changeset
462 assert_equal(4, &sw)
877321650f7f patch 8.2.1390: Vim9: type error after storing an option value
Bram Moolenaar <Bram@vim.org>
parents: 21677
diff changeset
463 set ts=8 sw=4
20859
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
464 enddef
876e16c48bd1 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Bram Moolenaar <Bram@vim.org>
parents: 20846
diff changeset
465
21548
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
466 def Test_assignment_vim9script()
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
467 let lines =<< trim END
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
468 vim9script
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
469 def Func(): list<number>
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
470 return [1, 2]
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
471 enddef
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
472 let var1: number
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
473 let var2: number
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
474 [var1, var2] =
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
475 Func()
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
476 assert_equal(1, var1)
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
477 assert_equal(2, var2)
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
478 let ll =
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
479 Func()
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
480 assert_equal([1, 2], ll)
21618
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
481
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
482 @/ = 'text'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
483 assert_equal('text', @/)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
484 @0 = 'zero'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
485 assert_equal('zero', @0)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
486 @1 = 'one'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
487 assert_equal('one', @1)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
488 @9 = 'nine'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
489 assert_equal('nine', @9)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
490 @- = 'minus'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
491 assert_equal('minus', @-)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
492 if has('clipboard_working')
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
493 @* = 'star'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
494 assert_equal('star', @*)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
495 @+ = 'plus'
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
496 assert_equal('plus', @+)
9ab43576a13b patch 8.2.1359: Vim9: cannot assign to / register in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 21616
diff changeset
497 endif
21674
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
498
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
499 let a: number = 123
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
500 assert_equal(123, a)
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
501 let s: string = 'yes'
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
502 assert_equal('yes', s)
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
503 let b: number = 42
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
504 assert_equal(42, b)
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
505 let w: number = 43
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
506 assert_equal(43, w)
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
507 let t: number = 44
f303d6a01a3e patch 8.2.1387: Vim9: cannot assign to single letter variable with type
Bram Moolenaar <Bram@vim.org>
parents: 21664
diff changeset
508 assert_equal(44, t)
21548
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
509 END
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
510 CheckScriptSuccess(lines)
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
511 enddef
4e679db1c404 patch 8.2.1324: Vim9: line break after "=" does not work
Bram Moolenaar <Bram@vim.org>
parents: 21540
diff changeset
512
19962
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
513 def Mess(): string
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
514 v:foldstart = 123
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
515 return 'xxx'
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
516 enddef
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
517
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
518 def Test_assignment_failure()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
519 call CheckDefFailure(['let var=234'], 'E1004:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
520 call CheckDefFailure(['let var =234'], 'E1004:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
521 call CheckDefFailure(['let var= 234'], 'E1004:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
522
21447
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
523 call CheckScriptFailure(['vim9script', 'let var=234'], 'E1004:')
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
524 call CheckScriptFailure(['vim9script', 'let var=234'], "before and after '='")
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
525 call CheckScriptFailure(['vim9script', 'let var =234'], 'E1004:')
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
526 call CheckScriptFailure(['vim9script', 'let var= 234'], 'E1004:')
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
527 call CheckScriptFailure(['vim9script', 'let var = 234', 'var+=234'], 'E1004:')
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
528 call CheckScriptFailure(['vim9script', 'let var = 234', 'var+=234'], "before and after '+='")
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
529 call CheckScriptFailure(['vim9script', 'let var = "x"', 'var..="y"'], 'E1004:')
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
530 call CheckScriptFailure(['vim9script', 'let var = "x"', 'var..="y"'], "before and after '..='")
369cde0d5771 patch 8.2.1274: Vim9: no error for missing white space at script level
Bram Moolenaar <Bram@vim.org>
parents: 21443
diff changeset
531
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
532 call CheckDefFailure(['let true = 1'], 'E1034:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
533 call CheckDefFailure(['let false = 1'], 'E1034:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
534
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21216
diff changeset
535 call CheckDefFailure(['[a; b; c] = g:list'], 'E452:')
20871
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
536 call CheckDefExecFailure(['let a: number',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
537 '[a] = test_null_list()'], 'E1093:')
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
538 call CheckDefExecFailure(['let a: number',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
539 '[a] = []'], 'E1093:')
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
540 call CheckDefExecFailure(['let x: number',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
541 'let y: number',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
542 '[x, y] = [1]'], 'E1093:')
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
543 call CheckDefExecFailure(['let x: number',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
544 'let y: number',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
545 'let z: list<number>',
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20859
diff changeset
546 '[x, y; z] = [1]'], 'E1093:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
547
19874
f92435f0f449 patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19872
diff changeset
548 call CheckDefFailure(['let somevar'], "E1022:")
21610
586241ee8096 patch 8.2.1355: Vim9: no error using :let for options and registers
Bram Moolenaar <Bram@vim.org>
parents: 21600
diff changeset
549 call CheckDefFailure(['let &tabstop = 4'], 'E1052:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
550 call CheckDefFailure(['&g:option = 5'], 'E113:')
21610
586241ee8096 patch 8.2.1355: Vim9: no error using :let for options and registers
Bram Moolenaar <Bram@vim.org>
parents: 21600
diff changeset
551 call CheckScriptFailure(['vim9script', 'let &tabstop = 4'], 'E1052:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
552
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
553 call CheckDefFailure(['let $VAR = 5'], 'E1016: Cannot declare an environment variable:')
21610
586241ee8096 patch 8.2.1355: Vim9: no error using :let for options and registers
Bram Moolenaar <Bram@vim.org>
parents: 21600
diff changeset
554 call CheckScriptFailure(['vim9script', 'let $ENV = "xxx"'], 'E1016:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
555
21616
6af96a5f09f0 patch 8.2.1358: Vim9: test fails with +dnd is not available
Bram Moolenaar <Bram@vim.org>
parents: 21614
diff changeset
556 if has('dnd')
6af96a5f09f0 patch 8.2.1358: Vim9: test fails with +dnd is not available
Bram Moolenaar <Bram@vim.org>
parents: 21614
diff changeset
557 call CheckDefFailure(['let @~ = 5'], 'E1066:')
6af96a5f09f0 patch 8.2.1358: Vim9: test fails with +dnd is not available
Bram Moolenaar <Bram@vim.org>
parents: 21614
diff changeset
558 else
6af96a5f09f0 patch 8.2.1358: Vim9: test fails with +dnd is not available
Bram Moolenaar <Bram@vim.org>
parents: 21614
diff changeset
559 call CheckDefFailure(['let @~ = 5'], 'E354:')
6af96a5f09f0 patch 8.2.1358: Vim9: test fails with +dnd is not available
Bram Moolenaar <Bram@vim.org>
parents: 21614
diff changeset
560 call CheckDefFailure(['@~ = 5'], 'E354:')
6af96a5f09f0 patch 8.2.1358: Vim9: test fails with +dnd is not available
Bram Moolenaar <Bram@vim.org>
parents: 21614
diff changeset
561 endif
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
562 call CheckDefFailure(['let @a = 5'], 'E1066:')
21614
d0128ecd4341 patch 8.2.1357: Vim9: cannot assign to / register
Bram Moolenaar <Bram@vim.org>
parents: 21610
diff changeset
563 call CheckDefFailure(['let @/ = "x"'], 'E1066:')
21610
586241ee8096 patch 8.2.1355: Vim9: no error using :let for options and registers
Bram Moolenaar <Bram@vim.org>
parents: 21600
diff changeset
564 call CheckScriptFailure(['vim9script', 'let @a = "abc"'], 'E1066:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
565
20953
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
566 call CheckDefFailure(['let g:var = 5'], '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
567 call CheckDefFailure(['let w:var = 5'], '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
568 call CheckDefFailure(['let b:var = 5'], '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
569 call CheckDefFailure(['let t:var = 5'], 'E1016: Cannot declare a tab variable:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
570
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
571 call CheckDefFailure(['let anr = 4', 'anr ..= "text"'], 'E1019:')
21905
2474c6b0c5de patch 8.2.1502: Vim9: can use += with a :let command at script level
Bram Moolenaar <Bram@vim.org>
parents: 21901
diff changeset
572 call CheckDefFailure(['let xnr += 4'], 'E1020:', 1)
2474c6b0c5de patch 8.2.1502: Vim9: can use += with a :let command at script level
Bram Moolenaar <Bram@vim.org>
parents: 21901
diff changeset
573 call CheckScriptFailure(['vim9script', 'let xnr += 4'], 'E1020:')
2474c6b0c5de patch 8.2.1502: Vim9: can use += with a :let command at script level
Bram Moolenaar <Bram@vim.org>
parents: 21901
diff changeset
574 call CheckDefFailure(["let xnr = xnr + 1"], 'E1001:', 1)
2474c6b0c5de patch 8.2.1502: Vim9: can use += with a :let command at script level
Bram Moolenaar <Bram@vim.org>
parents: 21901
diff changeset
575 call CheckScriptFailure(['vim9script', 'let xnr = xnr + 4'], 'E121:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
576
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
577 call CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef', 'defcompile'], 'E1108:')
19822
fc3cdc819d80 patch 8.2.0467: Vim9: some errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19818
diff changeset
578
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
579 call CheckDefFailure(['let var: list<string> = [123]'], 'expected list<string> but got list<number>')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
580 call CheckDefFailure(['let var: list<number> = ["xx"]'], 'expected list<number> but got list<string>')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
581
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
582 call CheckDefFailure(['let var: dict<string> = #{key: 123}'], 'expected dict<string> but got dict<number>')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
583 call CheckDefFailure(['let var: dict<number> = #{key: "xx"}'], 'expected dict<number> but got dict<string>')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
584
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
585 call CheckDefFailure(['let var = feedkeys("0")'], 'E1031:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
586 call CheckDefFailure(['let var: number = feedkeys("0")'], 'expected number but got void')
19558
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
587
19904
bd4f91762d0f patch 8.2.0508: Vim9: func and partial types not done yet
Bram Moolenaar <Bram@vim.org>
parents: 19894
diff changeset
588 call CheckDefFailure(['let var: dict <number>'], 'E1068:')
19558
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
589 call CheckDefFailure(['let var: dict<number'], 'E1009:')
19962
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
590
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
591 call assert_fails('s/^/\=Mess()/n', 'E794:')
12fa79cac39b patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
592 call CheckDefFailure(['let var: dict<number'], 'E1009:')
21471
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
593
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
594 call CheckDefFailure(['w:foo: number = 10'],
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
595 'E488: Trailing characters: : number = 1')
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
596 call CheckDefFailure(['t:foo: bool = true'],
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
597 'E488: Trailing characters: : bool = true')
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
598 call CheckDefFailure(['b:foo: string = "x"'],
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
599 'E488: Trailing characters: : string = "x"')
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
600 call CheckDefFailure(['g:foo: number = 123'],
126dcb0411ed patch 8.2.1286: Vim9: No error when using a type to a window variable
Bram Moolenaar <Bram@vim.org>
parents: 21447
diff changeset
601 'E488: Trailing characters: : number = 123')
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
602 enddef
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
603
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
604 def Test_unlet()
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
605 g:somevar = 'yes'
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
606 assert_true(exists('g:somevar'))
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
607 unlet g:somevar
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
608 assert_false(exists('g:somevar'))
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
609 unlet! g:somevar
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
610
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
611 call CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
612 'vim9script',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
613 'let svar = 123',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
614 'unlet svar',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
615 ], 'E1081:')
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
616 call CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
617 'vim9script',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
618 'let svar = 123',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
619 'unlet s:svar',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
620 ], 'E1081:')
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
621 call CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
622 'vim9script',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
623 'let svar = 123',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
624 'def Func()',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
625 ' unlet svar',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
626 '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
627 'defcompile',
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
628 ], 'E1081:')
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
629 call CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
630 'vim9script',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
631 'let svar = 123',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
632 'def Func()',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
633 ' unlet s:svar',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
634 '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
635 'defcompile',
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
636 ], 'E1081:')
20099
058b41f85bcb patch 8.2.0605: Vim9: cannot unlet an environment variable
Bram Moolenaar <Bram@vim.org>
parents: 20091
diff changeset
637
058b41f85bcb patch 8.2.0605: Vim9: cannot unlet an environment variable
Bram Moolenaar <Bram@vim.org>
parents: 20091
diff changeset
638 $ENVVAR = 'foobar'
058b41f85bcb patch 8.2.0605: Vim9: cannot unlet an environment variable
Bram Moolenaar <Bram@vim.org>
parents: 20091
diff changeset
639 assert_equal('foobar', $ENVVAR)
058b41f85bcb patch 8.2.0605: Vim9: cannot unlet an environment variable
Bram Moolenaar <Bram@vim.org>
parents: 20091
diff changeset
640 unlet $ENVVAR
058b41f85bcb patch 8.2.0605: Vim9: cannot unlet an environment variable
Bram Moolenaar <Bram@vim.org>
parents: 20091
diff changeset
641 assert_equal('', $ENVVAR)
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
642 enddef
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
643
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
644 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
645 # 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
646 CheckScriptSuccess([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
647 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
648 'func CheckMe()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
649 ' return 123',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
650 'endfunc',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
651 '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
652 ])
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
653
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
654 # 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
655 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
656 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
657 'func DeleteMe1()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
658 'endfunc',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
659 'delfunction DeleteMe1',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
660 ], 'E1084:')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
661 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
662 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
663 'func DeleteMe2()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
664 'endfunc',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
665 'def DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
666 ' delfunction DeleteMe2',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
667 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
668 'DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
669 ], 'E1084:')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
670 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
671 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
672 'def DeleteMe3()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
673 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
674 'delfunction DeleteMe3',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
675 ], 'E1084:')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
676 CheckScriptFailure([
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
677 'vim9script',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
678 'def DeleteMe4()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
679 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
680 'def DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
681 ' delfunction DeleteMe4',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
682 'enddef',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
683 'DoThat()',
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
684 ], 'E1084:')
21479
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
685
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
686 # Check that global :def function can be replaced and deleted
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
687 let lines =<< trim END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
688 vim9script
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
689 def g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
690 return "yes"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
691 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
692 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
693 def! g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
694 return "no"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
695 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
696 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
697 delfunc g:Global
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
698 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
699 END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
700 CheckScriptSuccess(lines)
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
701
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
702 # 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
703 lines =<< trim END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
704 vim9script
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
705 func g:Global()
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
706 return "yes"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
707 endfunc
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
708 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
709 def! g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
710 return "no"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
711 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
712 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
713 delfunc g:Global
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
714 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
715 END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
716 CheckScriptSuccess(lines)
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
717
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
718 # 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
719 lines =<< trim END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
720 vim9script
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
721 def g:Global(): string
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
722 return "yes"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
723 enddef
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
724 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
725 func! g:Global()
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
726 return "no"
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
727 endfunc
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
728 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
729 delfunc g:Global
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
730 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
731 END
90d859a402cc patch 8.2.1290: Vim9: cannot replace a global function
Bram Moolenaar <Bram@vim.org>
parents: 21473
diff changeset
732 CheckScriptSuccess(lines)
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
733 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
734
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
735 func Test_wrong_type()
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
736 call CheckDefFailure(['let var: list<nothing>'], 'E1010:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
737 call CheckDefFailure(['let var: list<list<nothing>>'], 'E1010:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
738 call CheckDefFailure(['let var: dict<nothing>'], 'E1010:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
739 call CheckDefFailure(['let var: dict<dict<nothing>>'], 'E1010:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
740
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
741 call CheckDefFailure(['let var: dict<number'], 'E1009:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
742 call CheckDefFailure(['let var: dict<list<number>'], 'E1009:')
19558
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
743
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
744 call CheckDefFailure(['let var: ally'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
745 call CheckDefFailure(['let var: bram'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
746 call CheckDefFailure(['let var: cathy'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
747 call CheckDefFailure(['let var: dom'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
748 call CheckDefFailure(['let var: freddy'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
749 call CheckDefFailure(['let var: john'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
750 call CheckDefFailure(['let var: larry'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
751 call CheckDefFailure(['let var: ned'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
752 call CheckDefFailure(['let var: pam'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
753 call CheckDefFailure(['let var: sam'], 'E1010:')
8eeec8886c02 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Bram Moolenaar <Bram@vim.org>
parents: 19532
diff changeset
754 call CheckDefFailure(['let var: vim'], 'E1010:')
20203
5a397db2c1ed patch 8.2.0657: Vim9: no check if called variable is a FuncRef
Bram Moolenaar <Bram@vim.org>
parents: 20195
diff changeset
755
5a397db2c1ed patch 8.2.0657: Vim9: no check if called variable is a FuncRef
Bram Moolenaar <Bram@vim.org>
parents: 20195
diff changeset
756 call CheckDefFailure(['let Ref: number', 'Ref()'], 'E1085:')
5a397db2c1ed patch 8.2.0657: Vim9: no check if called variable is a FuncRef
Bram Moolenaar <Bram@vim.org>
parents: 20195
diff changeset
757 call CheckDefFailure(['let Ref: string', 'let res = Ref()'], 'E1085:')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
758 endfunc
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
759
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
760 func Test_const()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
761 call CheckDefFailure(['const var = 234', 'var = 99'], 'E1018:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
762 call CheckDefFailure(['const one = 234', 'let one = 99'], 'E1017:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
763 call CheckDefFailure(['const two'], 'E1021:')
19860
37c4779ca8f5 patch 8.2.0486: Vim9: some code and error messages not tested
Bram Moolenaar <Bram@vim.org>
parents: 19822
diff changeset
764 call CheckDefFailure(['const &option'], 'E996:')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
765 endfunc
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
766
20982
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
767 def Test_range_no_colon()
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
768 call CheckDefFailure(['%s/a/b/'], 'E1050:')
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
769 call CheckDefFailure(['+ s/a/b/'], 'E1050:')
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
770 call CheckDefFailure(['- s/a/b/'], 'E1050:')
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
771 call CheckDefFailure(['. s/a/b/'], 'E1050:')
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
772 enddef
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
773
bb49b5090a9c patch 8.2.1042: Vim9: cannot put an operator on the next line
Bram Moolenaar <Bram@vim.org>
parents: 20953
diff changeset
774
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
775 def Test_block()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
776 let outer = 1
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
777 {
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
778 let inner = 2
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
779 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
780 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
781 }
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
782 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
783 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
784
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
785 func Test_block_failure()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
786 call CheckDefFailure(['{', 'let inner = 1', '}', 'echo inner'], 'E1001:')
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
787 call CheckDefFailure(['}'], 'E1025:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
788 call CheckDefFailure(['{', 'echo 1'], 'E1026:')
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
789 endfunc
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
790
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
791 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
792 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
793 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
794
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
795 def Test_try_catch()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
796 let l = []
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
797 try # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
798 add(l, '1')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
799 throw 'wrong'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
800 add(l, '2')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
801 catch # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
802 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
803 finally # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
804 add(l, '3')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
805 endtry # comment
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
806 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
807
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
808 l = []
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
809 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
810 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
811 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
812 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
813 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
814 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
815 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
816 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
817 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
818 add(l, 'caught')
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
819 finally
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
820 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
821 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
822 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
823
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
824 let n: number
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
825 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
826 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
827 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
828 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
829 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
830 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
831
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
832 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
833 # 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
834 n = g:astring[3]
21831
d8422de73113 patch 8.2.1465: Vim9: subscript not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21821
diff changeset
835 catch /E1029:/
21359
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
836 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
837 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
838 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
839
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
840 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
841 n = l[g:astring]
21831
d8422de73113 patch 8.2.1465: Vim9: subscript not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21821
diff changeset
842 catch /E1029:/
d8422de73113 patch 8.2.1465: Vim9: subscript not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21821
diff changeset
843 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
844 endtry
21831
d8422de73113 patch 8.2.1465: Vim9: subscript not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21821
diff changeset
845 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
846
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
847 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
848 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
849 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
850 n = 111
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
851 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
852 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
853
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
854 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
855 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
856 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
857 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
858 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
859 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
860
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
861 let d = #{one: 1}
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
862 try
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
863 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
864 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
865 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
866 endtry
e3711ce8133b patch 8.2.1230: Vim9: list index error not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21353
diff changeset
867 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
868
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
869 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
870 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
871 catch /E39:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
872 n = 233
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
873 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
874 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
875
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
876 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
877 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
878 catch /E1030:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
879 n = 244
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
880 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
881 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
882
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
883 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
884 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
885 catch /E745:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
886 n = 255
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
887 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
888 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
889
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
890 let nd: dict<any>
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
891 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
892 nd = {g:anumber: 1}
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
893 catch /E1029:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
894 n = 266
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
895 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
896 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
897
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
898 try
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
899 [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
900 catch /E1093:/
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
901 n = 277
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
902 endtry
fca850f4d603 patch 8.2.1233: Vim9: various errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21359
diff changeset
903 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
904
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
905 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
906 &ts = g:astring
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
907 catch /E1029:/
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
908 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
909 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
910 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
911
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
912 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
913 &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
914 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
915 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
916 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
917 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
918
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
919 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
920 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
921 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
922 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
923 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
924 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
925 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
926
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
927 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
928 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
929 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
930 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
931 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
932 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
933
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
934 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
935 d = {'text': 1, g:astring: 2}
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
936 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
937 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
938 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
939 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
940
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
941 try
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
942 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
943 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
944 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
945 endtry
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
946 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
947
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
948 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
949 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
950 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
951 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
952 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
953 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
954
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
955 let P = function('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
956 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
957 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
958 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
959 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
960 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
961 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
962 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
963
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
964 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
965 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
966 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
967 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
968 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
969 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
970
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
971 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
972 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
973 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
974 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
975 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
976 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
977
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
978 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
979 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
980 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
981 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
982 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
983 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
984
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
985 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
986 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
987 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
988 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
989 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
990 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
991
92e2ed2a2778 patch 8.2.1238: Vim9: a few remaining errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21371
diff changeset
992 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
993 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
994 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
995 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
996 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
997 assert_equal(411, n)
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
998 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
999
21371
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
1000 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
1001 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
1002 enddef
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
1003 defcompile
8e1081ede3b8 patch 8.2.1236: Vim9: a few errors not caught by try/catch
Bram Moolenaar <Bram@vim.org>
parents: 21365
diff changeset
1004 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
1005
19445
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1006 def ThrowFromDef()
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
1007 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
1008 enddef
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1009
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1010 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
1011 try
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1012 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
1013 catch
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1014 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
1015 endtry
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1016 endfunc
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1017
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1018 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
1019 try
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1020 ThrowFromDef()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1021 catch
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1022 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
1023 endtry
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1024 enddef
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1025
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
1026 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
1027 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
1028 return 'intry'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
1029 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
1030 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
1031 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
1032 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
1033 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
1034
19445
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1035 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
1036 CatchInFunc()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1037 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
1038
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1039 CatchInDef()
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1040 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
1041
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
1042 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
1043 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
1044 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
1045
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
1046 def Test_try_catch_match()
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
1047 let seq = 'a'
423b27246383 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Bram Moolenaar <Bram@vim.org>
parents: 19455
diff changeset
1048 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
1049 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
1050 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
1051 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
1052 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
1053 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
1054 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
1055 seq ..= 'x'
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1056 catch ?a\?sdf?
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1057 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
1058 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
1059 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
1060 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
1061 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
1062 enddef
6e27e1ffa2a6 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Bram Moolenaar <Bram@vim.org>
parents: 19443
diff changeset
1063
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1064 def Test_try_catch_fails()
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1065 call CheckDefFailure(['catch'], 'E603:')
21216
bcd08812cde3 patch 8.2.1159: Vim9: no error for missing space after a comma
Bram Moolenaar <Bram@vim.org>
parents: 21206
diff changeset
1066 call CheckDefFailure(['try', 'echo 0', 'catch', 'catch'], 'E1033:')
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1067 call CheckDefFailure(['try', 'echo 0', 'catch /pat'], 'E1067:')
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1068 call CheckDefFailure(['finally'], 'E606:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1069 call CheckDefFailure(['try', 'echo 0', 'finally', 'echo 1', 'finally'], 'E607:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1070 call CheckDefFailure(['endtry'], 'E602:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1071 call CheckDefFailure(['while 1', 'endtry'], 'E170:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1072 call CheckDefFailure(['for i in range(5)', 'endtry'], 'E170:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1073 call CheckDefFailure(['if 2', 'endtry'], 'E171:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1074 call CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1075
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
1076 call CheckDefFailure(['throw'], 'E1015:')
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1077 call 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
1078 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1079
21094
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1080 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
1081 # only checks line continuation
21094
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1082 let lines =<< trim END
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1083 vim9script
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1084 try
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1085 throw 'one'
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1086 .. 'two'
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1087 catch
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1088 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
1089 endtry
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1090 END
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1091 CheckScriptSuccess(lines)
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1092 enddef
376b520312d6 patch 8.2.1098: Vim9: cannot use line break in :throw argument
Bram Moolenaar <Bram@vim.org>
parents: 20982
diff changeset
1093
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
1094 def Test_error_in_nested_function()
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
1095 # an error in a nested :function aborts executin in the calling :def function
6c03897bcd60 patch 8.2.1428: Vim9: :def function does not abort on nested function error
Bram Moolenaar <Bram@vim.org>
parents: 21709
diff changeset
1096 let lines =<< trim 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
1097 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
1098 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
1099 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
1100 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
1101 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
1102 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
1103 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
1104 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
1105 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
1106 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
1107 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
1108 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
1109 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
1110 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
1111
21096
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1112 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
1113 # 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
1114 set errorformat=File\ %f\ line\ %l
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1115 let lines =<< trim END
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1116 vim9script
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1117 cexpr 'File'
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1118 .. ' someFile' ..
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1119 ' line 19'
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1120 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
1121 END
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1122 CheckScriptSuccess(lines)
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1123 set errorformat&
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1124 enddef
74e5e212e550 patch 8.2.1099: Vim9: cannot use line break in :cexpr argument
Bram Moolenaar <Bram@vim.org>
parents: 21094
diff changeset
1125
21775
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1126 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
1127 # legacy syntax is used for 'statusline'
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1128 let lines =<< trim END
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1129 vim9script
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1130 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
1131 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
1132 endfunc
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1133 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
1134 redrawstatus
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1135 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
1136 END
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1137 CheckScriptSuccess(lines)
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1138 enddef
6922d78b4d52 patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax
Bram Moolenaar <Bram@vim.org>
parents: 21757
diff changeset
1139
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1140 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
1141 # checks line continuation and comments
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1142 let lines =<< trim END
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1143 vim9script
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1144 let mylist = [
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1145 'one',
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1146 # comment
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1147 '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
1148
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1149 'three',
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1150 ]
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1151 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
1152 END
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1153 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
1154
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
1155 # 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
1156 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
1157 # 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
1158 two
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
1159 # 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
1160
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
1161 five
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
1162 # 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
1163 END
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21881
diff changeset
1164 assert_equal(['# comment 1', 'two', '# comment 3', '', 'five', '# comment 6'], lines)
21391
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1165 enddef
8b882afa8ed2 patch 8.2.1246: Vim9: comment after assignment doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 21375
diff changeset
1166
20291
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1167 if has('channel')
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1168 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
1169
20291
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1170 def FuncWithError()
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1171 echomsg g:someJob
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1172 enddef
20289
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
1173
20291
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1174 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
1175 try
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1176 call FuncWithError()
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1177 catch
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1178 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
1179 endtry
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1180 endfunc
f7b1e43beb8f patch 8.2.0701: Vim9 test fails without job feature
Bram Moolenaar <Bram@vim.org>
parents: 20289
diff changeset
1181 endif
20289
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
1182
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1183 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
1184 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1185 let name: string = 'bob'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1186 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
1187 return name .. arg
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1188 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
1189 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
1190 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
1191
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1192 export const CONST = 1234
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1193 export let exported = 9876
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1194 export let 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
1195 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
1196 return 'Exported'
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1197 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1198 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1199
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1200 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
1201 unlet g:result
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1202 unlet g:localname
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1203 enddef
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1204
19623
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1205 def Test_vim9_import_export()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1206 let import_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
1207 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1208 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
1209 g:imported = exported
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1210 exported += 3
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1211 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
1212 g:imported_func = Exported()
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1213
21473
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
1214 def GetExported(): string
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
1215 let local_dict = #{ref: Exported}
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
1216 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
1217 enddef
8bcd1ee2630b patch 8.2.1287: Vim9: crash when using an imported function
Bram Moolenaar <Bram@vim.org>
parents: 21471
diff changeset
1218 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
1219
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1220 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
1221 g:imported_name = exp_name
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1222 exp_name ..= ' Doe'
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1223 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
1224 g:imported_later = exported
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1225 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1226
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1227 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
1228 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
1229
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1230 source Ximport.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1231
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1232 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
1233 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
1234 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
1235 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
1236 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
1237 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
1238 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
1239 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
1240 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
1241 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
1242
21709
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1243 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
1244 unlet g:imported
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1245 unlet g:imported_added
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1246 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
1247 unlet g:imported_func
19326
d1810b726592 patch 8.2.0221: no test for Vim9 += and ..=
Bram Moolenaar <Bram@vim.org>
parents: 19320
diff changeset
1248 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
1249 delete('Ximport.vim')
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1250
21146
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1251 # similar, with line breaks
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1252 let import_line_break_script_lines =<< trim END
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1253 vim9script
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1254 import {
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1255 exported,
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1256 Exported,
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1257 }
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1258 from
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1259 './Xexport.vim'
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1260 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
1261 exported += 5
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1262 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
1263 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
1264 END
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1265 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
1266 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
1267
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1268 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
1269 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
1270 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
1271
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1272 # 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
1273 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
1274 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
1275 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
1276 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
1277 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
1278
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1279 # import inside :def function
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1280 let import_in_def_lines =<< trim END
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1281 vim9script
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1282 def ImportInDef()
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1283 import exported from './Xexport.vim'
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1284 g:imported = exported
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1285 exported += 7
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1286 g:imported_added = exported
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1287 enddef
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1288 ImportInDef()
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1289 END
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1290 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
1291 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
1292 # 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
1293 assert_equal(9876, g:imported)
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1294 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
1295 unlet g:imported
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1296 unlet g:imported_added
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1297 delete('Ximport2.vim')
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1298
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1299 let import_star_as_lines =<< trim END
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1300 vim9script
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1301 import * as Export from './Xexport.vim'
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1302 def UseExport()
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1303 g:imported = Export.exported
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1304 enddef
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1305 UseExport()
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1306 END
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1307 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
1308 source Ximport.vim
19583
ba35daca6553 patch 8.2.0348: Vim9: not all code tested
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
1309 assert_equal(9883, g:imported)
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1310
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1311 let import_star_as_lines_no_dot =<< trim END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1312 vim9script
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1313 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
1314 def Func()
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1315 let dummy = 1
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1316 let imported = Export + dummy
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1317 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
1318 defcompile
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1319 END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1320 writefile(import_star_as_lines_no_dot, 'Ximport.vim')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1321 assert_fails('source Ximport.vim', 'E1060:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1322
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1323 let import_star_as_lines_dot_space =<< trim END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1324 vim9script
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1325 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
1326 def Func()
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1327 let imported = Export . exported
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1328 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
1329 defcompile
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1330 END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1331 writefile(import_star_as_lines_dot_space, 'Ximport.vim')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1332 assert_fails('source Ximport.vim', 'E1074:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1333
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1334 let import_star_as_lines_missing_name =<< trim END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1335 vim9script
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1336 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
1337 def Func()
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1338 let imported = Export.
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1339 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
1340 defcompile
19818
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1341 END
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1342 writefile(import_star_as_lines_missing_name, 'Ximport.vim')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1343 assert_fails('source Ximport.vim', 'E1048:')
c1c88b333481 patch 8.2.0465: Vim9: dead code and wrong return type
Bram Moolenaar <Bram@vim.org>
parents: 19787
diff changeset
1344
21146
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1345 let import_star_as_lbr_lines =<< trim END
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1346 vim9script
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1347 import *
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1348 as Export
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1349 from
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1350 './Xexport.vim'
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1351 def UseExport()
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1352 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
1353 enddef
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1354 UseExport()
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1355 END
465d6e40e79c patch 8.2.1124: Vim9: no line break allowed in :import command
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
1356 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
1357 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
1358 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
1359
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1360 let import_star_lines =<< trim END
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1361 vim9script
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1362 import * from './Xexport.vim'
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1363 END
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1364 writefile(import_star_lines, 'Ximport.vim')
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1365 assert_fails('source Ximport.vim', 'E1045:')
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1366
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1367 # try to import something that exists but is not exported
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1368 let import_not_exported_lines =<< trim END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1369 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1370 import name from './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1371 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1372 writefile(import_not_exported_lines, 'Ximport.vim')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1373 assert_fails('source Ximport.vim', 'E1049:')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1374
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1375 # 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
1376 let 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
1377 vim9script
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1378 let exported = 'something'
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1379 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
1380 END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1381 writefile(import_already_defined, 'Ximport.vim')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1382 assert_fails('source Ximport.vim', 'E1073:')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1383
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1384 # 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
1385 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
1386 vim9script
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1387 let exported = 'something'
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1388 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
1389 END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1390 writefile(import_already_defined, 'Ximport.vim')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1391 assert_fails('source Ximport.vim', 'E1073:')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1392
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1393 # 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
1394 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
1395 vim9script
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1396 let exported = 'something'
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1397 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
1398 END
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1399 writefile(import_already_defined, 'Ximport.vim')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1400 assert_fails('source Ximport.vim', 'E1073:')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1401
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1402 # import a very long name, requires making a copy
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1403 let import_long_name_lines =<< trim END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1404 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1405 import name012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 from './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1406 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1407 writefile(import_long_name_lines, 'Ximport.vim')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1408 assert_fails('source Ximport.vim', 'E1048:')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1409
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1410 let import_no_from_lines =<< trim END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1411 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1412 import name './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1413 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1414 writefile(import_no_from_lines, 'Ximport.vim')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1415 assert_fails('source Ximport.vim', 'E1070:')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1416
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1417 let import_invalid_string_lines =<< trim END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1418 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1419 import name from Xexport.vim
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1420 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1421 writefile(import_invalid_string_lines, 'Ximport.vim')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1422 assert_fails('source Ximport.vim', 'E1071:')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1423
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1424 let import_wrong_name_lines =<< trim END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1425 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1426 import name from './XnoExport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1427 END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1428 writefile(import_wrong_name_lines, 'Ximport.vim')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1429 assert_fails('source Ximport.vim', 'E1053:')
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1430
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1431 let import_missing_comma_lines =<< trim END
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1432 vim9script
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1433 import {exported name} from './Xexport.vim'
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1434 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
1435 writefile(import_missing_comma_lines, 'Ximport3.vim')
2fee087c94cb patch 8.2.0368: Vim9: import that redefines local variable does not fail
Bram Moolenaar <Bram@vim.org>
parents: 19593
diff changeset
1436 assert_fails('source Ximport3.vim', 'E1046:')
19511
7e76d5fba19f patch 8.2.0313: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19509
diff changeset
1437
19509
17f0d6dc6a73 patch 8.2.0312: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19507
diff changeset
1438 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
1439 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
1440 delete('Xexport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1441
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1442 # 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
1443 set cpo&vi
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1444 let cpo_before = &cpo
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1445 let lines =<< trim END
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1446 vim9script
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1447 g:cpo_in_vim9script = &cpo
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1448 END
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1449 writefile(lines, 'Xvim9_script')
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1450 source Xvim9_script
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1451 assert_equal(cpo_before, &cpo)
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1452 set cpo&vim
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1453 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
1454 delete('Xvim9_script')
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1455 enddef
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1456
21652
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1457 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
1458 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
1459 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
1460 endfunc
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1461
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1462 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
1463 # check that :import and :export work when buffer is locked
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1464 let export_lines =<< trim END
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1465 vim9script
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1466 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
1467 return 'yes'
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1468 enddef
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1469 END
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1470 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
1471
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1472 let import_lines =<< trim END
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1473 vim9script
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1474 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
1475 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
1476 END
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1477 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
1478
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1479 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
1480 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
1481
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1482 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
1483 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
1484 nunmap trigger
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1485 enddef
befb512e0762 patch 8.2.1376: Vim9: expression mapping causes error for using :import
Bram Moolenaar <Bram@vim.org>
parents: 21648
diff changeset
1486
21664
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1487 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
1488 # 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
1489 mkdir('ftplugin', 'p')
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1490 let export_lines =<< trim END
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1491 vim9script
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1492 export let That = 'yes'
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1493 END
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1494 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
1495
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1496 let import_lines =<< trim END
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1497 vim9script
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1498 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
1499 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
1500 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
1501 END
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1502 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
1503
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1504 let save_rtp = &rtp
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1505 &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
1506
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1507 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
1508 copen
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1509 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
1510
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1511 quit!
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1512 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
1513 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
1514 &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
1515 enddef
60ba361a7fdb patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Bram Moolenaar <Bram@vim.org>
parents: 21652
diff changeset
1516
21699
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1517 def Test_use_import_in_mapping()
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1518 let 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
1519 vim9script
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1520 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
1521 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
1522 enddef
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1523 END
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1524 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
1525 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
1526 vim9script
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1527 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
1528 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
1529 END
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1530 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
1531
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1532 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
1533 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
1534 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
1535
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1536 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
1537 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
1538 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
1539 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
1540 enddef
1b96535705a0 patch 8.2.1399: Vim9: may find imported item in wrong script
Bram Moolenaar <Bram@vim.org>
parents: 21691
diff changeset
1541
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1542 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
1543 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
1544 CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1545 CheckScriptFailure(['export let 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
1546 CheckScriptFailure(['import some from "./Xexport.vim"'], 'E1048:')
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21216
diff changeset
1547 CheckScriptFailure(['vim9script', 'export let g:some'], 'E1022:')
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1548 CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1549
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
1550 CheckScriptFailure(['vim9script', 'let 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
1551 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
1552
19507
65049a682574 patch 8.2.0311: Vim9: insufficient script tests
Bram Moolenaar <Bram@vim.org>
parents: 19497
diff changeset
1553 assert_fails('vim9script', 'E1038')
20079
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
1554 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
1555 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1556
20883
8bc11506d787 patch 8.2.0993: Vim9 script test fails with normal features
Bram Moolenaar <Bram@vim.org>
parents: 20881
diff changeset
1557 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
1558 CheckRunVimInTerminal
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1559
20885
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1560 " 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
1561 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
1562 endfunc
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1563
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1564 def Run_Test_import_fails_on_command_line()
20881
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1565 let export =<< trim END
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1566 vim9script
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1567 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
1568 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
1569 enddef
58137dbee8da patch 8.2.0992: Vim9: crash when using :import in the Vim command
Bram Moolenaar <Bram@vim.org>
parents: 20871
diff changeset
1570 END
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1571 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
1572
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1573 let 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
1574 rows: 6, wait_for_ruler: 0})
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1575 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
1576
21701
6bb806a0238c patch 8.2.1400: Vim9: test does not delete written files
Bram Moolenaar <Bram@vim.org>
parents: 21699
diff changeset
1577 delete('XexportCmd.vim')
20885
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1578 StopVimInTerminal(buf)
b70555af8908 patch 8.2.0994: Vim9: missing function causes compilation error
Bram Moolenaar <Bram@vim.org>
parents: 20883
diff changeset
1579 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
1580
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1581 def Test_vim9script_reload_import()
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1582 let lines =<< trim END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1583 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1584 const var = ''
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1585 let valone = 1234
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1586 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
1587 valone = 5678
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1588 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1589 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1590 let morelines =<< trim END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1591 let valtwo = 222
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1592 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
1593 return valtwo
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1594 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1595 END
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1596 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
1597 source Xreload.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1598 source Xreload.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1599 source Xreload.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1600
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1601 let testlines =<< trim END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1602 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1603 def TheFunc()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1604 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
1605 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
1606 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1607 TheFunc()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1608 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1609 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
1610 source Ximport.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1611
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1612 # 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
1613 # 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
1614 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
1615 source Ximport.vim
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1616
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1617 # 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
1618 lines =<< trim END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1619 vim9script
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1620 let valone = 1234
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1621 let valone = 5678
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1622 END
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1623 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
1624 assert_fails('source Xreload.vim', 'E1041:')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1625
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1626 delete('Xreload.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1627 delete('Ximport.vim')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1628 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1629
21202
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1630 " 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
1631 " script-local name.
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1632 def Test_vim9script_funcref()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1633 let sortlines =<< trim END
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1634 vim9script
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1635 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
1636 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
1637 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1638
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1639 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
1640 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
1641 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1642 END
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1643 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
1644
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1645 let lines =<< trim END
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1646 vim9script
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1647 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
1648 def Test()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1649 g:result = FastSort()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1650 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1651 Test()
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1652 END
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1653 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
1654
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1655 source Xscript.vim
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1656 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
1657
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1658 unlet g:result
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1659 delete('Xsort.vim')
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1660 delete('Xscript.vim')
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1661 enddef
1a4e22aa2eb3 patch 8.2.1152: Vim9: function reference is missing script prefix
Bram Moolenaar <Bram@vim.org>
parents: 21188
diff changeset
1662
21206
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1663 " Check that when searcing for "FilterFunc" it doesn't find the import in the
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1664 " script where FastFilter() is called from.
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1665 def Test_vim9script_funcref_other_script()
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1666 let filterLines =<< trim END
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1667 vim9script
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1668 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
1669 return idx % 2 == 1
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1670 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1671 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
1672 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
1673 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1674 END
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1675 writefile(filterLines, 'Xfilter.vim')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1676
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1677 let lines =<< trim END
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1678 vim9script
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1679 import {FilterFunc, FastFilter} from './Xfilter.vim'
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1680 def Test()
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1681 let x: list<number> = FastFilter()
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1682 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1683 Test()
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1684 END
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1685 writefile(lines, 'Ximport.vim')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1686 assert_fails('source Ximport.vim', 'E121:')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1687
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1688 delete('Xfilter.vim')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1689 delete('Ximport.vim')
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1690 enddef
caab594592cc patch 8.2.1154: Vim9: crash when using imported function
Bram Moolenaar <Bram@vim.org>
parents: 21204
diff changeset
1691
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1692 def Test_vim9script_reload_delfunc()
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1693 let first_lines =<< trim END
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1694 vim9script
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1695 def FuncYes(): string
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1696 return 'yes'
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1697 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1698 END
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1699 let 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
1700 def FuncNo(): string
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1701 return 'no'
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1702 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1703 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
1704 assert_equal('yes', FuncYes())
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1705 assert_equal('no', FuncNo())
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1706 enddef
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1707 END
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1708 let nono_lines =<< trim END
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1709 def g:DoCheck(no_exists: bool)
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1710 assert_equal('yes', FuncYes())
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1711 assert_fails('call FuncNo()', 'E117:')
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1712 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1713 END
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1714
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1715 # FuncNo() is defined
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1716 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
1717 source Xreloaded.vim
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1718 g:DoCheck(true)
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1719
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1720 # FuncNo() is not redefined
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1721 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
1722 source Xreloaded.vim
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1723 g:DoCheck()
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1724
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1725 # FuncNo() is back
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1726 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
1727 source Xreloaded.vim
20195
a2447c58da25 patch 8.2.0653: using uninitialized pointer
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
1728 g:DoCheck()
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1729
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1730 delete('Xreloaded.vim')
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1731 enddef
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
1732
20347
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1733 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
1734 # write the script with a script-local variable
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1735 let 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
1736 vim9script
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1737 let var = 'string'
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1738 END
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1739 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
1740 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
1741
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1742 # 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
1743 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
1744 vim9script
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1745 def Func()
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1746 let var = 'string'
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1747 enddef
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1748 END
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1749 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
1750 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
1751
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1752 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
1753 enddef
0e1dfff4f294 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Bram Moolenaar <Bram@vim.org>
parents: 20338
diff changeset
1754
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1755 def Test_import_absolute()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1756 let 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
1757 'vim9script',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1758 '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
1759 'def UseExported()',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1760 ' 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
1761 ' exported = 8888',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1762 ' 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
1763 'enddef',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1764 'UseExported()',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1765 '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
1766 ]
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1767 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
1768 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
1769
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1770 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
1771
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1772 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
1773 assert_equal(8888, g:imported_after)
20019
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1774 assert_match('<SNR>\d\+_UseExported.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1775 'g:imported_abs = exported.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1776 '0 LOADSCRIPT exported from .*Xexport_abs.vim.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1777 '1 STOREG g:imported_abs.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1778 'exported = 8888.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1779 '3 STORESCRIPT exported in .*Xexport_abs.vim.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1780 'g:imported_after = exported.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1781 '4 LOADSCRIPT exported from .*Xexport_abs.vim.*' ..
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
1782 '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
1783 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
1784
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1785 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
1786 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
1787 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
1788
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1789 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
1790 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
1791 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1792
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1793 def Test_import_rtp()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1794 let 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
1795 'vim9script',
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
1796 '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
1797 '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
1798 ]
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1799 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
1800 mkdir('import')
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1801 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
1802
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1803 let save_rtp = &rtp
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1804 &rtp = getcwd()
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1805 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
1806 &rtp = save_rtp
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1807
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1808 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
1809
16d6b626aa8f patch 8.2.1404: Vim9: script test fails in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21707
diff changeset
1810 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
1811 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
1812 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
1813 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
1814 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1815
20538
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1816 def Test_import_compile_error()
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1817 let export_lines = [
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1818 'vim9script',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1819 'export def ExpFunc(): string',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1820 ' return notDefined',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1821 'enddef',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1822 ]
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1823 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
1824
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1825 let import_lines = [
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1826 'vim9script',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1827 '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
1828 'def ImpFunc()',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1829 ' echo ExpFunc()',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1830 'enddef',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1831 'defcompile',
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1832 ]
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1833 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
1834
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1835 try
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1836 source Ximport.vim
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1837 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
1838 # Error should be fore the Xexported.vim file.
20538
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1839 assert_match('E1001: variable not found: notDefined', v:exception)
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1840 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
1841 endtry
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1842
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1843 delete('Xexported.vim')
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1844 delete('Ximport.vim')
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1845 enddef
9f921ba86d05 patch 8.2.0823: Vim9: script reload test is disabled
Bram Moolenaar <Bram@vim.org>
parents: 20528
diff changeset
1846
21791
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1847 def Test_func_redefine_error()
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1848 let lines = [
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1849 'vim9script',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1850 '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
1851 ' 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
1852 'enddef',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1853 'Func()',
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1854 ]
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1855 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
1856
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1857 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
1858 try
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1859 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
1860 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
1861 # 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
1862 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
1863 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
1864 endtry
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1865 endfor
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1866
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1867 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
1868 enddef
d504fcd3d2c0 patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Bram Moolenaar <Bram@vim.org>
parents: 21775
diff changeset
1869
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
1870 def Test_func_overrules_import_fails()
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
1871 let export_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
1872 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
1873 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
1874 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
1875 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
1876 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
1877 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
1878
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
1879 let 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
1880 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
1881 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
1882 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
1883 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
1884 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
1885 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
1886 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
1887
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
1888 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
1889 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
1890 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
1891 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
1892 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
1893 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
1894 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
1895 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
1896 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
1897 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
1898 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
1899
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
1900 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
1901 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
1902
21600
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1903 def Test_func_redefine_fails()
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1904 let lines =<< trim END
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1905 vim9script
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1906 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
1907 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
1908 enddef
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1909 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
1910 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
1911 enddef
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1912 END
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1913 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
1914
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1915 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
1916 vim9script
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1917 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
1918 return 'foo'
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1919 enddef
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1920 def Func()
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1921 let Foo = {-> 'lambda'}
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1922 enddef
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1923 defcompile
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1924 END
bb4f55d20951 patch 8.2.1391: Vim9: no error for shadowing a script function
Bram Moolenaar <Bram@vim.org>
parents: 21681
diff changeset
1925 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
1926 enddef
622021f43db1 patch 8.2.1350: Vim9: no test for error message when redefining function
Bram Moolenaar <Bram@vim.org>
parents: 21598
diff changeset
1927
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1928 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
1929 # will be allocated as one piece of memory, check that changes work
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1930 let l = [1, 2, 3, 4]
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1931 l->remove(0)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1932 l->add(5)
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1933 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
1934 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
1935 enddef
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1936
21516
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1937 def Test_no_insert_xit()
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1938 call CheckDefExecFailure(['a = 1'], 'E1100:')
21584
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1939 call CheckDefExecFailure(['c = 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
1940 call CheckDefExecFailure(['i = 1'], 'E1100:')
21584
d0c76ce48326 patch 8.2.1342: Vim9: accidentally using "t" gives a confusing error
Bram Moolenaar <Bram@vim.org>
parents: 21578
diff changeset
1941 call CheckDefExecFailure(['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
1942 call 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
1943
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1944 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
1945 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
1946 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
1947 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
1948 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
1949 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
1950 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
1951 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
1952 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
1953 enddef
c7b2ce90c2de patch 8.2.1308: Vim9: accidentally using "x" causes Vim to exit
Bram Moolenaar <Bram@vim.org>
parents: 21485
diff changeset
1954
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1955 def IfElse(what: number): string
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1956 let res = ''
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1957 if what == 1
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1958 res = "one"
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1959 elseif what == 2
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1960 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
1961 else
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1962 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
1963 endif
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1964 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
1965 enddef
a8d2d3c8f0b3 patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Bram Moolenaar <Bram@vim.org>
parents: 19185
diff changeset
1966
19332
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1967 def Test_if_elseif_else()
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1968 assert_equal('one', IfElse(1))
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1969 assert_equal('two', IfElse(2))
d6e8a9e80be4 patch 8.2.0224: compiling :elseif not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 19330
diff changeset
1970 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
1971 enddef
9fcdeaa18bd1 patch 8.2.0199: Vim9 script commands not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19253
diff changeset
1972
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1973 def Test_if_elseif_else_fails()
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1974 call CheckDefFailure(['elseif true'], 'E582:')
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1975 call CheckDefFailure(['else'], 'E581:')
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1976 call CheckDefFailure(['endif'], 'E580:')
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1977 call CheckDefFailure(['if true', 'elseif xxx'], 'E1001:')
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1978 call CheckDefFailure(['if true', 'echo 1'], 'E171:')
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1979 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
1980
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1981 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
1982 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
1983
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1984 def Test_if_const_expr()
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1985 let res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1986 if true ? true : false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1987 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1988 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1989 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
1990
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1991 g:glob = 2
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1992 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
1993 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
1994 endif
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1995 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
1996 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
1997 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
1998 endif
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
1999 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
2000
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2001 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2002 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
2003 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2004 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2005 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2006
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2007 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2008 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
2009 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2010 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2011 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2012
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2013 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2014 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
2015 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2016 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2017 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2018
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2019 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2020 if true ? false : true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2021 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2022 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2023 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2024
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2025 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2026 if false ? false : true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2027 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2028 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2029 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2030
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2031 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2032 if false ? true : false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2033 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2034 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2035 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2036
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2037 res = false
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2038 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
2039 res = true
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2040 endif
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2041 assert_equal(false, res)
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2042
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2043 res = false
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2044 if true && true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2045 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2046 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2047 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2048
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2049 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2050 if true && false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2051 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2052 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2053 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2054
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2055 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2056 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
2057 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2058 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2059 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2060
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2061 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2062 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
2063 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2064 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2065 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2066
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2067 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2068 if false && false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2069 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2070 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2071 assert_equal(false, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2072
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2073 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2074 if true || false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2075 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2076 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2077 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2078
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2079 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2080 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
2081 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2082 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2083 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2084
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2085 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2086 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
2087 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2088 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2089 assert_equal(true, res)
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2090
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2091 res = false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2092 if false || false
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2093 res = true
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2094 endif
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2095 assert_equal(false, res)
19878
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
2096 enddef
19585
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2097
19878
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
2098 def Test_if_const_expr_fails()
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
2099 call CheckDefFailure(['if "aaa" == "bbb'], 'E114:')
dd3c80122a0e patch 8.2.0495: Vim9: some code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19874
diff changeset
2100 call CheckDefFailure(["if 'aaa' == 'bbb"], 'E115:')
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2101 call CheckDefFailure(["if has('aaa'"], 'E110:')
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2102 call 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
2103 enddef
0303f920a7d4 patch 8.2.0349: Vim9: constant expression not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19583
diff changeset
2104
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2105 def RunNested(i: number): number
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2106 let x: number = 0
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2107 if i % 2
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2108 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
2109 # comment
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2110 else
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2111 # comment
20899
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2112 endif
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2113 x += 1
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2114 else
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2115 x += 1000
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2116 endif
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2117 return x
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2118 enddef
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2119
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2120 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
2121 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
2122 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
2123 enddef
e76bddcf3341 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Bram Moolenaar <Bram@vim.org>
parents: 20885
diff changeset
2124
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2125 def Test_execute_cmd()
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2126 new
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2127 setline(1, 'default')
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2128 execute 'call setline(1, "execute-string")'
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2129 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
2130
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2131 execute "call setline(1, 'execute-string')"
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2132 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
2133
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2134 let cmd1 = 'call setline(1,'
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2135 let 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
2136 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
2137 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
2138
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2139 execute cmd1 cmd2 '|call setline(1, "execute-var-string")'
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2140 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
2141
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2142 let cmd_first = 'call '
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2143 let cmd_last = 'setline(1, "execute-var-var")'
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2144 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
2145 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
2146 bwipe!
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
2147
21485
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
2148 let n = true
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
2149 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
2150 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
2151
21835
b530ead4265a patch 8.2.1467: Vim9: :echomsg doesn't like a dict argument
Bram Moolenaar <Bram@vim.org>
parents: 21833
diff changeset
2152 echomsg [1, 2, 3] #{a: 1, b: 2}
b530ead4265a patch 8.2.1467: Vim9: :echomsg doesn't like a dict argument
Bram Moolenaar <Bram@vim.org>
parents: 21833
diff changeset
2153 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
2154
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
2155 call CheckDefFailure(['execute xxx'], 'E1001:')
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2156 call CheckDefFailure(['execute "cmd"# comment'], 'E488:')
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2157 enddef
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
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_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
2160 # only checks line continuation
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2161 let lines =<< trim END
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 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
2164 .. ' = ' ..
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2165 '28'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2166 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
2167 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
2168 END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2169 CheckScriptSuccess(lines)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2170 enddef
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2171
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2172 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
2173 echo 'some' # comment
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
2174 echon 'thing'
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2175 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
2176
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2177 echo "some" # comment
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2178 echon "thing"
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2179 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
2180
19528
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2181 let str1 = 'some'
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2182 let str2 = 'more'
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2183 echo str1 str2
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2184 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
2185
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2186 call 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
2187 enddef
3b026343f398 patch 8.2.0321: Vim9: ":execute" does not work yet
Bram Moolenaar <Bram@vim.org>
parents: 19521
diff changeset
2188
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2189 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
2190 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
2191 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
2192 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
2193 :1messages
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2194 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
2195
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2196 call CheckDefFailure(['echomsg "xxx"# comment'], 'E488:')
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2197 enddef
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2198
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2199 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
2200 # only checks line continuation
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2201 let lines =<< trim END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2202 vim9script
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2203 echomsg 'here'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2204 .. ' is ' ..
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2205 'a message'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2206 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
2207 END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2208 CheckScriptSuccess(lines)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2209 enddef
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2210
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2211 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
2212 try
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2213 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
2214 catch
208b38bddc36 patch 8.2.0700: Vim9: converting error message to exception not tested
Bram Moolenaar <Bram@vim.org>
parents: 20203
diff changeset
2215 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
2216 endtry
20142
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2217 enddef
fe8d0a4344df patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents: 20138
diff changeset
2218
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2219 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
2220 # only checks line continuation
21098
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2221 let lines =<< trim END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2222 vim9script
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2223 try
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2224 echoerr 'this'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2225 .. ' is ' ..
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2226 'wrong'
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2227 catch
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2228 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
2229 endtry
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2230 END
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2231 CheckScriptSuccess(lines)
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2232 enddef
e88b0daa2fcb patch 8.2.1100: Vim9: cannot use line break in :execute argument
Bram Moolenaar <Bram@vim.org>
parents: 21096
diff changeset
2233
19568
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2234 def Test_for_outside_of_function()
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2235 let lines =<< trim END
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2236 vim9script
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2237 new
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2238 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
2239 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
2240 endfor
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2241 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
2242 bwipe!
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2243 END
c0749ad6c699 patch 8.2.0341: using ":for" in Vim9 script gives an error
Bram Moolenaar <Bram@vim.org>
parents: 19566
diff changeset
2244 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
2245 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
2246 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
2247 enddef
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2248
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2249 def Test_for_loop()
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2250 let result = ''
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2251 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
2252 if cnt == 4
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2253 break
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2254 endif
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2255 if cnt == 2
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2256 continue
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2257 endif
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2258 result ..= cnt .. '_'
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2259 endfor
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2260 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
2261
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2262 let concat = ''
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2263 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
2264 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
2265 endfor
d73b6ba20053 patch 8.2.1145: Vim9: "for" only accepts a list at compile time
Bram Moolenaar <Bram@vim.org>
parents: 21150
diff changeset
2266 assert_equal('onetwo', concat)
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2267 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2268
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2269 def Test_for_loop_fails()
20019
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2270 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
2271 CheckDefFailure(['for i In range(5)'], 'E690:')
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
2272 CheckDefFailure(['let 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
2273 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
2274 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
2275 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
2276 CheckDefFailure(['endfor'], 'E588:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2277 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
2278 enddef
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2279
19593
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2280 def Test_while_loop()
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2281 let result = ''
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2282 let cnt = 0
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2283 while cnt < 555
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2284 if cnt == 3
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2285 break
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2286 endif
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2287 cnt += 1
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2288 if cnt == 2
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2289 continue
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2290 endif
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2291 result ..= cnt .. '_'
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2292 endwhile
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2293 assert_equal('1_3_', result)
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2294 enddef
043989a2f449 patch 8.2.0353: Vim9: while loop not tested
Bram Moolenaar <Bram@vim.org>
parents: 19585
diff changeset
2295
19892
5feb426d2ea1 patch 8.2.0502: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19890
diff changeset
2296 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
2297 CheckDefFailure(['while xxx'], 'E1001:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2298 CheckDefFailure(['endwhile'], 'E588:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2299 CheckDefFailure(['continue'], 'E586:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2300 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
2301 CheckDefFailure(['break'], 'E587:')
e9af5a09a55b patch 8.2.0565: Vim9: tests contain superfluous line continuation
Bram Moolenaar <Bram@vim.org>
parents: 20011
diff changeset
2302 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
2303 CheckDefFailure(['while 1', 'echo 3'], 'E170:')
19862
846fbbacce3a patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19860
diff changeset
2304 enddef
846fbbacce3a patch 8.2.0487: Vim9: compiling not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19860
diff changeset
2305
19730
fe8ba2f82f59 patch 8.2.0421: interrupting with CTRL-C does not always work
Bram Moolenaar <Bram@vim.org>
parents: 19728
diff changeset
2306 def Test_interrupt_loop()
19736
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2307 let caught = false
19730
fe8ba2f82f59 patch 8.2.0421: interrupting with CTRL-C does not always work
Bram Moolenaar <Bram@vim.org>
parents: 19728
diff changeset
2308 let x = 0
19736
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2309 try
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2310 while 1
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2311 x += 1
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2312 if x == 100
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2313 feedkeys("\<C-C>", 'Lt')
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2314 endif
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2315 endwhile
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2316 catch
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2317 caught = true
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2318 assert_equal(100, x)
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2319 endtry
4174c4da6ff7 patch 8.2.0424: checking for wrong return value
Bram Moolenaar <Bram@vim.org>
parents: 19730
diff changeset
2320 assert_true(caught, 'should have caught an exception')
19730
fe8ba2f82f59 patch 8.2.0421: interrupting with CTRL-C does not always work
Bram Moolenaar <Bram@vim.org>
parents: 19728
diff changeset
2321 enddef
19726
ad37a198a708 patch 8.2.0419: various memory leaks in Vim9 script code
Bram Moolenaar <Bram@vim.org>
parents: 19623
diff changeset
2322
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2323 def Test_automatic_line_continuation()
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2324 let mylist = [
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2325 'one',
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2326 'two',
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2327 'three',
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2328 ] # comment
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2329 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
2330
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2331 let mydict = {
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2332 'one': 1,
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2333 'two': 2,
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2334 'three':
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2335 3,
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2336 } # comment
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2337 assert_equal({'one': 1, 'two': 2, 'three': 3}, mydict)
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2338 mydict = #{
20023
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2339 one: 1, # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2340 two: # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2341 2, # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2342 three: 3 # comment
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2343 }
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2344 assert_equal(#{one: 1, two: 2, three: 3}, mydict)
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2345 mydict = #{
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2346 one: 1,
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2347 two:
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2348 2,
c85d4e173cc9 patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents: 20019
diff changeset
2349 three: 3
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2350 }
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2351 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
2352
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2353 assert_equal(
628011800942 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Bram Moolenaar <Bram@vim.org>
parents: 19999
diff changeset
2354 ['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
2355 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
2356 )
19999
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2357 enddef
844c7646f61b patch 8.2.0555: Vim9: line continuation is not always needed
Bram Moolenaar <Bram@vim.org>
parents: 19962
diff changeset
2358
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2359 def Test_vim9_comment()
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2360 CheckScriptSuccess([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2361 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2362 '# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2363 ])
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2364 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2365 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2366 ':# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2367 ], 'E488:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2368 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2369 '# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2370 ], 'E488:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2371 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2372 ':# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2373 ], 'E488:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2374
20061
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2375 { # block start
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2376 } # block end
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2377 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2378 '{# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2379 ], 'E488:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2380 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2381 '{',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2382 '}# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2383 ], 'E488:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2384
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2385 echo "yes" # comment
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2386 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2387 'echo "yes"# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2388 ], 'E488:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2389 CheckScriptSuccess([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2390 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2391 'echo "yes" # something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2392 ])
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2393 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2394 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2395 'echo "yes"# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2396 ], 'E121:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2397 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2398 'vim9script',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2399 'echo# something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2400 ], 'E121:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2401 CheckScriptFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2402 'echo "yes" # something',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2403 ], 'E121:')
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2404
20061
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2405 exe "echo" # comment
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2406 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2407 'exe "echo"# comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2408 ], 'E488:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2409 CheckScriptSuccess([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2410 'vim9script',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2411 'exe "echo" # something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2412 ])
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2413 CheckScriptFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2414 'vim9script',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2415 'exe "echo"# something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2416 ], 'E121:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2417 CheckDefFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2418 'exe # comment',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2419 ], 'E1015:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2420 CheckScriptFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2421 'vim9script',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2422 'exe# something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2423 ], 'E121:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2424 CheckScriptFailure([
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2425 'exe "echo" # something',
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2426 ], 'E121:')
6e6a75800884 patch 8.2.0586: Vim9: # comment not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20059
diff changeset
2427
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2428 CheckDefFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2429 'try# comment',
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2430 ' echo "yes"',
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2431 'catch',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2432 'endtry',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2433 ], 'E488:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2434 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2435 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2436 'try# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2437 'echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2438 ], 'E488:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2439 CheckDefFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2440 'try',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2441 ' throw#comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2442 'catch',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2443 'endtry',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2444 ], 'E1015:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2445 CheckDefFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2446 'try',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2447 ' throw "yes"#comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2448 'catch',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2449 'endtry',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2450 ], 'E488:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2451 CheckDefFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2452 'try',
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2453 ' echo "yes"',
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2454 'catch# comment',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2455 'endtry',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2456 ], 'E488:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2457 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2458 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2459 'try',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2460 ' echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2461 'catch# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2462 'endtry',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2463 ], 'E654:')
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2464 CheckDefFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2465 'try',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2466 ' echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2467 'catch /pat/# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2468 'endtry',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2469 ], 'E488:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2470 CheckDefFailure([
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2471 'try',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2472 'echo "yes"',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2473 'catch',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2474 'endtry# comment',
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2475 ], 'E488:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2476 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2477 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2478 'try',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2479 ' echo "yes"',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2480 'catch',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2481 'endtry# comment',
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21216
diff changeset
2482 ], 'E488:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2483
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2484 CheckScriptSuccess([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2485 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2486 'hi # comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2487 ])
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2488 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2489 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2490 'hi# comment',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2491 ], 'E416:')
20116
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2492 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2493 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2494 'hi Search # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2495 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2496 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2497 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2498 'hi Search# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2499 ], 'E416:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2500 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2501 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2502 '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
2503 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2504 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2505 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2506 '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
2507 ], 'E413:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2508 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2509 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2510 '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
2511 'hi clear # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2512 ])
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2513 # 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
2514 # 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
2515 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2516 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2517 'hi clear# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2518 ], 'E416:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2519
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2520 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2521 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2522 '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
2523 '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
2524 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2525 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2526 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2527 '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
2528 '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
2529 ], 'E488:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2530 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2531 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2532 'match # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2533 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2534 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2535 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2536 'match# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2537 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2538 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2539 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2540 'match none # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2541 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2542 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2543 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2544 'match none# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2545 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2546
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2547 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2548 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2549 'menutrans clear # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2550 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2551 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2552 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2553 '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
2554 ], 'E474:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2555
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2556 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2557 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2558 'syntax clear # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2559 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2560 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2561 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2562 '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
2563 ], 'E28:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2564 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2565 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2566 '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
2567 '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
2568 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2569 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2570 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2571 '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
2572 '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
2573 ], 'E28:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2574
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2575 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2576 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2577 'syntax list # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2578 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2579 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2580 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2581 '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
2582 ], 'E28:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2583
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2584 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2585 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2586 '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
2587 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2588 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2589 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2590 '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
2591 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2592
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2593 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2594 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2595 '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
2596 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2597 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2598 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2599 '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
2600 ], 'E789:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2601
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2602 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2603 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2604 '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
2605 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2606 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2607 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2608 '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
2609 ], 'E402:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2610
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2611 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2612 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2613 '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
2614 ])
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 '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
2618 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2619 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2620 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2621 '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
2622 ], 'E406:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2623 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2624 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2625 '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
2626 ], 'E475:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2627
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2628 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2629 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2630 '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
2631 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2632 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2633 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2634 '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
2635 ], 'E402:')
20116
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2636
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2637 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2638 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2639 'syntax sync # comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2640 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2641 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2642 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2643 'syntax sync# comment',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2644 ], 'E404:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2645 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2646 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2647 '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
2648 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2649 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2650 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2651 '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
2652 ], 'E404:')
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2653
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2654 CheckScriptSuccess([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2655 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2656 '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
2657 ])
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2658 CheckScriptFailure([
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2659 'vim9script',
513c62184ed8 patch 8.2.0613: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20113
diff changeset
2660 '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
2661 ], 'E475:')
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2662
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2663 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2664 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2665 '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
2666 'command Echo # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2667 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2668 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2669 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2670 '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
2671 'Echo',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2672 ], 'E121:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2673 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2674 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2675 'command Echo# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2676 ], 'E182:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2677 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2678 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2679 'command Echo echo',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2680 'command Echo# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2681 ], 'E182:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2682
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2683 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2684 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2685 'function # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2686 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2687 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2688 'vim9script',
21528
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2689 'function " comment',
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2690 ], 'E129:')
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2691 CheckScriptFailure([
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2692 'vim9script',
20138
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2693 'function# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2694 ], 'E129:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2695 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2696 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2697 'function CheckScriptSuccess # comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2698 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2699 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2700 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2701 'function CheckScriptSuccess# comment',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2702 ], 'E488:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2703
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2704 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2705 'vim9script',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2706 '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
2707 'endfunc',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2708 '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
2709 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2710 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2711 'vim9script',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2712 '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
2713 'endfunc',
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
2714 '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
2715 ], 'E488:')
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2716
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2717 CheckScriptSuccess([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2718 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2719 '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
2720 ])
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2721 CheckScriptFailure([
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2722 'vim9script',
d0a9766167ab patch 8.2.0624: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20116
diff changeset
2723 '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
2724 ], 'E488:')
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2725
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2726 CheckScriptFailure([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2727 '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
2728 'enddef',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2729 ], 'E488:')
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2730 CheckScriptFailure([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2731 'vim9script',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2732 '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
2733 'enddef',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2734 ], 'E488:')
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2735
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2736 CheckScriptSuccess([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2737 '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
2738 'endfunc',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2739 ])
21528
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2740 CheckScriptSuccess([
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2741 'vim9script',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2742 '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
2743 'endfunc',
21528
e0aa9b81f6a9 patch 8.2.1314: Vim9: rule for comment after :function is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21526
diff changeset
2744 ])
21435
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2745
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2746 CheckScriptSuccess([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2747 '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
2748 'enddef',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2749 ])
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2750 CheckScriptFailure([
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2751 '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
2752 'endfunc',
8ec9e2b54ce7 patch 8.2.1268: Vim9: no error for using double quote comment
Bram Moolenaar <Bram@vim.org>
parents: 21413
diff changeset
2753 ], 'E488:')
20113
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2754 enddef
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2755
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2756 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
2757 CheckCanRunGui
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2758
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2759 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2760 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2761 'gui#comment'
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2762 ], 'E499:')
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2763 CheckScriptFailure([
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2764 'vim9script',
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2765 'gui -f#comment'
2c23053c654a patch 8.2.0612: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20111
diff changeset
2766 ], 'E499:')
20059
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2767 enddef
de756b3f4dee patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Bram Moolenaar <Bram@vim.org>
parents: 20055
diff changeset
2768
20079
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2769 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
2770 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
2771 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
2772
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2773 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
2774 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
2775 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
2776
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2777 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
2778 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
2779
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2780 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
2781 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
2782 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
2783
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2784 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
2785
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2786 au! TabEnter
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2787 unlet g:entered
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2788
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2789 CheckScriptSuccess([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2790 '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
2791 '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
2792 '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
2793 '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
2794 't:var = 888',
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2795 '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
2796 ])
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2797
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2798 CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2799 'vim9script',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2800 'let 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
2801 ], '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
2802
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2803 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2804 'vim9script',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2805 'let b:var = 123',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2806 ], '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
2807
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2808 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2809 'vim9script',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2810 'let w:var = 123',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2811 ], '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
2812
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2813 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2814 'vim9script',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2815 'let t:var = 123',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2816 ], '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
2817
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2818 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2819 'vim9script',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2820 'let v:version = 123',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2821 ], '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
2822
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2823 CheckScriptFailure([
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2824 'vim9script',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2825 'let $VARIABLE = "text"',
6b4b887a12f0 patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Bram Moolenaar <Bram@vim.org>
parents: 20945
diff changeset
2826 ], '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
2827
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2828 CheckScriptFailure([
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2829 'vim9script',
0653b9b72091 patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents: 20921
diff changeset
2830 '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
2831 'unlet g:var# comment1',
20091
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2832 ], 'E108:')
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2833
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2834 CheckScriptFailure([
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2835 'let g:var = 123',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2836 'unlet g:var # something',
a64c16ff98b8 patch 8.2.0601: Vim9: :unlet is not compiled
Bram Moolenaar <Bram@vim.org>
parents: 20089
diff changeset
2837 ], 'E488:')
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2838
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2839 CheckScriptSuccess([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2840 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2841 '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
2842 ' echo "yes"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2843 'elseif 2 #comment',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2844 ' echo "no"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2845 'endif',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2846 ])
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2847
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2848 CheckScriptFailure([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2849 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2850 '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
2851 ' echo "yes"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2852 'endif',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2853 ], 'E15:')
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2854
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2855 CheckScriptFailure([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2856 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2857 '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
2858 ' echo "yes"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2859 'elseif 2#comment',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2860 ' echo "no"',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2861 'endif',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2862 ], 'E15:')
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2863
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2864 CheckScriptSuccess([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2865 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2866 'let 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
2867 ])
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2868
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2869 CheckScriptFailure([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2870 'vim9script',
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2871 'let v = 1# comment6',
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2872 ], 'E15:')
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2873
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2874 CheckScriptSuccess([
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2875 'vim9script',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2876 'new'
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2877 'call 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
2878 ':$',
20111
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2879 'dsearch /pat/ #comment',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2880 'bwipe!',
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2881 ])
f40231487a49 patch 8.2.0611: Vim9: no check for space before #comment
Bram Moolenaar <Bram@vim.org>
parents: 20099
diff changeset
2882
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2883 CheckScriptFailure([
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2884 'vim9script',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2885 'new'
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2886 'call setline(1, ["# define pat", "last"])',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2887 ':$',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2888 '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
2889 'bwipe!',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2890 ], 'E488:')
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2891
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2892 CheckScriptFailure([
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2893 'vim9script',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2894 'func! SomeFunc()',
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2895 ], 'E477:')
20079
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2896 enddef
336483164ca6 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Bram Moolenaar <Bram@vim.org>
parents: 20061
diff changeset
2897
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2898 def Test_finish()
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2899 let lines =<< trim END
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2900 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
2901 g:res = 'one'
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2902 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
2903 g:res = 'two'
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2904 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
2905 g:res = 'three'
20351
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2906 END
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2907 writefile(lines, 'Xfinished')
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2908 source Xfinished
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2909 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
2910
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2911 unlet g:res
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2912 delete('Xfinished')
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2913 enddef
680296770464 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Bram Moolenaar <Bram@vim.org>
parents: 20349
diff changeset
2914
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2915 def Test_let_func_call()
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2916 let lines =<< trim END
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2917 vim9script
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2918 func GetValue()
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2919 if exists('g:count')
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2920 let g:count += 1
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2921 else
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2922 let g:count = 1
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2923 endif
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2924 return 'this'
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2925 endfunc
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2926 let val: string = GetValue()
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2927 # env var is always a string
20435
61d2eb1413f2 patch 8.2.0772: Vim9: some variable initializations not tested
Bram Moolenaar <Bram@vim.org>
parents: 20419
diff changeset
2928 let env = $TERM
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2929 END
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2930 writefile(lines, 'Xfinished')
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2931 source Xfinished
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2932 # GetValue() is not called during discovery phase
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2933 assert_equal(1, g:count)
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2934
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2935 unlet g:count
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2936 delete('Xfinished')
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2937 enddef
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2938
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2939 def Test_let_missing_type()
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2940 let lines =<< trim END
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2941 vim9script
20435
61d2eb1413f2 patch 8.2.0772: Vim9: some variable initializations not tested
Bram Moolenaar <Bram@vim.org>
parents: 20419
diff changeset
2942 let var = g:unknown
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
2943 END
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
2944 CheckScriptFailure(lines, 'E121:')
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
2945
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
2946 lines =<< trim END
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
2947 vim9script
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
2948 let nr: number = 123
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
2949 let var = nr
918b9a05cf35 patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Bram Moolenaar <Bram@vim.org>
parents: 20399
diff changeset
2950 END
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20504
diff changeset
2951 CheckScriptSuccess(lines)
20397
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2952 enddef
c225be44692a patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Bram Moolenaar <Bram@vim.org>
parents: 20351
diff changeset
2953
20840
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2954 def Test_let_declaration()
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2955 let lines =<< trim END
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2956 vim9script
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2957 let var: string
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2958 g:var_uninit = var
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2959 var = 'text'
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2960 g:var_test = var
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
2961 # prefixing s: is optional
20846
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2962 s:var = 'prefixed'
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2963 g:var_prefixed = s:var
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2964
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2965 let s:other: number
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2966 other = 1234
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2967 g:other_var = other
21819
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2968
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2969 # type is inferred
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2970 s:dict = {'a': 222}
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2971 def GetDictVal(key: any)
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2972 g:dict_val = s:dict[key]
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2973 enddef
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2974 GetDictVal('a')
20840
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2975 END
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2976 CheckScriptSuccess(lines)
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2977 assert_equal('', g:var_uninit)
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2978 assert_equal('text', g:var_test)
20846
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2979 assert_equal('prefixed', g:var_prefixed)
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2980 assert_equal(1234, g:other_var)
21819
e3b429b995a6 patch 8.2.1459: Vim9: declaring script var in script does not infer the type
Bram Moolenaar <Bram@vim.org>
parents: 21801
diff changeset
2981 assert_equal(222, g:dict_val)
20840
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2982
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2983 unlet g:var_uninit
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2984 unlet g:var_test
20846
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2985 unlet g:var_prefixed
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
2986 unlet g:other_var
20840
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2987 enddef
0600ab7b9f09 patch 8.2.0972: Vim9 script variable declarations need a type
Bram Moolenaar <Bram@vim.org>
parents: 20816
diff changeset
2988
20915
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2989 def Test_let_declaration_fails()
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2990 let lines =<< trim END
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2991 vim9script
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2992 const var: string
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2993 END
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2994 CheckScriptFailure(lines, 'E1021:')
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2995
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2996 lines =<< trim END
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2997 vim9script
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2998 let 9var: string
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
2999 END
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3000 CheckScriptFailure(lines, 'E475:')
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3001 enddef
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3002
20842
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3003 def Test_let_type_check()
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3004 let lines =<< trim END
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3005 vim9script
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3006 let var: string
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3007 var = 1234
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3008 END
21821
0deb6f96a5a3 patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents: 21819
diff changeset
3009 CheckScriptFailure(lines, 'E1012:')
20846
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
3010
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
3011 lines =<< trim END
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
3012 vim9script
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
3013 let var:string
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
3014 END
709379ab5110 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Bram Moolenaar <Bram@vim.org>
parents: 20842
diff changeset
3015 CheckScriptFailure(lines, 'E1069:')
20915
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3016
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3017 lines =<< trim END
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3018 vim9script
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3019 let var: asdf
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3020 END
a3853794a768 patch 8.2.1009: Vim9: some failures not checked for
Bram Moolenaar <Bram@vim.org>
parents: 20899
diff changeset
3021 CheckScriptFailure(lines, 'E1010:')
21648
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3022
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3023 lines =<< trim END
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3024 vim9script
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3025 let s:l: list<number>
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3026 s:l = []
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3027 END
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3028 CheckScriptSuccess(lines)
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3029
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3030 lines =<< trim END
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3031 vim9script
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3032 let s:d: dict<number>
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3033 s:d = {}
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3034 END
33fec2448697 patch 8.2.1374: Vim9: error for assigning empty list to script variable
Bram Moolenaar <Bram@vim.org>
parents: 21646
diff changeset
3035 CheckScriptSuccess(lines)
20842
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3036 enddef
bacc2ab11810 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Bram Moolenaar <Bram@vim.org>
parents: 20840
diff changeset
3037
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3038 def Test_forward_declaration()
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3039 let lines =<< trim END
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3040 vim9script
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3041 def GetValue(): string
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3042 return theVal
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3043 enddef
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3044 let 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
3045 g:initVal = GetValue()
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3046 theVal = 'else'
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3047 g:laterVal = GetValue()
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3048 END
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3049 writefile(lines, 'Xforward')
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3050 source Xforward
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3051 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
3052 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
3053
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3054 unlet g:initVal
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3055 unlet g:laterVal
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3056 delete('Xforward')
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3057 enddef
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3058
20816
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3059 def Test_source_vim9_from_legacy()
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3060 let legacy_lines =<< trim END
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3061 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
3062
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3063 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
3064 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
3065 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
3066 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
3067 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
3068
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3069 " 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
3070 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
3071 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
3072 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
3073
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3074 " 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
3075 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
3076 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
3077 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
3078 END
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3079 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
3080
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3081 let vim9_lines =<< trim END
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3082 vim9script
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3083 let local = 'local'
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3084 g:global = 'global'
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3085 export let exported = 'exported'
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3086 export def GetText(): string
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3087 return 'text'
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3088 enddef
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3089 END
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3090 writefile(vim9_lines, 'Xvim9_script.vim')
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 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
3093
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3094 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
3095 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
3096
9faab49c880f patch 8.2.0960: cannot use :import in legacy Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20538
diff changeset
3097 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
3098 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
3099 enddef
20399
d1a54d2bd145 patch 8.2.0754: Vim9: No test for forward declaration
Bram Moolenaar <Bram@vim.org>
parents: 20397
diff changeset
3100
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
3101 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
3102 " 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
3103 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
3104 vim9script
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
3105 let var = '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
3106 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
3107 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
3108 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
3109 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
3110 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
3111 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
3112 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
3113 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
3114 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
3115 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
3116 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
3117 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
3118 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
3119 " 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
3120 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
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 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
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 /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
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 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
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
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 delete('Xvim9script.vium')
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 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
3136
21150
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3137 def Test_vim9_copen()
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3138 # 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
3139 copen
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3140 quit
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3141 enddef
951aad18b1af patch 8.2.1126: Vim9: using :copen causes an error
Bram Moolenaar <Bram@vim.org>
parents: 21146
diff changeset
3142
21485
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3143 " test using a vim9script that is auto-loaded from an autocmd
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3144 def Test_vim9_autoload()
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3145 let lines =<< trim END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3146 vim9script
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3147 def foo#test()
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3148 echomsg getreg('"')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3149 enddef
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3150 END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3151
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3152 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
3153 writefile(lines, 'Xdir/autoload/foo.vim')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3154 let save_rtp = &rtp
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3155 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
3156 augroup test
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3157 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
3158 augroup END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3159
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3160 normal Y
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3161
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3162 augroup test
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3163 autocmd!
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3164 augroup END
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3165 delete('Xdir', 'rf')
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3166 &rtp = save_rtp
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3167 enddef
afc8cc1a291f patch 8.2.1293: Vim9: error when using vim9script in TextYankPost
Bram Moolenaar <Bram@vim.org>
parents: 21479
diff changeset
3168
21707
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3169 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
3170 # 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
3171 # 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
3172 mkdir('rtp/syntax', 'p')
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3173 let export_lines =<< trim END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3174 vim9script
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3175 export let That = 'yes'
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3176 END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3177 writefile(export_lines, 'rtp/syntax/Xexport.vim')
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3178 let import_lines =<< trim END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3179 vim9script
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3180 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
3181 END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3182 writefile(import_lines, 'rtp/syntax/vim.vim')
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3183 let save_rtp = &rtp
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3184 &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
3185 syntax on
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3186 augroup CmdWin
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3187 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
3188 augroup END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3189 # 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
3190 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
3191 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
3192
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3193 augroup CmdWin
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3194 au!
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3195 augroup END
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3196 &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
3197 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
3198 enddef
8e224527391e patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 21701
diff changeset
3199
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3200 " 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
3201 def Test_substitute_cmd()
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3202 new
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3203 setline(1, 'something')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3204 :substitute(some(other(
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3205 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
3206 bwipe!
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3207
21353
fb8c8fcb7b60 patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3208 # also when the context is Vim9 script
19894
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3209 let lines =<< trim END
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3210 vim9script
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3211 new
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3212 setline(1, 'something')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3213 :substitute(some(other(
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3214 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
3215 bwipe!
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3216 END
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3217 writefile(lines, 'Xvim9lines')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3218 source Xvim9lines
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3219
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3220 delete('Xvim9lines')
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3221 enddef
ea4f8e789627 patch 8.2.0503: Vim9: some code is not tested
Bram Moolenaar <Bram@vim.org>
parents: 19892
diff changeset
3222
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3223 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker