patch 8.2.1408: Vim9: type casting not supported
Problem: Vim9: type casting not supported.
Solution: Introduce type casting.
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index ea012b7..5d9447d 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -817,6 +817,24 @@
let g:number = 42
+def TypeCast()
+ let l: list<number> = [23, <number>g:number]
+enddef
+
+def Test_disassemble_typecast()
+ let instr = execute('disassemble TypeCast')
+ assert_match('TypeCast.*' ..
+ 'let l: list<number> = \[23, <number>g:number\].*' ..
+ '\d PUSHNR 23\_s*' ..
+ '\d LOADG g:number\_s*' ..
+ '\d CHECKTYPE number stack\[-1\]\_s*' ..
+ '\d NEWLIST size 2\_s*' ..
+ '\d STORE $0\_s*' ..
+ '\d PUSHNR 0\_s*' ..
+ '\d RETURN\_s*',
+ instr)
+enddef
+
def Computing()
let nr = 3
let nrres = nr + 7
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 7891127..0af5402 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1247,6 +1247,12 @@
let $TESTVAR = 'testvar'
+" type casts
+def Test_expr7t()
+ let ls: list<string> = ['a', <string>g:string_empty]
+ let ln: list<number> = [<number>g:anint, <number>g:alsoint]
+enddef
+
" test low level expression
def Test_expr7_number()
# number constant