patch 9.1.1013: Vim9: Regression caused by patch v9.1.0646
Problem: Vim9: Regression caused by patch v9.1.0646
Solution: Translate the function name before invoking it in call()
(Yegappan Lakshmanan)
fixes: #16430
closes: #16445
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_user_func.vim b/src/testdir/test_user_func.vim
index 992329b..99ac906 100644
--- a/src/testdir/test_user_func.vim
+++ b/src/testdir/test_user_func.vim
@@ -427,7 +427,7 @@
" Try to call a script local function in global scope
let lines =<< trim [CODE]
:call assert_fails('call s:Xfunc()', 'E81:')
- :call assert_fails('let x = call("<SID>Xfunc", [])', 'E120:')
+ :call assert_fails('let x = call("<SID>Xfunc", [])', ['E81:', 'E117:'])
:call writefile(v:errors, 'Xresult')
:qall
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 6103453..c82608b 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -540,7 +540,7 @@
const Imported = i_imp.Imported
const foo = i_imp.foo
- assert_fails('call("i_imp.foo", [])', 'E117:') # foo is not a function
+ assert_fails('call("i_imp.foo", [])', ['E46:', 'E117:']) # foo is not a function
assert_fails('call("foo", [])', 'E117:') # foo is not a function
assert_fails('call("i_xxx.foo", [])', 'E117:') # i_xxx not imported file
END
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 2dc925a..b4e25c3 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -3611,4 +3611,26 @@
unlet g:instr
enddef
+" Disassemble the code generated for accessing a script-local funcref
+def Test_disassemble_using_script_local_funcref()
+ var lines =<< trim END
+ vim9script
+ def Noop()
+ enddef
+ export var Setup = Noop
+ export def Run()
+ Setup()
+ enddef
+ g:instr = execute('disassemble Run')
+ END
+ v9.CheckScriptSuccess(lines)
+ assert_match('<SNR>\d\+_Run\_s*' ..
+ 'Setup()\_s*' ..
+ '0 LOADSCRIPT Setup-0 from .*\_s*' ..
+ '1 PCALL (argc 0)\_s*' ..
+ '2 DROP\_s*' ..
+ '3 RETURN void\_s*', g:instr)
+ unlet g:instr
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 4188f82..38832e9 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
Binary files differ