patch 8.2.1894: Vim9: command modifiers are not supported
Problem: Vim9: command modifiers are not supported.
Solution: Support "silent" and "silent!".
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 296aa55..710cd2f 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -401,5 +401,17 @@
CheckScriptSuccess(lines)
enddef
+def Test_modifier_silent()
+ echomsg 'last one'
+ silent echomsg "text"
+ redir => g:testmsg
+ :1messages
+ redir END
+ assert_equal("\nlast one", g:testmsg)
+ unlet g:testmsg
+
+ silent! echoerr "error"
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 97797bc..eadac27 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -1617,4 +1617,28 @@
res)
enddef
+
+def s:SilentMessage()
+ silent echomsg "text"
+ silent! echoerr "error"
+enddef
+
+def Test_silent()
+ var res = execute('disass s:SilentMessage')
+ assert_match('<SNR>\d*_SilentMessage\_s*' ..
+ 'silent echomsg "text"\_s*' ..
+ '\d SILENT\_s*' ..
+ '\d PUSHS "text"\_s*' ..
+ '\d ECHOMSG 1\_s*' ..
+ '\d UNSILENT\_s*' ..
+ 'silent! echoerr "error"\_s*' ..
+ '\d SILENT!\_s*' ..
+ '\d PUSHS "error"\_s*' ..
+ '\d ECHOERR 1\_s*' ..
+ '\d UNSILENT!\_s*' ..
+ '\d PUSHNR 0\_s*' ..
+ '\d RETURN',
+ res)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker