comparison src/testdir/test_vim9_script.vim @ 22190:da851f3b6a0b v8.2.1644

patch 8.2.1644: Vim9: cannot assign 1 and 0 to bool at script level Commit: https://github.com/vim/vim/commit/ba7c0d7b4ce03336b4aebe1959c1a8342fa6dbd4 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 9 18:54:42 2020 +0200 patch 8.2.1644: Vim9: cannot assign 1 and 0 to bool at script level Problem: Vim9: cannot assign 1 and 0 to bool at script level. Solution: Add the TTFLAG_BOOL_OK flag to the type. Fix name of test function.
author Bram Moolenaar <Bram@vim.org>
date Wed, 09 Sep 2020 19:00:04 +0200
parents 2463b3d89ce2
children d835f2fdfcfc
comparison
equal deleted inserted replaced
22189:c0aafebff6d9 22190:da851f3b6a0b
37 let $SOME_ENV_VAR = 'some' 37 let $SOME_ENV_VAR = 'some'
38 let g:alist = [7] 38 let g:alist = [7]
39 let g:astring = 'text' 39 let g:astring = 'text'
40 let g:anumber = 123 40 let g:anumber = 123
41 41
42 def Test_assignment() 42 def Test_assignment_bool()
43 let bool1: bool = true 43 let bool1: bool = true
44 assert_equal(v:true, bool1) 44 assert_equal(v:true, bool1)
45 let bool2: bool = false 45 let bool2: bool = false
46 assert_equal(v:false, bool2) 46 assert_equal(v:false, bool2)
47 47
48 let bool3: bool = 0 48 let bool3: bool = 0
49 assert_equal(0, bool3) 49 assert_equal(0, bool3)
50 let bool4: bool = 1 50 let bool4: bool = 1
51 assert_equal(1, bool4) 51 assert_equal(1, bool4)
52 52
53 let lines =<< trim END
54 vim9script
55 def GetFlag(): bool
56 let flag: bool = 1
57 return flag
58 enddef
59 let flag: bool = GetFlag()
60 flag = 0
61 flag = 1
62 END
63 CheckScriptSuccess(lines)
64 CheckDefAndScriptFailure(['let x: bool = 2'], 'E1012:')
65 CheckDefAndScriptFailure(['let x: bool = -1'], 'E1012:')
66 CheckDefAndScriptFailure(['let x: bool = [1]'], 'E1012:')
67 CheckDefAndScriptFailure(['let x: bool = {}'], 'E1012:')
68 CheckDefAndScriptFailure(['let x: bool = "x"'], 'E1012:')
69 enddef
70
71 def Test_assignment()
53 CheckDefFailure(['let x:string'], 'E1069:') 72 CheckDefFailure(['let x:string'], 'E1069:')
54 CheckDefFailure(['let x:string = "x"'], 'E1069:') 73 CheckDefFailure(['let x:string = "x"'], 'E1069:')
55 CheckDefFailure(['let a:string = "x"'], 'E1069:') 74 CheckDefFailure(['let a:string = "x"'], 'E1069:')
56 CheckDefFailure(['let lambda = {-> "lambda"}'], 'E704:') 75 CheckDefFailure(['let lambda = {-> "lambda"}'], 'E704:')
57 76
162 assert_equal('', &t_TI) 181 assert_equal('', &t_TI)
163 &t_TI = 'xxx' 182 &t_TI = 'xxx'
164 assert_equal('xxx', &t_TI) 183 assert_equal('xxx', &t_TI)
165 &t_TI = save_TI 184 &t_TI = save_TI
166 END 185 END
167 CheckDefSuccess(lines) 186 CheckDefAndScriptSuccess(lines)
168 CheckScriptSuccess(['vim9script'] + lines)
169 187
170 CheckDefFailure(['&t_TI = 123'], 'E1012:') 188 CheckDefFailure(['&t_TI = 123'], 'E1012:')
171 CheckScriptFailure(['vim9script', '&t_TI = 123'], 'E928:') 189 CheckScriptFailure(['vim9script', '&t_TI = 123'], 'E928:')
172 190
173 CheckDefFailure(['let s:var = 123'], 'E1101:') 191 CheckDefFailure(['let s:var = 123'], 'E1101:')