0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

patch 8.2.2799: Vim9: type casts don't fully work at the script level

Problem:    Vim9: type casts don't fully work at the script level.
Solution:   Implement the missing piece.
This commit is contained in:
Bram Moolenaar
2021-04-21 17:57:26 +02:00
parent a369c3d9c1
commit 459fbdbf92
3 changed files with 101 additions and 9 deletions

View File

@@ -1575,16 +1575,25 @@ let $TESTVAR = 'testvar'
" type casts
def Test_expr7t()
var ls: list<string> = ['a', <string>g:string_empty]
var ln: list<number> = [<number>g:anint, <number>g:thefour]
var nr = <number>234
assert_equal(234, nr)
var lines =<< trim END
var ls: list<string> = ['a', <string>g:string_empty]
var ln: list<number> = [<number>g:anint, <number>g:thefour]
var nr = <number>234
assert_equal(234, nr)
var text =
<string>
'text'
if false
text = <number>'xxx'
endif
END
CheckDefAndScriptSuccess(lines)
CheckDefAndScriptFailure2(["var x = <nr>123"], 'E1010:', 'E15:', 1)
CheckDefAndScriptFailure(["var x = <nr>123"], 'E1010:', 1)
CheckDefFailure(["var x = <number>"], 'E1097:', 3)
CheckScriptFailure(['vim9script', "var x = <number>"], 'E15:', 2)
CheckDefAndScriptFailure2(["var x = <number >123"], 'E1068:', 'E15:', 1)
CheckDefAndScriptFailure2(["var x = <number 123"], 'E1104:', 'E15:', 1)
CheckDefAndScriptFailure(["var x = <number >123"], 'E1068:', 1)
CheckDefAndScriptFailure(["var x = <number 123"], 'E1104:', 1)
enddef
" test low level expression