patch 8.2.0323: Vim9: calling a function that is defined later is slow
Problem: Vim9: calling a function that is defined later is slow.
Solution: Once the function is found update the instruction so it can be
called directly.
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 53ee511..f1b21d4 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -212,6 +212,19 @@
return a:arg
endfunc
+def FuncWithForwardCall()
+ return DefinedEvenLater("yes")
+enddef
+
+def DefinedEvenLater(arg: string): string
+ return arg
+enddef
+
+def Test_error_in_nested_function()
+ " Error in called function requires unwinding the call stack.
+ assert_fails('call FuncWithForwardCall()', 'E1029')
+enddef
+
def Test_return_type_wrong()
CheckScriptFailure(['def Func(): number', 'return "a"', 'enddef'], 'expected number but got string')
CheckScriptFailure(['def Func(): string', 'return 1', 'enddef'], 'expected string but got number')