Mercurial > vim
comparison src/testdir/test_vim9_builtin.vim @ 25314:7e620652bd13 v8.2.3194
patch 8.2.3194: Vim9: argument types are not checked at compile time
Commit: https://github.com/vim/vim/commit/cd9172077bc8c0aafddf2e5367cc0ae2c00c8ff7
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Wed Jul 21 19:09:09 2021 +0200
patch 8.2.3194: Vim9: argument types are not checked at compile time
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks, simplify some. (Yegappan
Lakshmanan, closes #8598)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 21 Jul 2021 19:15:04 +0200 |
parents | 4d3c68196d05 |
children | cfbf40f749b0 |
comparison
equal
deleted
inserted
replaced
25313:afe0651cb4aa | 25314:7e620652bd13 |
---|---|
650 setline(1, range(4)) | 650 setline(1, range(4)) |
651 cursor(2, 1) | 651 cursor(2, 1) |
652 assert_equal(2, getcurpos()[1]) | 652 assert_equal(2, getcurpos()[1]) |
653 cursor('$', 1) | 653 cursor('$', 1) |
654 assert_equal(4, getcurpos()[1]) | 654 assert_equal(4, getcurpos()[1]) |
655 cursor([2, 1]) | |
656 assert_equal(2, getcurpos()[1]) | |
655 | 657 |
656 var lines =<< trim END | 658 var lines =<< trim END |
657 cursor('2', 1) | 659 cursor('2', 1) |
658 END | 660 END |
659 CheckDefExecAndScriptFailure(lines, 'E1209:') | 661 CheckDefExecAndScriptFailure(lines, 'E1209:') |
1103 hide edit Xtestfile2 | 1105 hide edit Xtestfile2 |
1104 hide enew | 1106 hide enew |
1105 getbufinfo({bufloaded: true, buflisted: true, bufmodified: false}) | 1107 getbufinfo({bufloaded: true, buflisted: true, bufmodified: false}) |
1106 ->len()->assert_equal(3) | 1108 ->len()->assert_equal(3) |
1107 bwipe Xtestfile1 Xtestfile2 | 1109 bwipe Xtestfile1 Xtestfile2 |
1110 CheckDefAndScriptFailure2(['getbufinfo(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') | |
1108 enddef | 1111 enddef |
1109 | 1112 |
1110 def Test_getbufline() | 1113 def Test_getbufline() |
1111 e SomeFile | 1114 e SomeFile |
1112 var buf = bufnr() | 1115 var buf = bufnr() |
1244 | 1247 |
1245 lines =<< trim END | 1248 lines =<< trim END |
1246 echo getline('1') | 1249 echo getline('1') |
1247 END | 1250 END |
1248 CheckDefExecAndScriptFailure(lines, 'E1209:') | 1251 CheckDefExecAndScriptFailure(lines, 'E1209:') |
1252 CheckDefAndScriptFailure2(['getline(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') | |
1253 CheckDefAndScriptFailure2(['getline(1, true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2') | |
1249 enddef | 1254 enddef |
1250 | 1255 |
1251 def Test_getloclist() | 1256 def Test_getloclist() |
1252 CheckDefAndScriptFailure2(['getloclist("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 1257 CheckDefAndScriptFailure2(['getloclist("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
1253 CheckDefAndScriptFailure2(['getloclist(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') | 1258 CheckDefAndScriptFailure2(['getloclist(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') |
3064 def Test_term_getjob() | 3069 def Test_term_getjob() |
3065 CheckRunVimInTerminal | 3070 CheckRunVimInTerminal |
3066 CheckDefAndScriptFailure2(['term_getjob(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E974: Using a Blob as a Number') | 3071 CheckDefAndScriptFailure2(['term_getjob(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E974: Using a Blob as a Number') |
3067 enddef | 3072 enddef |
3068 | 3073 |
3074 def Test_term_getline() | |
3075 CheckRunVimInTerminal | |
3076 CheckDefAndScriptFailure2(['term_getline(1.1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1') | |
3077 CheckDefAndScriptFailure2(['term_getline(1, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1174: String required for argument 2') | |
3078 enddef | |
3079 | |
3069 def Test_term_getscrolled() | 3080 def Test_term_getscrolled() |
3070 CheckRunVimInTerminal | 3081 CheckRunVimInTerminal |
3071 CheckDefAndScriptFailure2(['term_getscrolled(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E805: Using a Float as a Number') | 3082 CheckDefAndScriptFailure2(['term_getscrolled(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E805: Using a Float as a Number') |
3072 enddef | 3083 enddef |
3073 | 3084 |
3096 endif | 3107 endif |
3097 CheckDefAndScriptFailure2(['term_gettty([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') | 3108 CheckDefAndScriptFailure2(['term_gettty([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') |
3098 CheckDefAndScriptFailure2(['term_gettty(1, 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') | 3109 CheckDefAndScriptFailure2(['term_gettty(1, 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') |
3099 enddef | 3110 enddef |
3100 | 3111 |
3112 def Test_term_scrape() | |
3113 CheckRunVimInTerminal | |
3114 CheckDefAndScriptFailure2(['term_scrape(1.1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1') | |
3115 CheckDefAndScriptFailure2(['term_scrape(1, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1174: String required for argument 2') | |
3116 enddef | |
3117 | |
3101 def Test_term_sendkeys() | 3118 def Test_term_sendkeys() |
3102 CheckRunVimInTerminal | 3119 CheckRunVimInTerminal |
3103 CheckDefAndScriptFailure2(['term_sendkeys([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') | 3120 CheckDefAndScriptFailure2(['term_sendkeys([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') |
3104 CheckDefAndScriptFailure2(['term_sendkeys(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') | 3121 CheckDefAndScriptFailure2(['term_sendkeys(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') |
3105 enddef | 3122 enddef |
3125 def Test_term_setrestore() | 3142 def Test_term_setrestore() |
3126 CheckRunVimInTerminal | 3143 CheckRunVimInTerminal |
3127 CheckDefAndScriptFailure2(['term_setrestore([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') | 3144 CheckDefAndScriptFailure2(['term_setrestore([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') |
3128 CheckDefAndScriptFailure2(['term_setrestore(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') | 3145 CheckDefAndScriptFailure2(['term_setrestore(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') |
3129 enddef | 3146 enddef |
3147 | |
3148 def Test_term_setsize() | |
3149 CheckRunVimInTerminal | |
3150 CheckDefAndScriptFailure2(['term_setsize(1.1, 2, 3)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1') | |
3151 CheckDefAndScriptFailure2(['term_setsize(1, "2", 3)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
3152 CheckDefAndScriptFailure2(['term_setsize(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') | |
3153 enddef | |
3154 | |
3130 def Test_term_start() | 3155 def Test_term_start() |
3131 if !has('terminal') | 3156 if !has('terminal') |
3132 CheckFeature terminal | 3157 CheckFeature terminal |
3133 else | 3158 else |
3134 botright new | 3159 botright new |
3135 var winnr = winnr() | 3160 var winnr = winnr() |
3136 term_start(&shell, {curwin: true}) | 3161 term_start(&shell, {curwin: true}) |
3137 winnr()->assert_equal(winnr) | 3162 winnr()->assert_equal(winnr) |
3138 bwipe! | 3163 bwipe! |
3139 endif | 3164 endif |
3165 CheckDefAndScriptFailure2(['term_start({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1') | |
3166 CheckDefAndScriptFailure2(['term_start([], [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') | |
3167 CheckDefAndScriptFailure2(['term_start("", "")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2') | |
3140 enddef | 3168 enddef |
3141 | 3169 |
3142 def Test_term_wait() | 3170 def Test_term_wait() |
3143 CheckRunVimInTerminal | 3171 CheckRunVimInTerminal |
3144 CheckDefAndScriptFailure2(['term_wait(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1') | 3172 CheckDefAndScriptFailure2(['term_wait(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1') |