You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
CheckDefAndScriptFailure2(['getbufinfo(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1')
1108
1111
enddef
1109
1112
1110
1113
defTest_getbufline()
@@ -1246,6 +1249,8 @@ def Test_getline()
1246
1249
echogetline('1')
1247
1250
END
1248
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
1254
enddef
1250
1255
1251
1256
defTest_getloclist()
@@ -3066,6 +3071,12 @@ def Test_term_getjob()
3066
3071
CheckDefAndScriptFailure2(['term_getjob(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E974: Using a Blob as a Number')
3067
3072
enddef
3068
3073
3074
+
defTest_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
3080
defTest_term_getscrolled()
3070
3081
CheckRunVimInTerminal
3071
3082
CheckDefAndScriptFailure2(['term_getscrolled(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E805: Using a Float as a Number')
@@ -3098,6 +3109,12 @@ def Test_term_gettty()
3098
3109
CheckDefAndScriptFailure2(['term_gettty(1, 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2')
3099
3110
enddef
3100
3111
3112
+
defTest_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
3118
defTest_term_sendkeys()
3102
3119
CheckRunVimInTerminal
3103
3120
CheckDefAndScriptFailure2(['term_sendkeys([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1')
@@ -3127,6 +3144,14 @@ def Test_term_setrestore()
3127
3144
CheckDefAndScriptFailure2(['term_setrestore([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1')
3128
3145
CheckDefAndScriptFailure2(['term_setrestore(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2')
3129
3146
enddef
3147
+
3148
+
defTest_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
3155
defTest_term_start()
3131
3156
if!has('terminal')
3132
3157
CheckFeature terminal
@@ -3137,6 +3162,9 @@ def Test_term_start()
3137
3162
winnr()->assert_equal(winnr)
3138
3163
bwipe!
3139
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')
0 commit comments