From c653e4a2bd4099e2fac8e1c448a0f34581d5a658 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 5 Jan 2022 10:16:30 +0000 Subject: patch 8.2.4006: Vim9: crash when declaring variable on the command line Problem: Vim9: crash when declaring variable on the command line. Solution: Use a temporary type list. (closes #9474) --- src/testdir/test_vim9_assign.vim | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/testdir') diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index c91cd6547..209ac95f8 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -2,6 +2,7 @@ source check.vim source vim9.vim +source term_util.vim let s:appendToMe = 'xxx' let s:addToMe = 111 @@ -2281,6 +2282,23 @@ def Test_abort_after_error() delete('Xtestscript') enddef +func Test_declare_command_line() + CheckRunVimInTerminal + call Run_Test_declare_command_line() +endfunc + +def Run_Test_declare_command_line() + # On the command line the type is parsed but not used. + # To get rid of the script context have to run this in another Vim instance. + var buf = RunVimInTerminal('', {'rows': 6}) + term_sendkeys(buf, ":vim9 var abc: list> = [ [1, 2, 3], [4, 5, 6] ]\") + TermWait(buf) + term_sendkeys(buf, ":echo abc\") + TermWait(buf) + WaitForAssert(() => assert_match('\[\[1, 2, 3\], \[4, 5, 6\]\]', term_getline(buf, 6))) + StopVimInTerminal(buf) +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker -- cgit v1.2.1