forked from aniani/vim
patch 8.2.2742: Vim9: when compiling a function fails it is cleared
Problem: Vim9: when compiling a function fails it is cleared.
Solution: Keep the function lines, prevent execution with a different
status. (closes #8093)
This commit is contained in:
@@ -1498,7 +1498,7 @@ def Test_redef_failure()
|
||||
so Xdef
|
||||
delete('Xdef')
|
||||
|
||||
g:Func0()->assert_equal(0)
|
||||
assert_fails('g:Func0()', 'E1091:')
|
||||
g:Func1()->assert_equal('Func1')
|
||||
g:Func2()->assert_equal('Func2')
|
||||
|
||||
@@ -2591,6 +2591,20 @@ def Test_check_func_arg_types()
|
||||
CheckScriptFailure(lines + ['echo H(G(F2))'], 'E1013:')
|
||||
enddef
|
||||
|
||||
def Test_compile_error()
|
||||
var lines =<< trim END
|
||||
def g:Broken()
|
||||
echo 'a' + {}
|
||||
enddef
|
||||
call g:Broken()
|
||||
END
|
||||
# First call: compilation error
|
||||
CheckScriptFailure(lines, 'E1051: Wrong argument type for +')
|
||||
|
||||
# Second call won't try compiling again
|
||||
assert_fails('call g:Broken()', 'E1091: Function is not compiled: Broken')
|
||||
enddef
|
||||
|
||||
|
||||
|
||||
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
|
||||
|
||||
Reference in New Issue
Block a user