patch 8.2.2677: Vim9: cannot use only some of the default arguments
Problem: Vim9: cannot use only some of the default arguments.
Solution: Use v:none to use default argument value. Remove
uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 407e261..e24e72f 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -641,18 +641,25 @@
enddef
-def FuncWithDefault(arg: string = 'default'): string
- return arg
+def FuncWithDefault(arg: string = 'default', nr = 77): string
+ return arg .. nr
enddef
def Test_disassemble_call_default()
var res = execute('disass FuncWithDefault')
assert_match('FuncWithDefault\_s*' ..
+ '\d JUMP_IF_ARG_SET arg\[-2\] -> 3\_s*' ..
'\d PUSHS "default"\_s*' ..
+ '\d STORE arg\[-2]\_s*' ..
+ '3 JUMP_IF_ARG_SET arg\[-1\] -> 6\_s*' ..
+ '\d PUSHNR 77\_s*' ..
'\d STORE arg\[-1]\_s*' ..
- 'return arg\_s*' ..
+ 'return arg .. nr\_s*' ..
+ '6 LOAD arg\[-2]\_s*' ..
'\d LOAD arg\[-1]\_s*' ..
- '\d RETURN',
+ '\d 2STRING stack\[-1]\_s*' ..
+ '\d\+ CONCAT\_s*' ..
+ '\d\+ RETURN',
res)
enddef