Mercurial > vim
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:') |