Skip to content

Commit 0b37a2f

Browse files
committed
patch 8.2.0480: Vim9: some code is not tested
Problem: Vim9: some code is not tested. Solution: Add more tests.
1 parent 2027973 commit 0b37a2f

3 files changed

Lines changed: 40 additions & 2 deletions

File tree

src/testdir/test_vim9_expr.vim

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,9 +706,12 @@ def Test_expr7_list()
706706
assert_equal(g:list_empty, [])
707707
assert_equal(g:list_empty, [ ])
708708
assert_equal(g:list_mixed, [1, 'b', false])
709+
assert_equal('b', g:list_mixed[1])
709710

710711
call CheckDefExecFailure("let x = g:anint[3]", 'E714:')
712+
call CheckDefFailure("let x = g:list_mixed[xxx]", 'E1001:')
711713
call CheckDefExecFailure("let x = g:list_mixed['xx']", 'E39:')
714+
call CheckDefFailure("let x = g:list_mixed[0", 'E111:')
712715
call CheckDefExecFailure("let x = g:list_empty[3]", 'E684:')
713716
enddef
714717

@@ -739,6 +742,12 @@ def Test_expr7_dict()
739742
call CheckDefExecFailure("let x = g:dict_empty.member", 'E716:')
740743
enddef
741744

745+
def Test_expr_member()
746+
assert_equal(1, g:dict_one.one)
747+
748+
call CheckDefFailure("let x = g:dict_one.#$!", 'E1002:')
749+
enddef
750+
742751
def Test_expr7_option()
743752
" option
744753
set ts=11
@@ -778,6 +787,30 @@ def Test_expr7_parens()
778787
assert_equal(-6, ---6)
779788
enddef
780789

790+
def Test_expr7_negate()
791+
assert_equal(-99, -99)
792+
assert_equal(99, --99)
793+
let nr = 88
794+
assert_equal(-88, -nr)
795+
assert_equal(88, --nr)
796+
enddef
797+
798+
def Echo(arg): string
799+
return arg
800+
enddef
801+
802+
def s:EchoArg(arg): string
803+
return arg
804+
enddef
805+
806+
def Test_expr7_call()
807+
assert_equal('yes', 'yes'->Echo())
808+
assert_equal('yes', 'yes'->s:EchoArg())
809+
810+
call CheckDefFailure("let x = 'yes'->Echo", 'E107:')
811+
enddef
812+
813+
781814
def Test_expr7_not()
782815
assert_equal(true, !'')
783816
assert_equal(true, ![])

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -738,6 +738,8 @@ static char *(features[]) =
738738

739739
static int included_patches[] =
740740
{ /* Add new patch number below this line */
741+
/**/
742+
480,
741743
/**/
742744
479,
743745
/**/

src/vim9compile.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2622,11 +2622,14 @@ compile_subscript(
26222622
else
26232623
{
26242624
// method call: list->method()
2625-
for (p = *arg; eval_isnamec1(*p); ++p)
2625+
p = *arg;
2626+
if (ASCII_ISALPHA(*p) && p[1] == ':')
2627+
p += 2;
2628+
for ( ; eval_isnamec1(*p); ++p)
26262629
;
26272630
if (*p != '(')
26282631
{
2629-
semsg(_(e_missing_paren), arg);
2632+
semsg(_(e_missing_paren), *arg);
26302633
return FAIL;
26312634
}
26322635
// TODO: base value may not be the first argument

0 commit comments

Comments
 (0)