patch 8.2.0480: Vim9: some code is not tested

Problem:    Vim9: some code is not tested.
Solution:   Add more tests.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 6a03027..f61ff53 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -706,9 +706,12 @@
   assert_equal(g:list_empty, [])
   assert_equal(g:list_empty, [  ])
   assert_equal(g:list_mixed, [1, 'b', false])
+  assert_equal('b', g:list_mixed[1])
 
   call CheckDefExecFailure("let x = g:anint[3]", 'E714:')
+  call CheckDefFailure("let x = g:list_mixed[xxx]", 'E1001:')
   call CheckDefExecFailure("let x = g:list_mixed['xx']", 'E39:')
+  call CheckDefFailure("let x = g:list_mixed[0", 'E111:')
   call CheckDefExecFailure("let x = g:list_empty[3]", 'E684:')
 enddef
 
@@ -739,6 +742,12 @@
   call CheckDefExecFailure("let x = g:dict_empty.member", 'E716:')
 enddef
 
+def Test_expr_member()
+  assert_equal(1, g:dict_one.one)
+
+  call CheckDefFailure("let x = g:dict_one.#$!", 'E1002:')
+enddef
+
 def Test_expr7_option()
   " option
   set ts=11
@@ -778,6 +787,30 @@
   assert_equal(-6, ---6)
 enddef
 
+def Test_expr7_negate()
+  assert_equal(-99, -99)
+  assert_equal(99, --99)
+  let nr = 88
+  assert_equal(-88, -nr)
+  assert_equal(88, --nr)
+enddef
+
+def Echo(arg): string
+  return arg
+enddef
+
+def s:EchoArg(arg): string
+  return arg
+enddef
+
+def Test_expr7_call()
+  assert_equal('yes', 'yes'->Echo())
+  assert_equal('yes', 'yes'->s:EchoArg())
+
+  call CheckDefFailure("let x = 'yes'->Echo", 'E107:')
+enddef
+
+
 def Test_expr7_not()
   assert_equal(true, !'')
   assert_equal(true, ![])
diff --git a/src/version.c b/src/version.c
index f1d74d8..e09cf4f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    480,
+/**/
     479,
 /**/
     478,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 584618c..9d66e5e 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2622,11 +2622,14 @@
 	    else
 	    {
 		// method call:  list->method()
-		for (p = *arg; eval_isnamec1(*p); ++p)
+		p = *arg;
+		if (ASCII_ISALPHA(*p) && p[1] == ':')
+		    p += 2;
+		for ( ; eval_isnamec1(*p); ++p)
 		    ;
 		if (*p != '(')
 		{
-		    semsg(_(e_missing_paren), arg);
+		    semsg(_(e_missing_paren), *arg);
 		    return FAIL;
 		}
 		// TODO: base value may not be the first argument