Mercurial > vim
comparison src/testdir/test_vim9_script.vim @ 22147:d55008685870 v8.2.1623
patch 8.2.1623: Vim9: using :call where it is not needed
Commit: https://github.com/vim/vim/commit/d2c617055ac8ff6ff244f69e23dce1f73741c5ad
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Sep 6 15:58:36 2020 +0200
patch 8.2.1623: Vim9: using :call where it is not needed
Problem: Vim9: using :call where it is not needed.
Solution: Remove :call. (closes https://github.com/vim/vim/issues/6892)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 06 Sep 2020 16:00:05 +0200 |
parents | ff21e2962490 |
children | c512e6f57ff2 |
comparison
equal
deleted
inserted
replaced
22146:e8ce05d1dd3e | 22147:d55008685870 |
---|---|
43 let bool1: bool = true | 43 let bool1: bool = true |
44 assert_equal(v:true, bool1) | 44 assert_equal(v:true, bool1) |
45 let bool2: bool = false | 45 let bool2: bool = false |
46 assert_equal(v:false, bool2) | 46 assert_equal(v:false, bool2) |
47 | 47 |
48 call CheckDefFailure(['let x:string'], 'E1069:') | 48 CheckDefFailure(['let x:string'], 'E1069:') |
49 call CheckDefFailure(['let x:string = "x"'], 'E1069:') | 49 CheckDefFailure(['let x:string = "x"'], 'E1069:') |
50 call CheckDefFailure(['let a:string = "x"'], 'E1069:') | 50 CheckDefFailure(['let a:string = "x"'], 'E1069:') |
51 call CheckDefFailure(['let lambda = {-> "lambda"}'], 'E704:') | 51 CheckDefFailure(['let lambda = {-> "lambda"}'], 'E704:') |
52 | 52 |
53 let nr: number = 1234 | 53 let nr: number = 1234 |
54 call CheckDefFailure(['let nr: number = "asdf"'], 'E1012:') | 54 CheckDefFailure(['let nr: number = "asdf"'], 'E1012:') |
55 | 55 |
56 let a: number = 6 #comment | 56 let a: number = 6 #comment |
57 assert_equal(6, a) | 57 assert_equal(6, a) |
58 | 58 |
59 if has('channel') | 59 if has('channel') |
86 vim9script | 86 vim9script |
87 $ENVVAR = 'barfoo' | 87 $ENVVAR = 'barfoo' |
88 assert_equal('barfoo', $ENVVAR) | 88 assert_equal('barfoo', $ENVVAR) |
89 $ENVVAR = '' | 89 $ENVVAR = '' |
90 END | 90 END |
91 call CheckScriptSuccess(lines) | 91 CheckScriptSuccess(lines) |
92 | 92 |
93 s:appendToMe ..= 'yyy' | 93 s:appendToMe ..= 'yyy' |
94 assert_equal('xxxyyy', s:appendToMe) | 94 assert_equal('xxxyyy', s:appendToMe) |
95 s:addToMe += 222 | 95 s:addToMe += 222 |
96 assert_equal(333, s:addToMe) | 96 assert_equal(333, s:addToMe) |
173 def SomeFunc() | 173 def SomeFunc() |
174 s:var = 123 | 174 s:var = 123 |
175 enddef | 175 enddef |
176 defcompile | 176 defcompile |
177 END | 177 END |
178 call CheckScriptFailure(lines, 'E1089:') | 178 CheckScriptFailure(lines, 'E1089:') |
179 | 179 |
180 g:inc_counter += 1 | 180 g:inc_counter += 1 |
181 assert_equal(2, g:inc_counter) | 181 assert_equal(2, g:inc_counter) |
182 | 182 |
183 $SOME_ENV_VAR ..= 'more' | 183 $SOME_ENV_VAR ..= 'more' |
184 assert_equal('somemore', $SOME_ENV_VAR) | 184 assert_equal('somemore', $SOME_ENV_VAR) |
185 call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:') | 185 CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:') |
186 call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:') | 186 CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:') |
187 | 187 |
188 lines =<< trim END | 188 lines =<< trim END |
189 @c = 'areg' | 189 @c = 'areg' |
190 @c ..= 'add' | 190 @c ..= 'add' |
191 assert_equal('aregadd', @c) | 191 assert_equal('aregadd', @c) |
192 END | 192 END |
193 CheckDefAndScriptSuccess(lines) | 193 CheckDefAndScriptSuccess(lines) |
194 | 194 |
195 call CheckDefFailure(['@a += "more"'], 'E1051:') | 195 CheckDefFailure(['@a += "more"'], 'E1051:') |
196 call CheckDefFailure(['@a += 123'], 'E1012:') | 196 CheckDefFailure(['@a += 123'], 'E1012:') |
197 | 197 |
198 v:errmsg = 'none' | 198 v:errmsg = 'none' |
199 v:errmsg ..= 'again' | 199 v:errmsg ..= 'again' |
200 assert_equal('noneagain', v:errmsg) | 200 assert_equal('noneagain', v:errmsg) |
201 call CheckDefFailure(['v:errmsg += "more"'], 'E1051:') | 201 CheckDefFailure(['v:errmsg += "more"'], 'E1051:') |
202 call CheckDefFailure(['v:errmsg += 123'], 'E1012:') | 202 CheckDefFailure(['v:errmsg += 123'], 'E1012:') |
203 | 203 |
204 # single letter variables | 204 # single letter variables |
205 a = 123 | 205 a = 123 |
206 assert_equal(123, a) | 206 assert_equal(123, a) |
207 let b: number | 207 let b: number |
281 | 281 |
282 list3 += ['end'] | 282 list3 += ['end'] |
283 assert_equal(['sdf', 'asdf', 'end'], list3) | 283 assert_equal(['sdf', 'asdf', 'end'], list3) |
284 | 284 |
285 | 285 |
286 call CheckDefExecFailure(['let ll = [1, 2, 3]', 'll[-4] = 6'], 'E684:') | 286 CheckDefExecFailure(['let ll = [1, 2, 3]', 'll[-4] = 6'], 'E684:') |
287 call CheckDefExecFailure(['let [v1, v2] = [1, 2]'], 'E1092:') | 287 CheckDefExecFailure(['let [v1, v2] = [1, 2]'], 'E1092:') |
288 | 288 |
289 # type becomes list<any> | 289 # type becomes list<any> |
290 let somelist = rand() > 0 ? [1, 2, 3] : ['a', 'b', 'c'] | 290 let somelist = rand() > 0 ? [1, 2, 3] : ['a', 'b', 'c'] |
291 enddef | 291 enddef |
292 | 292 |
297 let v2: number | 297 let v2: number |
298 let v3: number | 298 let v3: number |
299 [v1, v2, v3] = [1, 2, 3] | 299 [v1, v2, v3] = [1, 2, 3] |
300 assert_equal([1, 2, 3], [v1, v2, v3]) | 300 assert_equal([1, 2, 3], [v1, v2, v3]) |
301 END | 301 END |
302 call CheckScriptSuccess(lines) | 302 CheckScriptSuccess(lines) |
303 enddef | 303 enddef |
304 | 304 |
305 def Test_assignment_dict() | 305 def Test_assignment_dict() |
306 let dict1: dict<bool> = #{one: false, two: true} | 306 let dict1: dict<bool> = #{one: false, two: true} |
307 let dict2: dict<number> = #{one: 1, two: 2} | 307 let dict2: dict<number> = #{one: 1, two: 2} |
532 v:foldstart = 123 | 532 v:foldstart = 123 |
533 return 'xxx' | 533 return 'xxx' |
534 enddef | 534 enddef |
535 | 535 |
536 def Test_assignment_failure() | 536 def Test_assignment_failure() |
537 call CheckDefFailure(['let var=234'], 'E1004:') | 537 CheckDefFailure(['let var=234'], 'E1004:') |
538 call CheckDefFailure(['let var =234'], 'E1004:') | 538 CheckDefFailure(['let var =234'], 'E1004:') |
539 call CheckDefFailure(['let var= 234'], 'E1004:') | 539 CheckDefFailure(['let var= 234'], 'E1004:') |
540 | 540 |
541 call CheckScriptFailure(['vim9script', 'let var=234'], 'E1004:') | 541 CheckScriptFailure(['vim9script', 'let var=234'], 'E1004:') |
542 call CheckScriptFailure(['vim9script', 'let var=234'], "before and after '='") | 542 CheckScriptFailure(['vim9script', 'let var=234'], "before and after '='") |
543 call CheckScriptFailure(['vim9script', 'let var =234'], 'E1004:') | 543 CheckScriptFailure(['vim9script', 'let var =234'], 'E1004:') |
544 call CheckScriptFailure(['vim9script', 'let var= 234'], 'E1004:') | 544 CheckScriptFailure(['vim9script', 'let var= 234'], 'E1004:') |
545 call CheckScriptFailure(['vim9script', 'let var = 234', 'var+=234'], 'E1004:') | 545 CheckScriptFailure(['vim9script', 'let var = 234', 'var+=234'], 'E1004:') |
546 call CheckScriptFailure(['vim9script', 'let var = 234', 'var+=234'], "before and after '+='") | 546 CheckScriptFailure(['vim9script', 'let var = 234', 'var+=234'], "before and after '+='") |
547 call CheckScriptFailure(['vim9script', 'let var = "x"', 'var..="y"'], 'E1004:') | 547 CheckScriptFailure(['vim9script', 'let var = "x"', 'var..="y"'], 'E1004:') |
548 call CheckScriptFailure(['vim9script', 'let var = "x"', 'var..="y"'], "before and after '..='") | 548 CheckScriptFailure(['vim9script', 'let var = "x"', 'var..="y"'], "before and after '..='") |
549 | 549 |
550 call CheckDefFailure(['let true = 1'], 'E1034:') | 550 CheckDefFailure(['let true = 1'], 'E1034:') |
551 call CheckDefFailure(['let false = 1'], 'E1034:') | 551 CheckDefFailure(['let false = 1'], 'E1034:') |
552 | 552 |
553 call CheckDefFailure(['[a; b; c] = g:list'], 'E452:') | 553 CheckDefFailure(['[a; b; c] = g:list'], 'E452:') |
554 call CheckDefExecFailure(['let a: number', | 554 CheckDefExecFailure(['let a: number', |
555 '[a] = test_null_list()'], 'E1093:') | 555 '[a] = test_null_list()'], 'E1093:') |
556 call CheckDefExecFailure(['let a: number', | 556 CheckDefExecFailure(['let a: number', |
557 '[a] = []'], 'E1093:') | 557 '[a] = []'], 'E1093:') |
558 call CheckDefExecFailure(['let x: number', | 558 CheckDefExecFailure(['let x: number', |
559 'let y: number', | 559 'let y: number', |
560 '[x, y] = [1]'], 'E1093:') | 560 '[x, y] = [1]'], 'E1093:') |
561 call CheckDefExecFailure(['let x: number', | 561 CheckDefExecFailure(['let x: number', |
562 'let y: number', | 562 'let y: number', |
563 'let z: list<number>', | 563 'let z: list<number>', |
564 '[x, y; z] = [1]'], 'E1093:') | 564 '[x, y; z] = [1]'], 'E1093:') |
565 | 565 |
566 call CheckDefFailure(['let somevar'], "E1022:") | 566 CheckDefFailure(['let somevar'], "E1022:") |
567 call CheckDefFailure(['let &tabstop = 4'], 'E1052:') | 567 CheckDefFailure(['let &tabstop = 4'], 'E1052:') |
568 call CheckDefFailure(['&g:option = 5'], 'E113:') | 568 CheckDefFailure(['&g:option = 5'], 'E113:') |
569 call CheckScriptFailure(['vim9script', 'let &tabstop = 4'], 'E1052:') | 569 CheckScriptFailure(['vim9script', 'let &tabstop = 4'], 'E1052:') |
570 | 570 |
571 call CheckDefFailure(['let $VAR = 5'], 'E1016: Cannot declare an environment variable:') | 571 CheckDefFailure(['let $VAR = 5'], 'E1016: Cannot declare an environment variable:') |
572 call CheckScriptFailure(['vim9script', 'let $ENV = "xxx"'], 'E1016:') | 572 CheckScriptFailure(['vim9script', 'let $ENV = "xxx"'], 'E1016:') |
573 | 573 |
574 if has('dnd') | 574 if has('dnd') |
575 call CheckDefFailure(['let @~ = 5'], 'E1066:') | 575 CheckDefFailure(['let @~ = 5'], 'E1066:') |
576 else | 576 else |
577 call CheckDefFailure(['let @~ = 5'], 'E354:') | 577 CheckDefFailure(['let @~ = 5'], 'E354:') |
578 call CheckDefFailure(['@~ = 5'], 'E354:') | 578 CheckDefFailure(['@~ = 5'], 'E354:') |
579 endif | 579 endif |
580 call CheckDefFailure(['let @a = 5'], 'E1066:') | 580 CheckDefFailure(['let @a = 5'], 'E1066:') |
581 call CheckDefFailure(['let @/ = "x"'], 'E1066:') | 581 CheckDefFailure(['let @/ = "x"'], 'E1066:') |
582 call CheckScriptFailure(['vim9script', 'let @a = "abc"'], 'E1066:') | 582 CheckScriptFailure(['vim9script', 'let @a = "abc"'], 'E1066:') |
583 | 583 |
584 call CheckDefFailure(['let g:var = 5'], 'E1016: Cannot declare a global variable:') | 584 CheckDefFailure(['let g:var = 5'], 'E1016: Cannot declare a global variable:') |
585 call CheckDefFailure(['let w:var = 5'], 'E1016: Cannot declare a window variable:') | 585 CheckDefFailure(['let w:var = 5'], 'E1016: Cannot declare a window variable:') |
586 call CheckDefFailure(['let b:var = 5'], 'E1016: Cannot declare a buffer variable:') | 586 CheckDefFailure(['let b:var = 5'], 'E1016: Cannot declare a buffer variable:') |
587 call CheckDefFailure(['let t:var = 5'], 'E1016: Cannot declare a tab variable:') | 587 CheckDefFailure(['let t:var = 5'], 'E1016: Cannot declare a tab variable:') |
588 | 588 |
589 call CheckDefFailure(['let anr = 4', 'anr ..= "text"'], 'E1019:') | 589 CheckDefFailure(['let anr = 4', 'anr ..= "text"'], 'E1019:') |
590 call CheckDefFailure(['let xnr += 4'], 'E1020:', 1) | 590 CheckDefFailure(['let xnr += 4'], 'E1020:', 1) |
591 call CheckScriptFailure(['vim9script', 'let xnr += 4'], 'E1020:') | 591 CheckScriptFailure(['vim9script', 'let xnr += 4'], 'E1020:') |
592 call CheckDefFailure(["let xnr = xnr + 1"], 'E1001:', 1) | 592 CheckDefFailure(["let xnr = xnr + 1"], 'E1001:', 1) |
593 call CheckScriptFailure(['vim9script', 'let xnr = xnr + 4'], 'E121:') | 593 CheckScriptFailure(['vim9script', 'let xnr = xnr + 4'], 'E121:') |
594 | 594 |
595 call CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef', 'defcompile'], 'E1108:') | 595 CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef', 'defcompile'], 'E1108:') |
596 | 596 |
597 call CheckDefFailure(['let var: list<string> = [123]'], 'expected list<string> but got list<number>') | 597 CheckDefFailure(['let var: list<string> = [123]'], 'expected list<string> but got list<number>') |
598 call CheckDefFailure(['let var: list<number> = ["xx"]'], 'expected list<number> but got list<string>') | 598 CheckDefFailure(['let var: list<number> = ["xx"]'], 'expected list<number> but got list<string>') |
599 | 599 |
600 call CheckDefFailure(['let var: dict<string> = #{key: 123}'], 'expected dict<string> but got dict<number>') | 600 CheckDefFailure(['let var: dict<string> = #{key: 123}'], 'expected dict<string> but got dict<number>') |
601 call CheckDefFailure(['let var: dict<number> = #{key: "xx"}'], 'expected dict<number> but got dict<string>') | 601 CheckDefFailure(['let var: dict<number> = #{key: "xx"}'], 'expected dict<number> but got dict<string>') |
602 | 602 |
603 call CheckDefFailure(['let var = feedkeys("0")'], 'E1031:') | 603 CheckDefFailure(['let var = feedkeys("0")'], 'E1031:') |
604 call CheckDefFailure(['let var: number = feedkeys("0")'], 'expected number but got void') | 604 CheckDefFailure(['let var: number = feedkeys("0")'], 'expected number but got void') |
605 | 605 |
606 call CheckDefFailure(['let var: dict <number>'], 'E1068:') | 606 CheckDefFailure(['let var: dict <number>'], 'E1068:') |
607 call CheckDefFailure(['let var: dict<number'], 'E1009:') | 607 CheckDefFailure(['let var: dict<number'], 'E1009:') |
608 | 608 |
609 call assert_fails('s/^/\=Mess()/n', 'E794:') | 609 assert_fails('s/^/\=Mess()/n', 'E794:') |
610 call CheckDefFailure(['let var: dict<number'], 'E1009:') | 610 CheckDefFailure(['let var: dict<number'], 'E1009:') |
611 | 611 |
612 call CheckDefFailure(['w:foo: number = 10'], | 612 CheckDefFailure(['w:foo: number = 10'], |
613 'E488: Trailing characters: : number = 1') | 613 'E488: Trailing characters: : number = 1') |
614 call CheckDefFailure(['t:foo: bool = true'], | 614 CheckDefFailure(['t:foo: bool = true'], |
615 'E488: Trailing characters: : bool = true') | 615 'E488: Trailing characters: : bool = true') |
616 call CheckDefFailure(['b:foo: string = "x"'], | 616 CheckDefFailure(['b:foo: string = "x"'], |
617 'E488: Trailing characters: : string = "x"') | 617 'E488: Trailing characters: : string = "x"') |
618 call CheckDefFailure(['g:foo: number = 123'], | 618 CheckDefFailure(['g:foo: number = 123'], |
619 'E488: Trailing characters: : number = 123') | 619 'E488: Trailing characters: : number = 123') |
620 enddef | 620 enddef |
621 | 621 |
622 def Test_unlet() | 622 def Test_unlet() |
623 g:somevar = 'yes' | 623 g:somevar = 'yes' |
624 assert_true(exists('g:somevar')) | 624 assert_true(exists('g:somevar')) |
631 assert_true(exists('s:somevar')) | 631 assert_true(exists('s:somevar')) |
632 unlet s:somevar | 632 unlet s:somevar |
633 assert_false(exists('s:somevar')) | 633 assert_false(exists('s:somevar')) |
634 unlet! s:somevar | 634 unlet! s:somevar |
635 | 635 |
636 call CheckScriptFailure([ | 636 CheckScriptFailure([ |
637 'vim9script', | 637 'vim9script', |
638 'let svar = 123', | 638 'let svar = 123', |
639 'unlet svar', | 639 'unlet svar', |
640 ], 'E1081:') | 640 ], 'E1081:') |
641 call CheckScriptFailure([ | 641 CheckScriptFailure([ |
642 'vim9script', | 642 'vim9script', |
643 'let svar = 123', | 643 'let svar = 123', |
644 'unlet s:svar', | 644 'unlet s:svar', |
645 ], 'E1081:') | 645 ], 'E1081:') |
646 call CheckScriptFailure([ | 646 CheckScriptFailure([ |
647 'vim9script', | 647 'vim9script', |
648 'let svar = 123', | 648 'let svar = 123', |
649 'def Func()', | 649 'def Func()', |
650 ' unlet svar', | 650 ' unlet svar', |
651 'enddef', | 651 'enddef', |
652 'defcompile', | 652 'defcompile', |
653 ], 'E1081:') | 653 ], 'E1081:') |
654 call CheckScriptFailure([ | 654 CheckScriptFailure([ |
655 'vim9script', | 655 'vim9script', |
656 'let svar = 123', | 656 'let svar = 123', |
657 'def Func()', | 657 'def Func()', |
658 ' unlet s:svar', | 658 ' unlet s:svar', |
659 'enddef', | 659 'enddef', |
660 'defcompile', | 660 'defcompile', |
661 ], 'E1081:') | 661 ], 'E1081:') |
662 | 662 |
663 $ENVVAR = 'foobar' | 663 $ENVVAR = 'foobar' |
664 assert_equal('foobar', $ENVVAR) | 664 assert_equal('foobar', $ENVVAR) |
665 unlet $ENVVAR | 665 unlet $ENVVAR |
666 assert_equal('', $ENVVAR) | 666 assert_equal('', $ENVVAR) |
788 call CheckDefFailure(['const two'], 'E1021:') | 788 call CheckDefFailure(['const two'], 'E1021:') |
789 call CheckDefFailure(['const &option'], 'E996:') | 789 call CheckDefFailure(['const &option'], 'E996:') |
790 endfunc | 790 endfunc |
791 | 791 |
792 def Test_range_no_colon() | 792 def Test_range_no_colon() |
793 call CheckDefFailure(['%s/a/b/'], 'E1050:') | 793 CheckDefFailure(['%s/a/b/'], 'E1050:') |
794 call CheckDefFailure(['+ s/a/b/'], 'E1050:') | 794 CheckDefFailure(['+ s/a/b/'], 'E1050:') |
795 call CheckDefFailure(['- s/a/b/'], 'E1050:') | 795 CheckDefFailure(['- s/a/b/'], 'E1050:') |
796 call CheckDefFailure(['. s/a/b/'], 'E1050:') | 796 CheckDefFailure(['. s/a/b/'], 'E1050:') |
797 enddef | 797 enddef |
798 | 798 |
799 | 799 |
800 def Test_block() | 800 def Test_block() |
801 let outer = 1 | 801 let outer = 1 |
1085 endtry | 1085 endtry |
1086 assert_equal('abc', seq) | 1086 assert_equal('abc', seq) |
1087 enddef | 1087 enddef |
1088 | 1088 |
1089 def Test_try_catch_fails() | 1089 def Test_try_catch_fails() |
1090 call CheckDefFailure(['catch'], 'E603:') | 1090 CheckDefFailure(['catch'], 'E603:') |
1091 call CheckDefFailure(['try', 'echo 0', 'catch', 'catch'], 'E1033:') | 1091 CheckDefFailure(['try', 'echo 0', 'catch', 'catch'], 'E1033:') |
1092 call CheckDefFailure(['try', 'echo 0', 'catch /pat'], 'E1067:') | 1092 CheckDefFailure(['try', 'echo 0', 'catch /pat'], 'E1067:') |
1093 call CheckDefFailure(['finally'], 'E606:') | 1093 CheckDefFailure(['finally'], 'E606:') |
1094 call CheckDefFailure(['try', 'echo 0', 'finally', 'echo 1', 'finally'], 'E607:') | 1094 CheckDefFailure(['try', 'echo 0', 'finally', 'echo 1', 'finally'], 'E607:') |
1095 call CheckDefFailure(['endtry'], 'E602:') | 1095 CheckDefFailure(['endtry'], 'E602:') |
1096 call CheckDefFailure(['while 1', 'endtry'], 'E170:') | 1096 CheckDefFailure(['while 1', 'endtry'], 'E170:') |
1097 call CheckDefFailure(['for i in range(5)', 'endtry'], 'E170:') | 1097 CheckDefFailure(['for i in range(5)', 'endtry'], 'E170:') |
1098 call CheckDefFailure(['if 2', 'endtry'], 'E171:') | 1098 CheckDefFailure(['if 2', 'endtry'], 'E171:') |
1099 call CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:') | 1099 CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:') |
1100 | 1100 |
1101 call CheckDefFailure(['throw'], 'E1015:') | 1101 CheckDefFailure(['throw'], 'E1015:') |
1102 call CheckDefFailure(['throw xxx'], 'E1001:') | 1102 CheckDefFailure(['throw xxx'], 'E1001:') |
1103 enddef | 1103 enddef |
1104 | 1104 |
1105 def Test_throw_vimscript() | 1105 def Test_throw_vimscript() |
1106 # only checks line continuation | 1106 # only checks line continuation |
1107 let lines =<< trim END | 1107 let lines =<< trim END |
1743 enddef | 1743 enddef |
1744 END | 1744 END |
1745 let nono_lines =<< trim END | 1745 let nono_lines =<< trim END |
1746 def g:DoCheck(no_exists: bool) | 1746 def g:DoCheck(no_exists: bool) |
1747 assert_equal('yes', FuncYes()) | 1747 assert_equal('yes', FuncYes()) |
1748 assert_fails('call FuncNo()', 'E117:') | 1748 assert_fails('FuncNo()', 'E117:') |
1749 enddef | 1749 enddef |
1750 END | 1750 END |
1751 | 1751 |
1752 # FuncNo() is defined | 1752 # FuncNo() is defined |
1753 writefile(first_lines + withno_lines, 'Xreloaded.vim') | 1753 writefile(first_lines + withno_lines, 'Xreloaded.vim') |
1970 l->insert(99, 1) | 1970 l->insert(99, 1) |
1971 assert_equal([2, 99, 3, 4, 5], l) | 1971 assert_equal([2, 99, 3, 4, 5], l) |
1972 enddef | 1972 enddef |
1973 | 1973 |
1974 def Test_no_insert_xit() | 1974 def Test_no_insert_xit() |
1975 call CheckDefExecFailure(['a = 1'], 'E1100:') | 1975 CheckDefExecFailure(['a = 1'], 'E1100:') |
1976 call CheckDefExecFailure(['c = 1'], 'E1100:') | 1976 CheckDefExecFailure(['c = 1'], 'E1100:') |
1977 call CheckDefExecFailure(['i = 1'], 'E1100:') | 1977 CheckDefExecFailure(['i = 1'], 'E1100:') |
1978 call CheckDefExecFailure(['t = 1'], 'E1100:') | 1978 CheckDefExecFailure(['t = 1'], 'E1100:') |
1979 call CheckDefExecFailure(['x = 1'], 'E1100:') | 1979 CheckDefExecFailure(['x = 1'], 'E1100:') |
1980 | 1980 |
1981 CheckScriptFailure(['vim9script', 'a = 1'], 'E488:') | 1981 CheckScriptFailure(['vim9script', 'a = 1'], 'E488:') |
1982 CheckScriptFailure(['vim9script', 'a'], 'E1100:') | 1982 CheckScriptFailure(['vim9script', 'a'], 'E1100:') |
1983 CheckScriptFailure(['vim9script', 'c = 1'], 'E488:') | 1983 CheckScriptFailure(['vim9script', 'c = 1'], 'E488:') |
1984 CheckScriptFailure(['vim9script', 'c'], 'E1100:') | 1984 CheckScriptFailure(['vim9script', 'c'], 'E1100:') |
2006 assert_equal('two', IfElse(2)) | 2006 assert_equal('two', IfElse(2)) |
2007 assert_equal('three', IfElse(3)) | 2007 assert_equal('three', IfElse(3)) |
2008 enddef | 2008 enddef |
2009 | 2009 |
2010 def Test_if_elseif_else_fails() | 2010 def Test_if_elseif_else_fails() |
2011 call CheckDefFailure(['elseif true'], 'E582:') | 2011 CheckDefFailure(['elseif true'], 'E582:') |
2012 call CheckDefFailure(['else'], 'E581:') | 2012 CheckDefFailure(['else'], 'E581:') |
2013 call CheckDefFailure(['endif'], 'E580:') | 2013 CheckDefFailure(['endif'], 'E580:') |
2014 call CheckDefFailure(['if true', 'elseif xxx'], 'E1001:') | 2014 CheckDefFailure(['if true', 'elseif xxx'], 'E1001:') |
2015 call CheckDefFailure(['if true', 'echo 1'], 'E171:') | 2015 CheckDefFailure(['if true', 'echo 1'], 'E171:') |
2016 enddef | 2016 enddef |
2017 | 2017 |
2018 let g:bool_true = v:true | 2018 let g:bool_true = v:true |
2019 let g:bool_false = v:false | 2019 let g:bool_false = v:false |
2020 | 2020 |
2139 burp | 2139 burp |
2140 endif | 2140 endif |
2141 enddef | 2141 enddef |
2142 | 2142 |
2143 def Test_if_const_expr_fails() | 2143 def Test_if_const_expr_fails() |
2144 call CheckDefFailure(['if "aaa" == "bbb'], 'E114:') | 2144 CheckDefFailure(['if "aaa" == "bbb'], 'E114:') |
2145 call CheckDefFailure(["if 'aaa' == 'bbb"], 'E115:') | 2145 CheckDefFailure(["if 'aaa' == 'bbb"], 'E115:') |
2146 call CheckDefFailure(["if has('aaa'"], 'E110:') | 2146 CheckDefFailure(["if has('aaa'"], 'E110:') |
2147 call CheckDefFailure(["if has('aaa') ? true false"], 'E109:') | 2147 CheckDefFailure(["if has('aaa') ? true false"], 'E109:') |
2148 enddef | 2148 enddef |
2149 | 2149 |
2150 def RunNested(i: number): number | 2150 def RunNested(i: number): number |
2151 let x: number = 0 | 2151 let x: number = 0 |
2152 if i % 2 | 2152 if i % 2 |
2168 enddef | 2168 enddef |
2169 | 2169 |
2170 def Test_execute_cmd() | 2170 def Test_execute_cmd() |
2171 new | 2171 new |
2172 setline(1, 'default') | 2172 setline(1, 'default') |
2173 execute 'call setline(1, "execute-string")' | 2173 execute 'setline(1, "execute-string")' |
2174 assert_equal('execute-string', getline(1)) | 2174 assert_equal('execute-string', getline(1)) |
2175 | 2175 |
2176 execute "call setline(1, 'execute-string')" | 2176 execute "setline(1, 'execute-string')" |
2177 assert_equal('execute-string', getline(1)) | 2177 assert_equal('execute-string', getline(1)) |
2178 | 2178 |
2179 let cmd1 = 'call setline(1,' | 2179 let cmd1 = 'setline(1,' |
2180 let cmd2 = '"execute-var")' | 2180 let cmd2 = '"execute-var")' |
2181 execute cmd1 cmd2 # comment | 2181 execute cmd1 cmd2 # comment |
2182 assert_equal('execute-var', getline(1)) | 2182 assert_equal('execute-var', getline(1)) |
2183 | 2183 |
2184 execute cmd1 cmd2 '|call setline(1, "execute-var-string")' | 2184 execute cmd1 cmd2 '|setline(1, "execute-var-string")' |
2185 assert_equal('execute-var-string', getline(1)) | 2185 assert_equal('execute-var-string', getline(1)) |
2186 | 2186 |
2187 let cmd_first = 'call ' | 2187 let cmd_first = 'call ' |
2188 let cmd_last = 'setline(1, "execute-var-var")' | 2188 let cmd_last = 'setline(1, "execute-var-var")' |
2189 execute cmd_first .. cmd_last | 2189 execute cmd_first .. cmd_last |
2195 assert_match('^true$', Screenline(&lines)) | 2195 assert_match('^true$', Screenline(&lines)) |
2196 | 2196 |
2197 echomsg [1, 2, 3] #{a: 1, b: 2} | 2197 echomsg [1, 2, 3] #{a: 1, b: 2} |
2198 assert_match('^\[1, 2, 3\] {''a'': 1, ''b'': 2}$', Screenline(&lines)) | 2198 assert_match('^\[1, 2, 3\] {''a'': 1, ''b'': 2}$', Screenline(&lines)) |
2199 | 2199 |
2200 call CheckDefFailure(['execute xxx'], 'E1001:', 1) | 2200 CheckDefFailure(['execute xxx'], 'E1001:', 1) |
2201 call CheckDefExecFailure(['execute "tabnext " .. 8'], 'E475:', 1) | 2201 CheckDefExecFailure(['execute "tabnext " .. 8'], 'E475:', 1) |
2202 call CheckDefFailure(['execute "cmd"# comment'], 'E488:', 1) | 2202 CheckDefFailure(['execute "cmd"# comment'], 'E488:', 1) |
2203 enddef | 2203 enddef |
2204 | 2204 |
2205 def Test_execute_cmd_vimscript() | 2205 def Test_execute_cmd_vimscript() |
2206 # only checks line continuation | 2206 # only checks line continuation |
2207 let lines =<< trim END | 2207 let lines =<< trim END |
2227 let str1 = 'some' | 2227 let str1 = 'some' |
2228 let str2 = 'more' | 2228 let str2 = 'more' |
2229 echo str1 str2 | 2229 echo str1 str2 |
2230 assert_match('^some more$', Screenline(&lines)) | 2230 assert_match('^some more$', Screenline(&lines)) |
2231 | 2231 |
2232 call CheckDefFailure(['echo "xxx"# comment'], 'E488:') | 2232 CheckDefFailure(['echo "xxx"# comment'], 'E488:') |
2233 enddef | 2233 enddef |
2234 | 2234 |
2235 def Test_echomsg_cmd() | 2235 def Test_echomsg_cmd() |
2236 echomsg 'some' 'more' # comment | 2236 echomsg 'some' 'more' # comment |
2237 assert_match('^some more$', Screenline(&lines)) | 2237 assert_match('^some more$', Screenline(&lines)) |
2238 echo 'clear' | 2238 echo 'clear' |
2239 :1messages | 2239 :1messages |
2240 assert_match('^some more$', Screenline(&lines)) | 2240 assert_match('^some more$', Screenline(&lines)) |
2241 | 2241 |
2242 call CheckDefFailure(['echomsg "xxx"# comment'], 'E488:') | 2242 CheckDefFailure(['echomsg "xxx"# comment'], 'E488:') |
2243 enddef | 2243 enddef |
2244 | 2244 |
2245 def Test_echomsg_cmd_vimscript() | 2245 def Test_echomsg_cmd_vimscript() |
2246 # only checks line continuation | 2246 # only checks line continuation |
2247 let lines =<< trim END | 2247 let lines =<< trim END |
2920 ], 'E15:') | 2920 ], 'E15:') |
2921 | 2921 |
2922 CheckScriptSuccess([ | 2922 CheckScriptSuccess([ |
2923 'vim9script', | 2923 'vim9script', |
2924 'new' | 2924 'new' |
2925 'call setline(1, ["# define pat", "last"])', | 2925 'setline(1, ["# define pat", "last"])', |
2926 ':$', | 2926 ':$', |
2927 'dsearch /pat/ #comment', | 2927 'dsearch /pat/ #comment', |
2928 'bwipe!', | 2928 'bwipe!', |
2929 ]) | 2929 ]) |
2930 | 2930 |
2931 CheckScriptFailure([ | 2931 CheckScriptFailure([ |
2932 'vim9script', | 2932 'vim9script', |
2933 'new' | 2933 'new' |
2934 'call setline(1, ["# define pat", "last"])', | 2934 'setline(1, ["# define pat", "last"])', |
2935 ':$', | 2935 ':$', |
2936 'dsearch /pat/#comment', | 2936 'dsearch /pat/#comment', |
2937 'bwipe!', | 2937 'bwipe!', |
2938 ], 'E488:') | 2938 ], 'E488:') |
2939 | 2939 |
3264 | 3264 |
3265 def Test_invalid_sid() | 3265 def Test_invalid_sid() |
3266 assert_fails('func <SNR>1234_func', 'E123:') | 3266 assert_fails('func <SNR>1234_func', 'E123:') |
3267 | 3267 |
3268 if RunVim([], ['wq Xdidit'], '+"func <SNR>1_func"') | 3268 if RunVim([], ['wq Xdidit'], '+"func <SNR>1_func"') |
3269 call assert_equal([], readfile('Xdidit')) | 3269 assert_equal([], readfile('Xdidit')) |
3270 endif | 3270 endif |
3271 delete('Xdidit') | 3271 delete('Xdidit') |
3272 enddef | 3272 enddef |
3273 | 3273 |
3274 " Keep this last, it messes up highlighting. | 3274 " Keep this last, it messes up highlighting. |