patch 8.2.1445: Vim9: function expanded name is cleared when sourcing again
Problem: Vim9: function expanded name is cleared when sourcing a script
again.
Solution: Only clear the expanded name when deleting the function.
(closes #6707)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index b462e47..2b0a4ad 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1796,6 +1796,29 @@
delete('Ximport.vim')
enddef
+def Test_func_redefine_error()
+ let lines = [
+ 'vim9script',
+ 'def Func()',
+ ' eval [][0]',
+ 'enddef',
+ 'Func()',
+ ]
+ writefile(lines, 'Xtestscript.vim')
+
+ for count in range(3)
+ try
+ source Xtestscript.vim
+ catch /E684/
+ # function name should contain <SNR> every time
+ assert_match('E684: list index out of range', v:exception)
+ assert_match('function <SNR>\d\+_Func, line 1', v:throwpoint)
+ endtry
+ endfor
+
+ delete('Xtestscript.vim')
+enddef
+
def Test_func_overrules_import_fails()
let export_lines =<< trim END
vim9script