patch 8.2.2137: Vim9: :echo and :execute give error for empty argument
Problem: Vim9: :echo and :execute give error for empty argument.
Solution: Ignore an empty argument. (closes #7468)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index fabb8d2..7ea1491 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -15,6 +15,7 @@
def s:ScriptFuncLoad(arg: string)
var local = 1
buffers
+ echo
echo arg
echo local
echo &lines
@@ -43,14 +44,27 @@
var res = execute('disass s:ScriptFuncLoad')
assert_match('<SNR>\d*_ScriptFuncLoad.*' ..
- 'buffers.*' ..
- ' EXEC \+buffers.*' ..
- ' LOAD arg\[-1\].*' ..
- ' LOAD $0.*' ..
- ' LOADOPT &lines.*' ..
- ' LOADV v:version.*' ..
- ' LOADS s:scriptvar from .*test_vim9_disassemble.vim.*' ..
- ' LOADG g:globalvar.*' ..
+ 'buffers\_s*' ..
+ '\d\+ EXEC \+buffers\_s*' ..
+ 'echo\_s*' ..
+ 'echo arg\_s*' ..
+ '\d\+ LOAD arg\[-1\]\_s*' ..
+ '\d\+ ECHO 1\_s*' ..
+ 'echo local\_s*' ..
+ '\d\+ LOAD $0\_s*' ..
+ '\d\+ ECHO 1\_s*' ..
+ 'echo &lines\_s*' ..
+ '\d\+ LOADOPT &lines\_s*' ..
+ '\d\+ ECHO 1\_s*' ..
+ 'echo v:version\_s*' ..
+ '\d\+ LOADV v:version\_s*' ..
+ '\d\+ ECHO 1\_s*' ..
+ 'echo s:scriptvar\_s*' ..
+ '\d\+ LOADS s:scriptvar from .*test_vim9_disassemble.vim\_s*' ..
+ '\d\+ ECHO 1\_s*' ..
+ 'echo g:globalvar\_s*' ..
+ '\d\+ LOADG g:globalvar\_s*' ..
+ '\d\+ ECHO 1\_s*' ..
'echo get(g:, "global")\_s*' ..
'\d\+ LOAD g:\_s*' ..
'\d\+ PUSHS "global"\_s*' ..
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 45103fc..13e824a 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -620,7 +620,7 @@
CheckDefFailure(['if 1', 'endtry'], 'E171:')
CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:')
- CheckDefFailure(['throw'], 'E1015:')
+ CheckDefFailure(['throw'], 'E1143:')
CheckDefFailure(['throw xxx'], 'E1001:')
enddef
@@ -1719,6 +1719,10 @@
enddef
def Test_execute_cmd()
+ # missing argument is ignored
+ execute
+ execute # comment
+
new
setline(1, 'default')
execute 'setline(1, "execute-string")'
@@ -2137,9 +2141,6 @@
'vim9script',
'exe "echo"# something',
], 'E121:')
- CheckDefFailure([
- 'exe # comment',
- ], 'E1015:')
CheckScriptFailure([
'vim9script',
'exe# something',
@@ -2164,7 +2165,7 @@
' throw#comment',
'catch',
'endtry',
- ], 'E1015:')
+ ], 'E1143:')
CheckDefFailure([
'try',
' throw "yes"#comment',