diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 6fc7d06..318968b 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -78,6 +78,7 @@
 
 def Test_add()
   v9.CheckDefAndScriptFailure(['add({}, 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1226: List or Blob required for argument 1'])
+  v9.CheckDefAndScriptFailure(['add([])'], 'E119:')
   v9.CheckDefExecFailure([
         'var ln: list<number> = [1]',
         'add(ln, "a")'],
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 9807b6c..93c6bcd 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2151,6 +2151,9 @@
   vv = $'other {val}'
   assert_equal('other val', vv)
 
+  v9.CheckDefAndScriptFailure(['var x = $"foo'], 'E114:', 1)
+  v9.CheckDefAndScriptFailure(['var x = $"foo{xxx}"'], ['E1001: Variable not found: xxx', 'E121: Undefined variable: xxx'], 1)
+
   var x = 'x'
   var vl = 'foo xxx bar xxx baz'
               ->split($'x{x}x')
@@ -2818,6 +2821,7 @@
   g:key = 'x'
   v9.CheckDefExecAndScriptFailure(["var x = {[g:key]: 'text', [g:key]: 'text'}"], 'E721:', 1)
   unlet g:key
+  v9.CheckDefExecAndScriptFailure(["var x = {[notexists]: 'text'}"], ['E1001:', 'E121: Undefined variable: notexists'], 1)
   v9.CheckDefExecAndScriptFailure(["var x = g:anint.member"], ['E715:', 'E488:'], 1)
   v9.CheckDefExecAndScriptFailure(["var x = g:dict_empty.member"], 'E716:', 1)
 
@@ -3370,6 +3374,9 @@
       assert_equal('onetwo', s)
   END
   v9.CheckDefAndScriptSuccess(lines)
+
+  v9.CheckDefAndScriptFailure(['echo ('], ['E1097: Line incomplete', 'E15: Invalid expression: "("'])
+  v9.CheckDefAndScriptFailure(['echo (123]'], "E110: Missing ')'", 1)
 enddef
 
 def Test_expr8_negate_add()
@@ -3480,6 +3487,7 @@
        "var x = substitute ('x', 'x', 'x', 'x')"
        ], ['E1001:', 'E121:'], 1)
   v9.CheckDefAndScriptFailure(["var Ref = function('len' [1, 2])"], ['E1123:', 'E116:'], 1)
+  v9.CheckDefAndScriptFailure(["echo match(['foo'] , 'foo')"], 'E1068:', 1)
 enddef
 
 def g:ExistingGlobal(): string
@@ -4000,6 +4008,16 @@
   v9.CheckDefAndScriptSuccess(lines)
 enddef
 
+def Test_expr8_funcref_subscript()
+  var lines =<< trim END
+      var l = function('len')("abc")
+      assert_equal(3, l)
+  END
+  v9.CheckDefAndScriptSuccess(lines)
+
+  v9.CheckDefAndScriptFailure(["var l = function('len')(xxx)"], ['E1001: Variable not found: xxx', 'E121: Undefined variable: xxx'], 1)
+enddef
+
 def Test_expr8_subscript_linebreak()
   var lines =<< trim END
       var range = range(
diff --git a/src/version.c b/src/version.c
index 45f0f28..e63e6b1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4946,
+/**/
     4945,
 /**/
     4944,
diff --git a/src/vim9expr.c b/src/vim9expr.c
index a200a87..6fb6fc4 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -1122,7 +1122,7 @@
     r = get_lambda_tv(arg, rettv, types_optional, evalarg);
     current_sctx.sc_version = save_sc_version;
     if (r != OK)
-	return r;
+	return r;  // currently unreachable
 
     // "rettv" will now be a partial referencing the function.
     ufunc = rettv->vval.v_partial->pt_func;
@@ -1682,12 +1682,6 @@
 					    -1, 0, cctx, FALSE, FALSE) == FAIL)
 		return FAIL;
 
-	    while (p > start && (p[-1] == '-' || p[-1] == '+'))
-	    {
-		--p;
-		if (*p == '-')
-		    negate = !negate;
-	    }
 	    // only '-' has an effect, for '+' we only check the type
 	    if (negate)
 	    {
