patch 8.2.2741: Vim9: Partial call does not check right arguments

Problem:    Vim9: Partial call does not check right arguments.
Solution:   Adjust the offset for whether the partial is before or after the
            arguments. (closes #8091)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index d48cab4..85830a3 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -796,6 +796,8 @@
     assert_equal('anything', Callback())
     assert_equal('anything', Callback(1))
     assert_equal('anything', Callback('a', 2))
+
+    assert_equal('xyz', ((a: string): string => a)('xyz'))
   END
   CheckDefAndScriptSuccess(lines)
 
diff --git a/src/version.c b/src/version.c
index 74a0ae6..64c5af4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2741,
+/**/
     2740,
 /**/
     2739,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 2cfc127..c2735dc 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1969,7 +1969,7 @@
 
 		for (i = 0; i < argcount; ++i)
 		{
-		    int	    offset = -argcount + i - 1;
+		    int	    offset = -argcount + i - (at_top ? 0 : 1);
 		    type_T *actual = ((type_T **)stack->ga_data)[
 						       stack->ga_len + offset];
 		    type_T *expected;