patch 9.0.0405: arguments in a partial not used by a :def function
Problem: Arguments in a partial not used by a :def function.
Solution: Put the partial arguments on the stack.
diff --git a/src/testdir/test_user_func.vim b/src/testdir/test_user_func.vim
index ecf90b6..0a94264 100644
--- a/src/testdir/test_user_func.vim
+++ b/src/testdir/test_user_func.vim
@@ -635,6 +635,11 @@
return val == 'c'
enddef
+def DefIndexXtra(xtra: string, idx: number, val: string): bool
+ call writefile([idx .. ': ' .. val], 'Xentry' .. idx, 'D')
+ return val == 'c'
+enddef
+
def Test_defer_in_funcref()
assert_equal(2, indexof(['a', 'b', 'c'], function('g:FuncIndex')))
assert_false(filereadable('Xentry0'))
@@ -655,6 +660,16 @@
assert_false(filereadable('Xentry0'))
assert_false(filereadable('Xentry1'))
assert_false(filereadable('Xentry2'))
+
+ assert_equal(2, indexof(['a', 'b', 'c'], function(g:DefIndexXtra, ['xtra'])))
+ assert_false(filereadable('Xentry0'))
+ assert_false(filereadable('Xentry1'))
+ assert_false(filereadable('Xentry2'))
+
+ assert_equal(2, indexof(['a', 'b', 'c'], funcref(g:DefIndexXtra, ['xtra'])))
+ assert_false(filereadable('Xentry0'))
+ assert_false(filereadable('Xentry1'))
+ assert_false(filereadable('Xentry2'))
enddef