patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Problem: Vim9: finding global function without g: prefix but not finding
global variable is inconsistent.
Solution: Require using g: for a global function. Change the vim9.vim
script into a Vim9 script with exports. Fix that import in legacy
script does not work.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 6428e63..d2f69ab 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1,7 +1,7 @@
" Tests for Vim9 script expressions
source check.vim
-source vim9.vim
+import './vim9.vim' as v9
let g:cond = v:false
def FuncOne(arg: number): string
@@ -66,7 +66,7 @@
var Z = g:cond ? FuncOne : FuncTwo
assert_equal(123, Z(3))
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr1_trinary_vimscript()
@@ -77,7 +77,7 @@
: 'no'
assert_equal('yes', name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:false
@@ -85,7 +85,7 @@
: 'no'
assert_equal('no', name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:false ?
@@ -93,7 +93,7 @@
'no'
assert_equal('no', name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:false ? # comment
@@ -102,48 +102,48 @@
'no' # comment
assert_equal('no', name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# check white space
lines =<< trim END
var name = v:true?1:2
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''?'' at "?1:2"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''?'' at "?1:2"', 1)
lines =<< trim END
var name = v:true? 1 : 2
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
var name = v:true ?1 : 2
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
var name = v:true ? 1: 2
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after '':'' at ": 2"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after '':'' at ": 2"', 1)
lines =<< trim END
var name = v:true ? 1 :2
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
var name = 'x' ? 1 : 2
END
- CheckDefAndScriptFailure(lines, 'E1135:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1135:', 1)
lines =<< trim END
var name = [] ? 1 : 2
END
- CheckDefExecAndScriptFailure(lines, 'E745:', 1)
+ v9.CheckDefExecAndScriptFailure(lines, 'E745:', 1)
lines =<< trim END
var name = {} ? 1 : 2
END
- CheckDefExecAndScriptFailure(lines, 'E728:', 1)
+ v9.CheckDefExecAndScriptFailure(lines, 'E728:', 1)
# check after failure eval_flags is reset
lines =<< trim END
@@ -153,7 +153,7 @@
endtry
assert_equal(v:true, eval(string(v:true)))
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
try
@@ -162,53 +162,53 @@
endtry
assert_equal(v:true, eval(string(v:true)))
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
func Test_expr1_trinary_fails()
- call CheckDefAndScriptFailure(["var x = 1 ? 'one'"], "Missing ':' after '?'", 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ? 'one'"], "Missing ':' after '?'", 1)
let msg = "White space required before and after '?'"
- call CheckDefAndScriptFailure(["var x = 1? 'one' : 'two'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 ?'one' : 'two'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1?'one' : 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1? 'one' : 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ?'one' : 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1?'one' : 'two'"], msg, 1)
let lines =<< trim END
var x = 1
?'one' : 'two'
# comment
END
- call CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''?'' at "?''one'' : ''two''"', 2)
+ call v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''?'' at "?''one'' : ''two''"', 2)
let msg = "White space required before and after ':'"
- call CheckDefAndScriptFailure(["var x = 1 ? 'one': 'two'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 ? 'one' :'two'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 ? 'one':'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ? 'one': 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ? 'one' :'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ? 'one':'two'"], msg, 1)
let lines =<< trim END
var x = 1 ? 'one'
:'two'
# Comment
END
- call CheckDefAndScriptFailure(lines, 'E1004: White space required before and after '':'' at ":''two''"', 2)
+ call v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after '':'' at ":''two''"', 2)
- call CheckDefAndScriptFailure(["var x = 'x' ? 'one' : 'two'"], 'E1135:', 1)
- call CheckDefAndScriptFailure(["var x = 0z1234 ? 'one' : 'two'"], 'E974:', 1)
- call CheckDefExecAndScriptFailure(["var x = [] ? 'one' : 'two'"], 'E745:', 1)
- call CheckDefExecAndScriptFailure(["var x = {} ? 'one' : 'two'"], 'E728:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'x' ? 'one' : 'two'"], 'E1135:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z1234 ? 'one' : 'two'"], 'E974:', 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = [] ? 'one' : 'two'"], 'E745:', 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = {} ? 'one' : 'two'"], 'E728:', 1)
- call CheckDefExecFailure(["var x = false ? "], 'E1097:', 3)
- call CheckScriptFailure(['vim9script', "var x = false ? "], 'E15:', 2)
- call CheckDefExecFailure(["var x = false ? 'one' : "], 'E1097:', 3)
- call CheckScriptFailure(['vim9script', "var x = false ? 'one' : "], 'E15:', 2)
+ call v9.CheckDefExecFailure(["var x = false ? "], 'E1097:', 3)
+ call v9.CheckScriptFailure(['vim9script', "var x = false ? "], 'E15:', 2)
+ call v9.CheckDefExecFailure(["var x = false ? 'one' : "], 'E1097:', 3)
+ call v9.CheckScriptFailure(['vim9script', "var x = false ? 'one' : "], 'E15:', 2)
- call CheckDefExecAndScriptFailure(["var x = true ? xxx : 'foo'"], ['E1001:', 'E121:'], 1)
- call CheckDefExecAndScriptFailure(["var x = false ? 'foo' : xxx"], ['E1001:', 'E121:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = true ? xxx : 'foo'"], ['E1001:', 'E121:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = false ? 'foo' : xxx"], ['E1001:', 'E121:'], 1)
if has('float')
- call CheckDefAndScriptFailure(["var x = 0.1 ? 'one' : 'two'"], 'E805:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0.1 ? 'one' : 'two'"], 'E805:', 1)
endif
" missing argument detected even when common type is used
- call CheckDefAndScriptFailure([
+ call v9.CheckDefAndScriptFailure([
\ 'var X = FuncOne',
\ 'var Y = FuncTwo',
\ 'var Z = g:cond ? FuncOne : FuncTwo',
@@ -235,21 +235,21 @@
assert_equal(456, 0.0 ?? 456)
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
var msg = "White space required before and after '??'"
- call CheckDefAndScriptFailure(["var x = 1?? 'one' : 'two'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 ??'one' : 'two'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1??'one' : 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1?? 'one' : 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ??'one' : 'two'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1??'one' : 'two'"], msg, 1)
lines =<< trim END
var x = 1
??'one' : 'two'
#comment
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''??'' at "??''one'' : ''two''"', 2)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''??'' at "??''one'' : ''two''"', 2)
enddef
-def Record(val: any): any
+def g:Record(val: any): any
g:vals->add(val)
return val
enddef
@@ -270,35 +270,35 @@
assert_equal(false, 0 || false)
g:vals = []
- assert_equal(true, Record(1) || Record(3))
+ assert_equal(true, g:Record(1) || g:Record(3))
assert_equal([1], g:vals)
g:vals = []
- assert_equal(true, Record(0) || Record(1))
+ assert_equal(true, g:Record(0) || g:Record(1))
assert_equal([0, 1], g:vals)
g:vals = []
- assert_equal(true, Record(0) || Record(true))
+ assert_equal(true, g:Record(0) || g:Record(true))
assert_equal([0, true], g:vals)
g:vals = []
- assert_equal(true, Record(0)
- || Record(1)
- || Record(0))
+ assert_equal(true, g:Record(0)
+ || g:Record(1)
+ || g:Record(0))
assert_equal([0, 1], g:vals)
g:vals = []
- assert_equal(true, Record(0)
- || Record(true)
- || Record(0))
+ assert_equal(true, g:Record(0)
+ || g:Record(true)
+ || g:Record(0))
assert_equal([0, true], g:vals)
g:vals = []
- assert_equal(true, Record(true) || Record(false))
+ assert_equal(true, g:Record(true) || g:Record(false))
assert_equal([true], g:vals)
g:vals = []
- assert_equal(false, Record(0) || Record(false) || Record(0))
+ assert_equal(false, g:Record(0) || g:Record(false) || g:Record(0))
assert_equal([0, false, 0], g:vals)
g:vals = []
@@ -315,7 +315,7 @@
endif
assert_equal([1], g:vals)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr2_vimscript()
@@ -325,7 +325,7 @@
|| 1
assert_equal(true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:false
@@ -333,7 +333,7 @@
|| v:false
assert_equal(v:true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:false ||
@@ -341,7 +341,7 @@
v:false
assert_equal(v:true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:false || # comment
@@ -351,48 +351,48 @@
v:false # comment
assert_equal(v:true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# check white space
lines =<< trim END
var name = v:true||v:true
END
- CheckDefExecAndScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||v:true"', 1)
+ v9.CheckDefExecAndScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||v:true"', 1)
lines =<< trim END
var name = v:true ||v:true
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
var name = v:true|| v:true
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
enddef
def Test_expr2_fails()
var msg = "White space required before and after '||'"
- call CheckDefAndScriptFailure(["var x = 1||0"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 ||0"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1|| 0"], msg, 1)
+ v9.CheckDefAndScriptFailure(["var x = 1||0"], msg, 1)
+ v9.CheckDefAndScriptFailure(["var x = 1 ||0"], msg, 1)
+ v9.CheckDefAndScriptFailure(["var x = 1|| 0"], msg, 1)
- call CheckDefFailure(["var x = false || "], 'E1097:', 3)
- call CheckScriptFailure(['vim9script', "var x = false || "], 'E15:', 2)
+ v9.CheckDefFailure(["var x = false || "], 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script', "var x = false || "], 'E15:', 2)
# script does not fail, the second expression is skipped
- call CheckDefFailure(["var x = 1 || xxx"], 'E1001:', 1)
+ v9.CheckDefFailure(["var x = 1 || xxx"], 'E1001:', 1)
- call CheckDefAndScriptFailure(["var x = [] || false"], ['E1012:', 'E745:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = [] || false"], ['E1012:', 'E745:'], 1)
- call CheckDefAndScriptFailure(["if 'yes' || 0", 'echo 0', 'endif'], ['E1012: Type mismatch; expected bool but got string', 'E1135: Using a String as a Bool'], 1)
+ v9.CheckDefAndScriptFailure(["if 'yes' || 0", 'echo 0', 'endif'], ['E1012: Type mismatch; expected bool but got string', 'E1135: Using a String as a Bool'], 1)
- call CheckDefAndScriptFailure(["var x = 3 || false"], ['E1012:', 'E1023:'], 1)
- call CheckDefAndScriptFailure(["var x = false || 3"], ['E1012:', 'E1023:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = 3 || false"], ['E1012:', 'E1023:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = false || 3"], ['E1012:', 'E1023:'], 1)
- call CheckDefAndScriptFailure(["if 3"], 'E1023:', 1)
- call CheckDefExecAndScriptFailure(['var x = 3', 'if x', 'endif'], 'E1023:', 2)
+ v9.CheckDefAndScriptFailure(["if 3"], 'E1023:', 1)
+ v9.CheckDefExecAndScriptFailure(['var x = 3', 'if x', 'endif'], 'E1023:', 2)
- call CheckDefAndScriptFailure(["var x = [] || false"], ['E1012: Type mismatch; expected bool but got list<unknown>', 'E745:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = [] || false"], ['E1012: Type mismatch; expected bool but got list<unknown>', 'E745:'], 1)
var lines =<< trim END
vim9script
@@ -400,14 +400,14 @@
||true
# comment
END
- CheckScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||true"', 3)
+ v9.CheckScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||true"', 3)
lines =<< trim END
var x = false
|| false
|| a.b
END
- CheckDefFailure(lines, 'E1001:', 3)
+ v9.CheckDefFailure(lines, 'E1001:', 3)
enddef
" test &&
@@ -425,30 +425,30 @@
assert_equal(true, 1 && true)
g:vals = []
- assert_equal(true, Record(true) && Record(1))
+ assert_equal(true, g:Record(true) && g:Record(1))
assert_equal([true, 1], g:vals)
g:vals = []
- assert_equal(true, Record(1) && Record(true))
+ assert_equal(true, g:Record(1) && g:Record(true))
assert_equal([1, true], g:vals)
g:vals = []
- assert_equal(false, Record(0) && Record(1))
+ assert_equal(false, g:Record(0) && g:Record(1))
assert_equal([0], g:vals)
g:vals = []
- assert_equal(false, Record(0) && Record(1) && Record(0))
+ assert_equal(false, g:Record(0) && g:Record(1) && g:Record(0))
assert_equal([0], g:vals)
g:vals = []
- assert_equal(false, Record(0) && Record(4) && Record(0))
+ assert_equal(false, g:Record(0) && g:Record(4) && g:Record(0))
assert_equal([0], g:vals)
g:vals = []
- assert_equal(false, Record(1) && Record(true) && Record(0))
+ assert_equal(false, g:Record(1) && g:Record(true) && g:Record(0))
assert_equal([1, true, 0], g:vals)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr3_vimscript()
@@ -458,7 +458,7 @@
&& 1
assert_equal(false, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:true
@@ -466,7 +466,7 @@
&& v:true
assert_equal(v:true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:true &&
@@ -474,7 +474,7 @@
v:true
assert_equal(v:true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = v:true && # comment
@@ -484,62 +484,62 @@
v:true
assert_equal(v:true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# check white space
lines =<< trim END
var name = v:true&&v:true
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
var name = v:true &&v:true
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''&&'' at "&&v:true"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''&&'' at "&&v:true"', 1)
lines =<< trim END
var name = v:true&& v:true
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
enddef
def Test_expr3_fails()
var msg = "White space required before and after '&&'"
- CheckDefAndScriptFailure(["var x = 1&&0"], msg, 1)
- CheckDefAndScriptFailure(["var x = 1 &&0"], msg, 1)
- CheckDefAndScriptFailure(["var x = 1&& 0"], msg, 1)
+ v9.CheckDefAndScriptFailure(["var x = 1&&0"], msg, 1)
+ v9.CheckDefAndScriptFailure(["var x = 1 &&0"], msg, 1)
+ v9.CheckDefAndScriptFailure(["var x = 1&& 0"], msg, 1)
var lines =<< trim END
var x = 1
&&0
# comment
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''&&'' at "&&0"', 2)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''&&'' at "&&0"', 2)
g:vals = []
- CheckDefAndScriptFailure(["if 'yes' && 0", 'echo 0', 'endif'], ['E1012: Type mismatch; expected bool but got string', 'E1135: Using a String as a Bool'], 1)
+ v9.CheckDefAndScriptFailure(["if 'yes' && 0", 'echo 0', 'endif'], ['E1012: Type mismatch; expected bool but got string', 'E1135: Using a String as a Bool'], 1)
- CheckDefExecAndScriptFailure(['assert_equal(false, Record(1) && Record(4) && Record(0))'], 'E1023: Using a Number as a Bool: 4', 1)
+ v9.CheckDefExecAndScriptFailure(['assert_equal(false, g:Record(1) && g:Record(4) && g:Record(0))'], 'E1023: Using a Number as a Bool: 4', 1)
lines =<< trim END
if 3
&& true
endif
END
- CheckDefAndScriptFailure(lines, ['E1012:', 'E1023:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1012:', 'E1023:'], 1)
lines =<< trim END
if true
&& 3
endif
END
- CheckDefAndScriptFailure(lines, ['E1012:', 'E1023:'], 2)
+ v9.CheckDefAndScriptFailure(lines, ['E1012:', 'E1023:'], 2)
lines =<< trim END
if 'yes'
&& true
endif
END
- CheckDefAndScriptFailure(lines, ['E1012:', 'E1135: Using a String as a Bool'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1012:', 'E1135: Using a String as a Bool'], 1)
enddef
" global variables to use for tests with the "any" type
@@ -663,18 +663,18 @@
assert_equal(true, OneFunc('abc') == TwoFunc('123'))
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var x = 'a' == xxx"], ['E1001:', 'E121:'], 1)
- CheckDefFailure(["var x = 'a' == "], 'E1097:', 3)
- CheckScriptFailure(['vim9script', "var x = 'a' == "], 'E15:', 2)
+ v9.CheckDefAndScriptFailure(["var x = 'a' == xxx"], ['E1001:', 'E121:'], 1)
+ v9.CheckDefFailure(["var x = 'a' == "], 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script', "var x = 'a' == "], 'E15:', 2)
- CheckDefExecAndScriptFailure(['var items: any', 'eval 1 + 1', 'eval 2 + 2', 'if items == []', 'endif'], ['E691:', 'E1072:'], 4)
+ v9.CheckDefExecAndScriptFailure(['var items: any', 'eval 1 + 1', 'eval 2 + 2', 'if items == []', 'endif'], ['E691:', 'E1072:'], 4)
- CheckDefExecAndScriptFailure(['var x: any = "a"', 'echo x == true'], 'E1072: Cannot compare string with bool', 2)
- CheckDefExecAndScriptFailure(["var x: any = true", 'echo x == ""'], 'E1072: Cannot compare bool with string', 2)
- CheckDefExecAndScriptFailure(["var x: any = 99", 'echo x == true'], ['E1138', 'E1072:'], 2)
- CheckDefExecAndScriptFailure(["var x: any = 'a'", 'echo x == 99'], ['E1030:', 'E1072:'], 2)
+ v9.CheckDefExecAndScriptFailure(['var x: any = "a"', 'echo x == true'], 'E1072: Cannot compare string with bool', 2)
+ v9.CheckDefExecAndScriptFailure(["var x: any = true", 'echo x == ""'], 'E1072: Cannot compare bool with string', 2)
+ v9.CheckDefExecAndScriptFailure(["var x: any = 99", 'echo x == true'], ['E1138', 'E1072:'], 2)
+ v9.CheckDefExecAndScriptFailure(["var x: any = 'a'", 'echo x == 99'], ['E1030:', 'E1072:'], 2)
lines =<< trim END
vim9script
@@ -686,7 +686,7 @@
g:notReached = true
Compare()
END
- CheckScriptFailure(lines, 'E1030: Using a String as a Number: "3"')
+ v9.CheckScriptFailure(lines, 'E1030: Using a String as a Number: "3"')
assert_true(g:notReached)
if has('float')
@@ -700,7 +700,7 @@
g:notReached = true
Compare()
END
- CheckScriptFailure(lines, 'E892: Using a String as a Float')
+ v9.CheckScriptFailure(lines, 'E892: Using a String as a Float')
assert_true(g:notReached)
endif
@@ -709,30 +709,30 @@
def Test_expr4_wrong_type()
for op in ['>', '>=', '<', '<=', '=~', '!~']
- CheckDefExecAndScriptFailure([
+ v9.CheckDefExecAndScriptFailure([
"var a: any = 'a'",
'var b: any = true',
'echo a ' .. op .. ' b'], 'E1072:', 3)
endfor
for op in ['>', '>=', '<', '<=']
- CheckDefExecAndScriptFailure([
+ v9.CheckDefExecAndScriptFailure([
"var n: any = 2",
'echo n ' .. op .. ' "3"'], ['E1030:', 'E1072:'], 2)
endfor
for op in ['=~', '!~']
- CheckDefExecAndScriptFailure([
+ v9.CheckDefExecAndScriptFailure([
"var n: any = 2",
'echo n ' .. op .. ' "3"'], 'E1072:', 2)
endfor
- CheckDefAndScriptFailure([
+ v9.CheckDefAndScriptFailure([
'echo v:none == true'], 'E1072:', 1)
- CheckDefAndScriptFailure([
+ v9.CheckDefAndScriptFailure([
'echo false >= true'], 'E1072:', 1)
- CheckDefExecAndScriptFailure([
+ v9.CheckDefExecAndScriptFailure([
"var n: any = v:none",
'echo n == true'], 'E1072:', 2)
- CheckDefExecAndScriptFailure([
+ v9.CheckDefExecAndScriptFailure([
"var n: any = v:none",
'echo n < true'], 'E1072:', 2)
enddef
@@ -819,7 +819,7 @@
assert_equal(true, function('g:Test_expr4_equal', [123]) != function('g:Test_expr4_is', [123]))
assert_equal(true, function('g:Test_expr4_equal', [123]) != function('g:Test_expr4_equal', [999]))
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test > comperator
@@ -845,7 +845,7 @@
assert_false(ff > 3.0)
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test >= comperator
@@ -866,7 +866,7 @@
assert_false(ff >= 3.0)
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test < comperator
@@ -888,7 +888,7 @@
assert_true(ff < 3.0)
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test <= comperator
@@ -913,7 +913,7 @@
assert_true(ff <= 3.0)
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test =~ comperator
@@ -930,7 +930,7 @@
assert_equal(true, 'abc' =~? 'ABC')
set noignorecase
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test !~ comperator
@@ -942,7 +942,7 @@
assert_equal(false, '2' !~
'[0-9]')
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test is comperator
@@ -960,7 +960,7 @@
var otherblob = myblob
assert_true(myblob is otherblob)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test isnot comperator
@@ -979,10 +979,10 @@
var otherblob = myblob
assert_false(myblob isnot otherblob)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
-def RetVoid()
+def g:RetVoid()
var x = 1
enddef
@@ -993,7 +993,7 @@
< 1
assert_equal(true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 123
@@ -1001,14 +1001,14 @@
!= 123
assert_equal(false, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 123 ==
123
assert_equal(true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var list = [1, 2, 3]
@@ -1016,7 +1016,7 @@
is list
assert_equal(true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var list = [1, 2, 3]
@@ -1025,7 +1025,7 @@
is list
assert_equal(true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var myblob = 0z1234
@@ -1033,140 +1033,140 @@
isnot 0z11
assert_equal(true, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# spot check mismatching types
lines =<< trim END
echo '' == 0
END
- CheckDefAndScriptFailure(lines, 'E1072:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1072:', 1)
lines =<< trim END
echo v:true > v:false
END
- CheckDefAndScriptFailure(lines, 'Cannot compare bool with bool', 1)
+ v9.CheckDefAndScriptFailure(lines, 'Cannot compare bool with bool', 1)
lines =<< trim END
echo 123 is 123
END
- CheckDefAndScriptFailure(lines, 'Cannot use "is" with number', 1)
+ v9.CheckDefAndScriptFailure(lines, 'Cannot use "is" with number', 1)
# check missing white space
lines =<< trim END
echo 2>3
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''>'' at ">3"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''>'' at ">3"', 1)
lines =<< trim END
echo 2 >3
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 2> 3
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 2!=3
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 2 !=3
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''!='' at "!=3"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''!='' at "!=3"', 1)
lines =<< trim END
echo 2!= 3
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
for op in ['==', '>', '>=', '<', '<=', '=~', '!~', 'is', 'isnot']
lines = ["echo 'aaa'", op .. "'bbb'", '# comment']
var msg = printf("E1004: White space required before and after '%s'", op)
- CheckDefAndScriptFailure(lines, msg, 2)
+ v9.CheckDefAndScriptFailure(lines, msg, 2)
endfor
lines =<< trim END
echo len('xxx') == 3
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var line = 'abc'
echo line[1] =~ '\w'
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
func Test_expr4_fails()
let msg = "White space required before and after '>'"
- call CheckDefAndScriptFailure(["var x = 1>2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 >2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1> 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1>2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 >2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1> 2"], msg, 1)
let msg = "White space required before and after '=='"
- call CheckDefAndScriptFailure(["var x = 1==2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 ==2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1== 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1==2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 ==2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1== 2"], msg, 1)
let msg = "White space required before and after 'is'"
- call CheckDefAndScriptFailure(["var x = '1'is'2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1' is'2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1'is '2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'is'2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' is'2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'is '2'"], msg, 1)
let msg = "White space required before and after 'isnot'"
- call CheckDefAndScriptFailure(["var x = '1'isnot'2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1' isnot'2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1'isnot '2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'isnot'2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' isnot'2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'isnot '2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 is# 2"], 'E15:', 1)
- call CheckDefAndScriptFailure(["var x = 1 is? 2"], 'E15:', 1)
- call CheckDefAndScriptFailure(["var x = 1 isnot# 2"], 'E15:', 1)
- call CheckDefAndScriptFailure(["var x = 1 isnot? 2"], 'E15:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 is# 2"], 'E15:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 is? 2"], 'E15:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 isnot# 2"], 'E15:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 isnot? 2"], 'E15:', 1)
- call CheckDefAndScriptFailure(["var x = 1 == '2'"], 'Cannot compare number with string', 1)
- call CheckDefAndScriptFailure(["var x = '1' == 2"], 'Cannot compare string with number', 1)
- call CheckDefAndScriptFailure(["var x = 1 == RetVoid()"], 'Cannot compare number with void', 1)
- call CheckDefAndScriptFailure(["var x = RetVoid() == 1"], 'Cannot compare void with number', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 == '2'"], 'Cannot compare number with string', 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' == 2"], 'Cannot compare string with number', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 == g:RetVoid()"], 'Cannot compare number with void', 1)
+ call v9.CheckDefAndScriptFailure(["var x = g:RetVoid() == 1"], 'Cannot compare void with number', 1)
- call CheckDefAndScriptFailure(["var x = true > false"], 'Cannot compare bool with bool', 1)
- call CheckDefAndScriptFailure(["var x = true >= false"], 'Cannot compare bool with bool', 1)
- call CheckDefAndScriptFailure(["var x = true < false"], 'Cannot compare bool with bool', 1)
- call CheckDefAndScriptFailure(["var x = true <= false"], 'Cannot compare bool with bool', 1)
- call CheckDefAndScriptFailure(["var x = true =~ false"], 'Cannot compare bool with bool', 1)
- call CheckDefAndScriptFailure(["var x = true !~ false"], 'Cannot compare bool with bool', 1)
- call CheckDefAndScriptFailure(["var x = true is false"], 'Cannot use "is" with bool', 1)
- call CheckDefAndScriptFailure(["var x = true isnot false"], 'Cannot use "isnot" with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true > false"], 'Cannot compare bool with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true >= false"], 'Cannot compare bool with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true < false"], 'Cannot compare bool with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true <= false"], 'Cannot compare bool with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true =~ false"], 'Cannot compare bool with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true !~ false"], 'Cannot compare bool with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true is false"], 'Cannot use "is" with bool', 1)
+ call v9.CheckDefAndScriptFailure(["var x = true isnot false"], 'Cannot use "isnot" with bool', 1)
- call CheckDefAndScriptFailure(["var x = v:none is v:null"], 'Cannot use "is" with special', 1)
- call CheckDefAndScriptFailure(["var x = v:none isnot v:null"], 'Cannot use "isnot" with special', 1)
- call CheckDefAndScriptFailure(["var x = 123 is 123"], 'Cannot use "is" with number', 1)
- call CheckDefAndScriptFailure(["var x = 123 isnot 123"], 'Cannot use "isnot" with number', 1)
+ call v9.CheckDefAndScriptFailure(["var x = v:none is v:null"], 'Cannot use "is" with special', 1)
+ call v9.CheckDefAndScriptFailure(["var x = v:none isnot v:null"], 'Cannot use "isnot" with special', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 123 is 123"], 'Cannot use "is" with number', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 123 isnot 123"], 'Cannot use "isnot" with number', 1)
if has('float')
- call CheckDefAndScriptFailure(["var x = 1.3 is 1.3"], 'Cannot use "is" with float', 1)
- call CheckDefAndScriptFailure(["var x = 1.3 isnot 1.3"], 'Cannot use "isnot" with float', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1.3 is 1.3"], 'Cannot use "is" with float', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1.3 isnot 1.3"], 'Cannot use "isnot" with float', 1)
endif
- call CheckDefAndScriptFailure(["var x = 0za1 > 0z34"], 'Cannot compare blob with blob', 1)
- call CheckDefAndScriptFailure(["var x = 0za1 >= 0z34"], 'Cannot compare blob with blob', 1)
- call CheckDefAndScriptFailure(["var x = 0za1 < 0z34"], 'Cannot compare blob with blob', 1)
- call CheckDefAndScriptFailure(["var x = 0za1 <= 0z34"], 'Cannot compare blob with blob', 1)
- call CheckDefAndScriptFailure(["var x = 0za1 =~ 0z34"], 'Cannot compare blob with blob', 1)
- call CheckDefAndScriptFailure(["var x = 0za1 !~ 0z34"], 'Cannot compare blob with blob', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0za1 > 0z34"], 'Cannot compare blob with blob', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0za1 >= 0z34"], 'Cannot compare blob with blob', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0za1 < 0z34"], 'Cannot compare blob with blob', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0za1 <= 0z34"], 'Cannot compare blob with blob', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0za1 =~ 0z34"], 'Cannot compare blob with blob', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0za1 !~ 0z34"], 'Cannot compare blob with blob', 1)
- call CheckDefAndScriptFailure(["var x = [13] > [88]"], 'Cannot compare list with list', 1)
- call CheckDefAndScriptFailure(["var x = [13] >= [88]"], 'Cannot compare list with list', 1)
- call CheckDefAndScriptFailure(["var x = [13] < [88]"], 'Cannot compare list with list', 1)
- call CheckDefAndScriptFailure(["var x = [13] <= [88]"], 'Cannot compare list with list', 1)
- call CheckDefAndScriptFailure(["var x = [13] =~ [88]"], 'Cannot compare list with list', 1)
- call CheckDefAndScriptFailure(["var x = [13] !~ [88]"], 'Cannot compare list with list', 1)
+ call v9.CheckDefAndScriptFailure(["var x = [13] > [88]"], 'Cannot compare list with list', 1)
+ call v9.CheckDefAndScriptFailure(["var x = [13] >= [88]"], 'Cannot compare list with list', 1)
+ call v9.CheckDefAndScriptFailure(["var x = [13] < [88]"], 'Cannot compare list with list', 1)
+ call v9.CheckDefAndScriptFailure(["var x = [13] <= [88]"], 'Cannot compare list with list', 1)
+ call v9.CheckDefAndScriptFailure(["var x = [13] =~ [88]"], 'Cannot compare list with list', 1)
+ call v9.CheckDefAndScriptFailure(["var x = [13] !~ [88]"], 'Cannot compare list with list', 1)
- call CheckDefAndScriptFailure(['var j: job', 'var chan: channel', 'var r = j == chan'], 'Cannot compare job with channel', 3)
- call CheckDefAndScriptFailure(['var j: job', 'var x: list<any>', 'var r = j == x'], 'Cannot compare job with list', 3)
- call CheckDefAndScriptFailure(['var j: job', 'var Xx: func', 'var r = j == Xx'], 'Cannot compare job with func', 3)
- call CheckDefAndScriptFailure(['var j: job', 'var Xx: func', 'var r = j == Xx'], 'Cannot compare job with func', 3)
+ call v9.CheckDefAndScriptFailure(['var j: job', 'var chan: channel', 'var r = j == chan'], 'Cannot compare job with channel', 3)
+ call v9.CheckDefAndScriptFailure(['var j: job', 'var x: list<any>', 'var r = j == x'], 'Cannot compare job with list', 3)
+ call v9.CheckDefAndScriptFailure(['var j: job', 'var Xx: func', 'var r = j == Xx'], 'Cannot compare job with func', 3)
+ call v9.CheckDefAndScriptFailure(['var j: job', 'var Xx: func', 'var r = j == Xx'], 'Cannot compare job with func', 3)
endfunc
" test addition, subtraction, concatenation
@@ -1232,7 +1232,7 @@
assert_equal('val', '' .. {key: 'val'}['key'])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr5_vim9script()
@@ -1243,7 +1243,7 @@
- 22
assert_equal(66, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 11 +
@@ -1251,7 +1251,7 @@
22
assert_equal(66, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 11 + # comment
@@ -1260,112 +1260,112 @@
22
assert_equal(66, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 'one'
.. 'two'
assert_equal('onetwo', name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
echo 'abc' is# 'abc'
END
- CheckDefAndScriptFailure(lines, 'E15:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E15:', 1)
lines =<< trim END
echo {} - 22
END
- CheckDefAndScriptFailure(lines, ['E1036:', 'E728:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1036:', 'E728:'], 1)
lines =<< trim END
echo [] - 33
END
- CheckDefAndScriptFailure(lines, ['E1036:', 'E745:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1036:', 'E745:'], 1)
lines =<< trim END
echo 0z1234 - 44
END
- CheckDefAndScriptFailure(lines, ['E1036', 'E974:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1036', 'E974:'], 1)
lines =<< trim END
echo 'abc' is? 'abc'
END
- CheckDefAndScriptFailure(lines, 'E15:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E15:', 1)
lines =<< trim END
echo 'abc' isnot# 'abc'
END
- CheckDefAndScriptFailure(lines, 'E15:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E15:', 1)
lines =<< trim END
echo 'abc' isnot? 'abc'
END
- CheckDefAndScriptFailure(lines, 'E15:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E15:', 1)
# check white space
lines =<< trim END
echo 5+6
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 5 +6
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 5+ 6
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 'a'..'b'
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''..'' at "..''b''"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''..'' at "..''b''"', 1)
lines =<< trim END
echo 'a' ..'b'
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 'a'.. 'b'
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''..'' at ".. ''b''"', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''..'' at ".. ''b''"', 1)
lines =<< trim END
echo 'a'
..'b'
# comment
END
- CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''..'' at "..''b''"', 2)
+ v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''..'' at "..''b''"', 2)
# check invalid string concatenation
lines =<< trim END
echo 'a' .. [1]
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E730:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E730:'], 1)
lines =<< trim END
echo 'a' .. {a: 1}
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E731:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E731:'], 1)
lines =<< trim END
echo 'a' .. test_void()
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E908:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E908:'], 1)
lines =<< trim END
echo 'a' .. 0z33
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E976:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E976:'], 1)
lines =<< trim END
echo 'a' .. function('len')
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E729:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E729:'], 1)
lines =<< trim END
new
@@ -1375,12 +1375,12 @@
eval 0
bwipe!
END
- CheckDefAndScriptFailure(lines, "E1004: White space required before and after '/' at \"/pattern", 3)
+ v9.CheckDefAndScriptFailure(lines, "E1004: White space required before and after '/' at \"/pattern", 3)
for op in ['+', '-']
lines = ['var x = 1', op .. '2', '# comment']
var msg = printf("E1004: White space required before and after '%s' at \"%s2\"", op, op)
- CheckDefAndScriptFailure(lines, msg, 2)
+ v9.CheckDefAndScriptFailure(lines, msg, 2)
endfor
enddef
@@ -1391,11 +1391,11 @@
var lines =<< trim END
echo 'a' .. test_null_job()
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E908:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E908:'], 1)
lines =<< trim END
echo 'a' .. test_null_channel()
END
- CheckDefAndScriptFailure(lines, ['E1105:', 'E908:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1105:', 'E908:'], 1)
endif
enddef
@@ -1423,53 +1423,53 @@
assert_equal(9.9, g:anint - g:afloat)
assert_equal(-9.9, g:afloat - g:anint)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
endif
enddef
func Test_expr5_fails()
let msg = "White space required before and after '+'"
- call CheckDefAndScriptFailure(["var x = 1+2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 +2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1+ 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1+2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 +2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1+ 2"], msg, 1)
let msg = "White space required before and after '-'"
- call CheckDefAndScriptFailure(["var x = 1-2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 -2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1- 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1-2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 -2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1- 2"], msg, 1)
let msg = "White space required before and after '..'"
- call CheckDefAndScriptFailure(["var x = '1'..'2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1' ..'2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1'.. '2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'..'2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' ..'2'"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'.. '2'"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 0z1122 + 33"], ['E1051:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = 0z1122 + [3]"], ['E1051:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = 0z1122 + 'asd'"], ['E1051:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = 33 + 0z1122"], ['E1051:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = [3] + 0z1122"], ['E1051:', 'E745:'], 1)
- call CheckDefAndScriptFailure(["var x = 'asdf' + 0z1122"], ['E1051:', 'E1030:'], 1)
- call CheckDefAndScriptFailure(["var x = 6 + xxx"], ['E1001:', 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z1122 + 33"], ['E1051:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z1122 + [3]"], ['E1051:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z1122 + 'asd'"], ['E1051:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 33 + 0z1122"], ['E1051:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = [3] + 0z1122"], ['E1051:', 'E745:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'asdf' + 0z1122"], ['E1051:', 'E1030:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 6 + xxx"], ['E1001:', 'E121:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. [1]"], ['E1105:', 'E730:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. {a: 1}"], ['E1105:', 'E731:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. test_void()"], ['E1105:', 'E908:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. 0z32"], ['E1105:', 'E976:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. function('len')"], ['E1105:', 'E729:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. function('len', ['a'])"], ['E1105:', 'E729:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. [1]"], ['E1105:', 'E730:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. {a: 1}"], ['E1105:', 'E731:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. test_void()"], ['E1105:', 'E908:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. 0z32"], ['E1105:', 'E976:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. function('len')"], ['E1105:', 'E729:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. function('len', ['a'])"], ['E1105:', 'E729:'], 1)
- call CheckDefAndScriptFailure(['var x = 1 + v:none'], ['E1051:', 'E611:'], 1)
- call CheckDefAndScriptFailure(['var x = 1 + v:null'], ['E1051:', 'E611:'], 1)
- call CheckDefAndScriptFailure(['var x = 1 + v:true'], ['E1051:', 'E1138:'], 1)
- call CheckDefAndScriptFailure(['var x = 1 + v:false'], ['E1051:', 'E1138:'], 1)
- call CheckDefAndScriptFailure(['var x = 1 + true'], ['E1051:', 'E1138:'], 1)
- call CheckDefAndScriptFailure(['var x = 1 + false'], ['E1051:', 'E1138:'], 1)
+ call v9.CheckDefAndScriptFailure(['var x = 1 + v:none'], ['E1051:', 'E611:'], 1)
+ call v9.CheckDefAndScriptFailure(['var x = 1 + v:null'], ['E1051:', 'E611:'], 1)
+ call v9.CheckDefAndScriptFailure(['var x = 1 + v:true'], ['E1051:', 'E1138:'], 1)
+ call v9.CheckDefAndScriptFailure(['var x = 1 + v:false'], ['E1051:', 'E1138:'], 1)
+ call v9.CheckDefAndScriptFailure(['var x = 1 + true'], ['E1051:', 'E1138:'], 1)
+ call v9.CheckDefAndScriptFailure(['var x = 1 + false'], ['E1051:', 'E1138:'], 1)
endfunc
func Test_expr5_fails_channel()
- CheckFeature channel
- call CheckDefAndScriptFailure(["var x = 'a' .. test_null_job()"], ['E1105:', 'E908:'], 1)
- call CheckDefAndScriptFailure(["var x = 'a' .. test_null_channel()"], ['E1105:', 'E908:'], 1)
+ g:CheckFeature channel
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. test_null_job()"], ['E1105:', 'E908:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 'a' .. test_null_channel()"], ['E1105:', 'E908:'], 1)
endfunc
def Test_expr5_list_add()
@@ -1490,7 +1490,7 @@
# result of glob() is "any", runtime type check
var sl: list<string> = glob('*.txt', false, true) + ['']
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
" test multiply, divide, modulo
@@ -1532,26 +1532,26 @@
* yf[0])
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var x = 6 * xxx"], ['E1001:', 'E121:'], 1)
- CheckDefFailure(["var d = 6 * "], 'E1097:', 3)
- CheckScriptFailure(['vim9script', "var d = 6 * "], 'E15:', 2)
+ v9.CheckDefAndScriptFailure(["var x = 6 * xxx"], ['E1001:', 'E121:'], 1)
+ v9.CheckDefFailure(["var d = 6 * "], 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script', "var d = 6 * "], 'E15:', 2)
- CheckDefExecAndScriptFailure(['echo 1 / 0'], 'E1154', 1)
- CheckDefExecAndScriptFailure(['echo 1 % 0'], 'E1154', 1)
+ v9.CheckDefExecAndScriptFailure(['echo 1 / 0'], 'E1154', 1)
+ v9.CheckDefExecAndScriptFailure(['echo 1 % 0'], 'E1154', 1)
lines =<< trim END
var n = 0
eval 1 / n
END
- CheckDefExecAndScriptFailure(lines, 'E1154', 2)
+ v9.CheckDefExecAndScriptFailure(lines, 'E1154', 2)
lines =<< trim END
var n = 0
eval 1 % n
END
- CheckDefExecAndScriptFailure(lines, 'E1154', 2)
+ v9.CheckDefExecAndScriptFailure(lines, 'E1154', 2)
enddef
def Test_expr6_vim9script()
@@ -1562,14 +1562,14 @@
/ 3
assert_equal(80, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 25
% 10
assert_equal(5, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 25
@@ -1579,7 +1579,7 @@
% 10
assert_equal(5, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var name = 11 *
@@ -1587,23 +1587,23 @@
3
assert_equal(80, name)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# check white space
lines =<< trim END
echo 5*6
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 5 *6
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
lines =<< trim END
echo 5* 6
END
- CheckDefAndScriptFailure(lines, 'E1004:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1004:', 1)
enddef
def Test_expr6_float()
@@ -1635,57 +1635,57 @@
assert_equal(4.0, 6.0 * 4.0 / 6.0)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
endif
enddef
func Test_expr6_fails()
let msg = "White space required before and after '*'"
- call CheckDefAndScriptFailure(["var x = 1*2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 *2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1* 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1*2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 *2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1* 2"], msg, 1)
let msg = "White space required before and after '/'"
- call CheckDefAndScriptFailure(["var x = 1/2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 /2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1/ 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1/2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 /2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1/ 2"], msg, 1)
let msg = "White space required before and after '%'"
- call CheckDefAndScriptFailure(["var x = 1%2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1 %2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = 1% 2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1%2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1 %2"], msg, 1)
+ call v9.CheckDefAndScriptFailure(["var x = 1% 2"], msg, 1)
- call CheckDefAndScriptFailure(["var x = '1' * '2'"], ['E1036:', 'E1030:'], 1)
- call CheckDefAndScriptFailure(["var x = '1' / '2'"], ['E1036:', 'E1030:'], 1)
- call CheckDefAndScriptFailure(["var x = '1' % '2'"], ['E1035:', 'E1030:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' * '2'"], ['E1036:', 'E1030:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' / '2'"], ['E1036:', 'E1030:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1' % '2'"], ['E1035:', 'E1030:'], 1)
- call CheckDefAndScriptFailure(["var x = 0z01 * 0z12"], ['E1036:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = 0z01 / 0z12"], ['E1036:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = 0z01 % 0z12"], ['E1035:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z01 * 0z12"], ['E1036:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z01 / 0z12"], ['E1036:', 'E974:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0z01 % 0z12"], ['E1035:', 'E974:'], 1)
- call CheckDefAndScriptFailure(["var x = [1] * [2]"], ['E1036:', 'E745:'], 1)
- call CheckDefAndScriptFailure(["var x = [1] / [2]"], ['E1036:', 'E745:'], 1)
- call CheckDefAndScriptFailure(["var x = [1] % [2]"], ['E1035:', 'E745:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = [1] * [2]"], ['E1036:', 'E745:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = [1] / [2]"], ['E1036:', 'E745:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = [1] % [2]"], ['E1035:', 'E745:'], 1)
- call CheckDefAndScriptFailure(["var x = {one: 1} * {two: 2}"], ['E1036:', 'E728:'], 1)
- call CheckDefAndScriptFailure(["var x = {one: 1} / {two: 2}"], ['E1036:', 'E728:'], 1)
- call CheckDefAndScriptFailure(["var x = {one: 1} % {two: 2}"], ['E1035:', 'E728:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = {one: 1} * {two: 2}"], ['E1036:', 'E728:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = {one: 1} / {two: 2}"], ['E1036:', 'E728:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = {one: 1} % {two: 2}"], ['E1035:', 'E728:'], 1)
- call CheckDefAndScriptFailure(["var x = 0xff[1]"], ['E1107:', 'E1062:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0xff[1]"], ['E1107:', 'E1062:'], 1)
if has('float')
- call CheckDefAndScriptFailure(["var x = 0.7[1]"], ['E1107:', 'E806:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = 0.7[1]"], ['E1107:', 'E806:'], 1)
endif
for op in ['*', '/', '%']
let lines = ['var x = 1', op .. '2', '# comment']
let msg = printf("E1004: White space required before and after '%s' at \"%s2\"", op, op)
- call CheckDefAndScriptFailure(lines, msg, 2)
+ call v9.CheckDefAndScriptFailure(lines, msg, 2)
endfor
endfunc
func Test_expr6_float_fails()
- CheckFeature float
- call CheckDefAndScriptFailure(["var x = 1.0 % 2"], ['E1035:', 'E804:'], 1)
+ g:CheckFeature float
+ call v9.CheckDefAndScriptFailure(["var x = 1.0 % 2"], ['E1035:', 'E804:'], 1)
endfunc
" define here to use old style parsing
@@ -1732,14 +1732,14 @@
text = <number>'xxx'
endif
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var x = <nr>123"], 'E1010:', 1)
- CheckDefFailure(["var x = <number>"], 'E1097:', 3)
- CheckDefFailure(["var x = <number>string(1)"], 'E1012:', 1)
- CheckScriptFailure(['vim9script', "var x = <number>"], 'E15:', 2)
- CheckDefAndScriptFailure(["var x = <number >123"], 'E1068:', 1)
- CheckDefAndScriptFailure(["var x = <number 123"], 'E1104:', 1)
+ v9.CheckDefAndScriptFailure(["var x = <nr>123"], 'E1010:', 1)
+ v9.CheckDefFailure(["var x = <number>"], 'E1097:', 3)
+ v9.CheckDefFailure(["var x = <number>string(1)"], 'E1012:', 1)
+ v9.CheckScriptFailure(['vim9script', "var x = <number>"], 'E15:', 2)
+ v9.CheckDefAndScriptFailure(["var x = <number >123"], 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(["var x = <number 123"], 'E1104:', 1)
enddef
" test low level expression
@@ -1753,7 +1753,7 @@
assert_equal(15, 0xf)
assert_equal(255, 0xff)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_float()
@@ -1767,7 +1767,7 @@
assert_equal(g:float_neg, -9.8)
assert_equal(g:float_big, 9.9e99)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
endif
enddef
@@ -1798,9 +1798,9 @@
assert_equal(0z, testblob[3 : 3])
assert_equal(0z, testblob[0 : -4])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var x = 0z123"], 'E973:', 1)
+ v9.CheckDefAndScriptFailure(["var x = 0z123"], 'E973:', 1)
enddef
def Test_expr8_string()
@@ -1814,34 +1814,34 @@
assert_equal(g:string_long, "abcdefghijklm")
assert_equal(g:string_special, "ab\ncd\ref\ekk")
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(['var x = "abc'], 'E114:', 1)
- CheckDefAndScriptFailure(["var x = 'abc"], 'E115:', 1)
+ v9.CheckDefAndScriptFailure(['var x = "abc'], 'E114:', 1)
+ v9.CheckDefAndScriptFailure(["var x = 'abc"], 'E115:', 1)
enddef
def Test_expr8_vimvar()
v:errors = []
var errs: list<string> = v:errors
- CheckDefFailure(['var errs: list<number> = v:errors'], 'E1012:')
+ v9.CheckDefFailure(['var errs: list<number> = v:errors'], 'E1012:')
var old: list<string> = v:oldfiles
- CheckDefFailure(['var old: list<number> = v:oldfiles'], 'E1012:')
+ v9.CheckDefFailure(['var old: list<number> = v:oldfiles'], 'E1012:')
var compl: dict<string> = v:completed_item
- CheckDefFailure(['var compl: dict<number> = v:completed_item'], 'E1012:')
+ v9.CheckDefFailure(['var compl: dict<number> = v:completed_item'], 'E1012:')
var args: list<string> = v:argv
- CheckDefFailure(['var args: list<number> = v:argv'], 'E1012:')
+ v9.CheckDefFailure(['var args: list<number> = v:argv'], 'E1012:')
var colors: dict<string> = v:colornames
- CheckDefFailure(['var colors: dict<number> = v:colornames'], 'E1012:')
+ v9.CheckDefFailure(['var colors: dict<number> = v:colornames'], 'E1012:')
- CheckDefFailure(["var old: list<number> = v:oldfiles"], 'E1012: Type mismatch; expected list<number> but got list<string>', 1)
- CheckScriptFailure(['vim9script', 'v:oldfiles = ["foo"]', "var old: list<number> = v:oldfiles"], 'E1012: Type mismatch; expected list<number> but got list<string>', 3)
+ v9.CheckDefFailure(["var old: list<number> = v:oldfiles"], 'E1012: Type mismatch; expected list<number> but got list<string>', 1)
+ v9.CheckScriptFailure(['vim9script', 'v:oldfiles = ["foo"]', "var old: list<number> = v:oldfiles"], 'E1012: Type mismatch; expected list<number> but got list<string>', 3)
new
exec "normal! afoo fo\<C-N>\<Esc>"
- CheckDefExecAndScriptFailure(["var old: dict<number> = v:completed_item"], 'E1012: Type mismatch; expected dict<number> but got dict<string>', 1)
+ v9.CheckDefExecAndScriptFailure(["var old: dict<number> = v:completed_item"], 'E1012: Type mismatch; expected dict<number> but got dict<string>', 1)
bwipe!
enddef
@@ -1873,13 +1873,13 @@
assert_equal(g:special_null, null)
assert_equal(g:special_none, v:none)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(['v:true = true'], 'E46:', 1)
- CheckDefAndScriptFailure(['v:true = false'], 'E46:', 1)
- CheckDefAndScriptFailure(['v:false = true'], 'E46:', 1)
- CheckDefAndScriptFailure(['v:null = 11'], 'E46:', 1)
- CheckDefAndScriptFailure(['v:none = 22'], 'E46:', 1)
+ v9.CheckDefAndScriptFailure(['v:true = true'], 'E46:', 1)
+ v9.CheckDefAndScriptFailure(['v:true = false'], 'E46:', 1)
+ v9.CheckDefAndScriptFailure(['v:false = true'], 'E46:', 1)
+ v9.CheckDefAndScriptFailure(['v:null = 11'], 'E46:', 1)
+ v9.CheckDefAndScriptFailure(['v:none = 22'], 'E46:', 1)
enddef
def Test_expr8_list()
@@ -1908,32 +1908,32 @@
llstring = [[], ['text']]
llstring = [[], []]
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
var rangelist: list<number> = range(3)
g:rangelist = range(3)
- CheckDefExecAndScriptFailure(["var x: list<string> = g:rangelist"], 'E1012: Type mismatch; expected list<string> but got list<number>', 1)
+ v9.CheckDefExecAndScriptFailure(["var x: list<string> = g:rangelist"], 'E1012: Type mismatch; expected list<string> but got list<number>', 1)
- CheckDefAndScriptFailure(["var x = 1234[3]"], ['E1107:', 'E1062:'], 1)
- CheckDefExecAndScriptFailure(["var x = g:anint[3]"], 'E1062:', 1)
+ v9.CheckDefAndScriptFailure(["var x = 1234[3]"], ['E1107:', 'E1062:'], 1)
+ v9.CheckDefExecAndScriptFailure(["var x = g:anint[3]"], 'E1062:', 1)
- CheckDefAndScriptFailure(["var x = g:list_mixed[xxx]"], ['E1001:', 'E121:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = g:list_mixed[xxx]"], ['E1001:', 'E121:'], 1)
- CheckDefAndScriptFailure(["var x = [1,2,3]"], 'E1069:', 1)
- CheckDefAndScriptFailure(["var x = [1 ,2, 3]"], 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(["var x = [1,2,3]"], 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(["var x = [1 ,2, 3]"], 'E1068:', 1)
- CheckDefExecAndScriptFailure(["echo 1", "var x = [][0]", "echo 3"], 'E684:', 2)
+ v9.CheckDefExecAndScriptFailure(["echo 1", "var x = [][0]", "echo 3"], 'E684:', 2)
- CheckDefExecAndScriptFailure(["var x = g:list_mixed['xx']"], ['E1012:', 'E1030:'], 1)
- CheckDefFailure(["var x = g:list_mixed["], 'E1097:', 3)
- CheckScriptFailure(['vim9script', "var x = g:list_mixed["], 'E15:', 2)
- CheckDefFailure(["var x = g:list_mixed[0"], 'E1097:', 3)
- CheckScriptFailure(['vim9script', "var x = g:list_mixed[0"], 'E111:', 2)
- CheckDefExecAndScriptFailure(["var x = g:list_empty[3]"], 'E684:', 1)
- CheckDefExecAndScriptFailure(["var l: list<number> = [234, 'x']"], 'E1012:', 1)
- CheckDefExecAndScriptFailure(["var l: list<number> = ['x', 234]"], 'E1012:', 1)
- CheckDefExecAndScriptFailure(["var l: list<string> = [234, 'x']"], 'E1012:', 1)
- CheckDefExecAndScriptFailure(["var l: list<string> = ['x', 123]"], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(["var x = g:list_mixed['xx']"], ['E1012:', 'E1030:'], 1)
+ v9.CheckDefFailure(["var x = g:list_mixed["], 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script', "var x = g:list_mixed["], 'E15:', 2)
+ v9.CheckDefFailure(["var x = g:list_mixed[0"], 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script', "var x = g:list_mixed[0"], 'E111:', 2)
+ v9.CheckDefExecAndScriptFailure(["var x = g:list_empty[3]"], 'E684:', 1)
+ v9.CheckDefExecAndScriptFailure(["var l: list<number> = [234, 'x']"], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(["var l: list<number> = ['x', 234]"], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(["var l: list<string> = [234, 'x']"], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(["var l: list<string> = ['x', 123]"], 'E1012:', 1)
lines =<< trim END
var datalist: list<string>
@@ -1942,17 +1942,17 @@
enddef
Main()
END
- CheckDefAndScriptFailure(lines, 'E1127:')
+ v9.CheckDefAndScriptFailure(lines, 'E1127:')
lines =<< trim END
var numbers = [1, 2, 3, 4]
var a = 1
var b = 2
END
- CheckDefAndScriptFailure(lines + ['echo numbers[1:b]'],
+ v9.CheckDefAndScriptFailure(lines + ['echo numbers[1:b]'],
'E1004: White space required before and after '':'' at ":b]"', 4)
- CheckDefAndScriptFailure(lines + ['echo numbers[1: b]'], 'E1004:', 4)
- CheckDefAndScriptFailure(lines + ['echo numbers[a :b]'], 'E1004:', 4)
+ v9.CheckDefAndScriptFailure(lines + ['echo numbers[1: b]'], 'E1004:', 4)
+ v9.CheckDefAndScriptFailure(lines + ['echo numbers[a :b]'], 'E1004:', 4)
enddef
def Test_expr8_list_vim9script()
@@ -1973,44 +1973,44 @@
# comment
4]
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var l = [11,
22]
assert_equal([11, 22], l)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var l = [11,22]
END
- CheckDefAndScriptFailure(lines, 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1069:', 1)
lines =<< trim END
var l = [11 , 22]
END
- CheckDefAndScriptFailure(lines, 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1068:', 1)
lines =<< trim END
var l: list<number> = [234, 'x']
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var l: list<number> = ['x', 234]
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var l: list<string> = ['x', 234]
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var l: list<string> = [234, 'x']
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
def Failing()
@@ -2019,9 +2019,9 @@
var list = [Failing]
END
if has('channel')
- CheckDefAndScriptFailure(lines, 'E119:', 0)
+ v9.CheckDefAndScriptFailure(lines, 'E119:', 0)
else
- CheckDefAndScriptFailure(lines, 'E117:', 0)
+ v9.CheckDefAndScriptFailure(lines, 'E117:', 0)
endif
enddef
@@ -2084,49 +2084,49 @@
assert_equal([{key: 12}], filter(dl,
(_, v) => has_key(v, 'key') ? v['key'] == 12 : 0))
- assert_equal(false, LambdaWithComments()(0))
- assert_equal(true, LambdaWithComments()(1))
- assert_equal(true, LambdaWithComments()(2))
- assert_equal(false, LambdaWithComments()(3))
+ assert_equal(false, g:LambdaWithComments()(0))
+ assert_equal(true, g:LambdaWithComments()(1))
+ assert_equal(true, g:LambdaWithComments()(2))
+ assert_equal(false, g:LambdaWithComments()(3))
- assert_equal(false, LambdaUsingArg(0)())
- assert_equal(true, LambdaUsingArg(1)())
+ assert_equal(false, g:LambdaUsingArg(0)())
+ assert_equal(true, g:LambdaUsingArg(1)())
var res = map([1, 2, 3], (i: number, v: number) => i + v)
assert_equal([1, 3, 5], res)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:')
- CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004: White space required before and after ''=>'' at "=> a + 1"')
- CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], 'E1004:')
- CheckDefAndScriptFailure(["var Ref = (a) =< a + 1"], ['E1001:', 'E121:'])
- CheckDefAndScriptFailure(["var Ref = (a: int) => a + 1"], 'E1010:')
- CheckDefAndScriptFailure(["var Ref = (a): int => a + 1"], 'E1010:')
+ v9.CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:')
+ v9.CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004: White space required before and after ''=>'' at "=> a + 1"')
+ v9.CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], 'E1004:')
+ v9.CheckDefAndScriptFailure(["var Ref = (a) =< a + 1"], ['E1001:', 'E121:'])
+ v9.CheckDefAndScriptFailure(["var Ref = (a: int) => a + 1"], 'E1010:')
+ v9.CheckDefAndScriptFailure(["var Ref = (a): int => a + 1"], 'E1010:')
- CheckDefAndScriptFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1)
# error is in first line of the lambda
- CheckDefAndScriptFailure(["var L = (a) => a + b"], 'E1001:', 0)
+ v9.CheckDefAndScriptFailure(["var L = (a) => a + b"], 'E1001:', 0)
assert_equal('xxxyyy', 'xxx'->((a, b) => a .. b)('yyy'))
- CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x')"], 'E118:')
- CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x', 'y')"], 'E118:')
- CheckDefAndScriptFailure(["echo 'asdf'->((a) => a)(x)"], ['E1001:', 'E121:'], 1)
+ v9.CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x')"], 'E118:')
+ v9.CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x', 'y')"], 'E118:')
+ v9.CheckDefAndScriptFailure(["echo 'asdf'->((a) => a)(x)"], ['E1001:', 'E121:'], 1)
- CheckDefAndScriptSuccess(['var Fx = (a) => ({k1: 0,', ' k2: 1})'])
- CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0', ' k2: 1})'], 'E722:', 2)
- CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0,', ' k2 1})'], 'E720:', 2)
+ v9.CheckDefAndScriptSuccess(['var Fx = (a) => ({k1: 0,', ' k2: 1})'])
+ v9.CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0', ' k2: 1})'], 'E722:', 2)
+ v9.CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0,', ' k2 1})'], 'E720:', 2)
- CheckDefAndScriptSuccess(['var Fx = (a) => [0,', ' 1]'])
- CheckDefAndScriptFailure(['var Fx = (a) => [0', ' 1]'], 'E696:', 2)
+ v9.CheckDefAndScriptSuccess(['var Fx = (a) => [0,', ' 1]'])
+ v9.CheckDefAndScriptFailure(['var Fx = (a) => [0', ' 1]'], 'E696:', 2)
# no error for existing script variable when checking for lambda
lines =<< trim END
var name = 0
eval (name + 2) / 3
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_lambda_block()
@@ -2154,41 +2154,41 @@
}
assert_equal(10, Safe(3))
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
map([1, 2], (k, v) => { redrawt })
END
- CheckDefAndScriptFailure(lines, 'E488')
+ v9.CheckDefAndScriptFailure(lines, 'E488')
lines =<< trim END
var Func = (nr: int) => {
echo nr
}
END
- CheckDefAndScriptFailure(lines, 'E1010', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1010', 1)
lines =<< trim END
var Func = (nr: number): int => {
return nr
}
END
- CheckDefAndScriptFailure(lines, 'E1010', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1010', 1)
lines =<< trim END
var Func = (nr: number): int => {
return nr
END
- CheckDefFailure(lines, 'E1171', 0) # line nr is function start
- CheckScriptFailure(['vim9script'] + lines, 'E1171', 2)
+ v9.CheckDefFailure(lines, 'E1171', 0) # line nr is function start
+ v9.CheckScriptFailure(['vim9script'] + lines, 'E1171', 2)
lines =<< trim END
var Func = (nr: number): int => {
var ll =<< ENDIT
nothing
END
- CheckDefFailure(lines, 'E1145: Missing heredoc end marker: ENDIT', 0)
- CheckScriptFailure(['vim9script'] + lines, 'E1145: Missing heredoc end marker: ENDIT', 2)
+ v9.CheckDefFailure(lines, 'E1145: Missing heredoc end marker: ENDIT', 0)
+ v9.CheckScriptFailure(['vim9script'] + lines, 'E1145: Missing heredoc end marker: ENDIT', 2)
enddef
def NewLambdaWithComments(): func
@@ -2243,13 +2243,13 @@
assert_equal([{key: 12}], filter(dl,
(_, v) => has_key(v, 'key') ? v['key'] == 12 : 0))
- assert_equal(false, NewLambdaWithComments()(0))
- assert_equal(true, NewLambdaWithComments()(1))
- assert_equal(true, NewLambdaWithComments()(2))
- assert_equal(false, NewLambdaWithComments()(3))
+ assert_equal(false, g:NewLambdaWithComments()(0))
+ assert_equal(true, g:NewLambdaWithComments()(1))
+ assert_equal(true, g:NewLambdaWithComments()(2))
+ assert_equal(false, g:NewLambdaWithComments()(3))
- assert_equal(false, NewLambdaUsingArg(0)())
- assert_equal(true, NewLambdaUsingArg(1)())
+ assert_equal(false, g:NewLambdaUsingArg(0)())
+ assert_equal(true, g:NewLambdaUsingArg(1)())
var res = map([1, 2, 3], (i: number, v: number) => i + v)
assert_equal([1, 3, 5], res)
@@ -2266,32 +2266,32 @@
var Fy = (a) => [0,
1]
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:')
- CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004:')
- CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"],
+ v9.CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:')
+ v9.CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004:')
+ v9.CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"],
'E1004: White space required before and after ''=>'' at " =>a + 1"')
- CheckDefAndScriptFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:')
- CheckDefAndScriptFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:')
+ v9.CheckDefAndScriptFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:')
+ v9.CheckDefAndScriptFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:')
- CheckDefAndScriptFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1)
# error is in first line of the lambda
- CheckDefAndScriptFailure(["var L = (a) -> a + b"], ['E1001:', 'E121:'], 1)
+ v9.CheckDefAndScriptFailure(["var L = (a) -> a + b"], ['E1001:', 'E121:'], 1)
assert_equal('xxxyyy', 'xxx'->((a, b) => a .. b)('yyy'))
- CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x')"],
+ v9.CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x')"],
'E118: Too many arguments for function:')
- CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x', 'y')"],
+ v9.CheckDefExecFailure(["var s = 'asdf'->((a) => a)('x', 'y')"],
'E118: Too many arguments for function:')
- CheckDefFailure(["echo 'asdf'->((a) => a)(x)"], 'E1001:', 1)
+ v9.CheckDefFailure(["echo 'asdf'->((a) => a)(x)"], 'E1001:', 1)
- CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0', ' k2: 1})'], 'E722:', 2)
- CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0,', ' k2 1})'], 'E720:', 2)
+ v9.CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0', ' k2: 1})'], 'E722:', 2)
+ v9.CheckDefAndScriptFailure(['var Fx = (a) => ({k1: 0,', ' k2 1})'], 'E720:', 2)
- CheckDefAndScriptFailure(['var Fx = (a) => [0', ' 1]'], 'E696:', 2)
+ v9.CheckDefAndScriptFailure(['var Fx = (a) => [0', ' 1]'], 'E696:', 2)
enddef
def Test_expr8_lambda_vim9script()
@@ -2302,7 +2302,7 @@
)()
assert_equal(12, v)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# nested lambda with line breaks
lines =<< trim END
@@ -2310,7 +2310,7 @@
synstack('.', col('.'))
->mapnew((_, v) => synIDattr(v, 'name'))->len())
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_funcref()
@@ -2321,7 +2321,7 @@
var FuncRef = RetNumber
assert_equal(123, FuncRef())
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
vim9script
@@ -2344,7 +2344,7 @@
enddef
Test()
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
enddef
let g:test_space_dict = {'': 'empty', ' ': 'space'}
@@ -2425,40 +2425,40 @@
var x1: number #{{ fold
var x2 = 9 #{{ fold
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
# legacy syntax doesn't work
- CheckDefAndScriptFailure(["var x = #{key: 8}"], 'E1170:', 1)
- CheckDefAndScriptFailure(["var x = 'a' #{a: 1}"], 'E1170:', 1)
- CheckDefAndScriptFailure(["var x = 'a' .. #{a: 1}"], 'E1170:', 1)
- CheckDefAndScriptFailure(["var x = true ? #{a: 1}"], 'E1170:', 1)
+ v9.CheckDefAndScriptFailure(["var x = #{key: 8}"], 'E1170:', 1)
+ v9.CheckDefAndScriptFailure(["var x = 'a' #{a: 1}"], 'E1170:', 1)
+ v9.CheckDefAndScriptFailure(["var x = 'a' .. #{a: 1}"], 'E1170:', 1)
+ v9.CheckDefAndScriptFailure(["var x = true ? #{a: 1}"], 'E1170:', 1)
- CheckDefAndScriptFailure(["var x = {a:8}"], 'E1069:', 1)
- CheckDefAndScriptFailure(["var x = {a : 8}"], 'E1068:', 1)
- CheckDefAndScriptFailure(["var x = {a :8}"], 'E1068:', 1)
- CheckDefAndScriptFailure(["var x = {a: 8 , b: 9}"], 'E1068:', 1)
- CheckDefAndScriptFailure(["var x = {a: 1,b: 2}"], 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {a:8}"], 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {a : 8}"], 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {a :8}"], 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {a: 8 , b: 9}"], 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {a: 1,b: 2}"], 'E1069:', 1)
- CheckDefAndScriptFailure(["var x = {xxx}"], 'E720:', 1)
- CheckDefAndScriptFailure(["var x = {xxx: 1", "var y = 2"], 'E722:', 2)
- CheckDefFailure(["var x = {xxx: 1,"], 'E723:', 2)
- CheckScriptFailure(['vim9script', "var x = {xxx: 1,"], 'E723:', 2)
- CheckDefAndScriptFailure(["var x = {['a']: xxx}"], ['E1001:', 'E121:'], 1)
- CheckDefAndScriptFailure(["var x = {a: 1, a: 2}"], 'E721:', 1)
- CheckDefExecAndScriptFailure(["var x = g:anint.member"], ['E715:', 'E488:'], 1)
- CheckDefExecAndScriptFailure(["var x = g:dict_empty.member"], 'E716:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {xxx}"], 'E720:', 1)
+ v9.CheckDefAndScriptFailure(["var x = {xxx: 1", "var y = 2"], 'E722:', 2)
+ v9.CheckDefFailure(["var x = {xxx: 1,"], 'E723:', 2)
+ v9.CheckScriptFailure(['vim9script', "var x = {xxx: 1,"], 'E723:', 2)
+ v9.CheckDefAndScriptFailure(["var x = {['a']: xxx}"], ['E1001:', 'E121:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = {a: 1, a: 2}"], 'E721:', 1)
+ v9.CheckDefExecAndScriptFailure(["var x = g:anint.member"], ['E715:', 'E488:'], 1)
+ v9.CheckDefExecAndScriptFailure(["var x = g:dict_empty.member"], 'E716:', 1)
- CheckDefExecAndScriptFailure(['var x: dict<number> = {a: 234, b: "1"}'], 'E1012:', 1)
- CheckDefExecAndScriptFailure(['var x: dict<number> = {a: "x", b: 134}'], 'E1012:', 1)
- CheckDefExecAndScriptFailure(['var x: dict<string> = {a: 234, b: "1"}'], 'E1012:', 1)
- CheckDefExecAndScriptFailure(['var x: dict<string> = {a: "x", b: 134}'], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(['var x: dict<number> = {a: 234, b: "1"}'], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(['var x: dict<number> = {a: "x", b: 134}'], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(['var x: dict<string> = {a: 234, b: "1"}'], 'E1012:', 1)
+ v9.CheckDefExecAndScriptFailure(['var x: dict<string> = {a: "x", b: 134}'], 'E1012:', 1)
# invalid types for the key
- CheckDefAndScriptFailure(["var x = {[[1, 2]]: 0}"], ['E1105:', 'E730:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = {[[1, 2]]: 0}"], ['E1105:', 'E730:'], 1)
- CheckDefFailure(['var x = ({'], 'E723:', 2)
- CheckScriptFailure(['vim9script', 'var x = ({'], 'E723:', 2)
- CheckDefExecAndScriptFailure(['{}[getftype("file")]'], 'E716: Key not present in Dictionary: ""', 1)
+ v9.CheckDefFailure(['var x = ({'], 'E723:', 2)
+ v9.CheckScriptFailure(['vim9script', 'var x = ({'], 'E723:', 2)
+ v9.CheckDefExecAndScriptFailure(['{}[getftype("file")]'], 'E716: Key not present in Dictionary: ""', 1)
enddef
def Test_expr8_dict_vim9script()
@@ -2484,13 +2484,13 @@
var dd = {k: 123->len()}
assert_equal(3, dd.k)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var d = { ["one"]: "one", ["two"]: "two", }
assert_equal({one: 'one', two: 'two'}, d)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var d = {one: 1,
@@ -2498,57 +2498,57 @@
}
assert_equal({one: 1, two: 2}, d)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var d = {one:1, two: 2}
END
- CheckDefAndScriptFailure(lines, 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1069:', 1)
lines =<< trim END
var d = {one: 1,two: 2}
END
- CheckDefAndScriptFailure(lines, 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1069:', 1)
lines =<< trim END
var d = {one : 1}
END
- CheckDefAndScriptFailure(lines, 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1068:', 1)
lines =<< trim END
var d = {one:1}
END
- CheckDefAndScriptFailure(lines, 'E1069:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1069:', 1)
lines =<< trim END
var d = {one: 1 , two: 2}
END
- CheckDefAndScriptFailure(lines, 'E1068:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1068:', 1)
lines =<< trim END
var l: dict<number> = {a: 234, b: 'x'}
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var l: dict<number> = {a: 'x', b: 234}
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var l: dict<string> = {a: 'x', b: 234}
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var l: dict<string> = {a: 234, b: 'x'}
END
- CheckDefAndScriptFailure(lines, 'E1012:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1012:', 1)
lines =<< trim END
var d = {['a']: 234, ['b': 'x'}
END
- CheckDefAndScriptFailure(lines, 'E1139:', 1)
+ v9.CheckDefAndScriptFailure(lines, 'E1139:', 1)
lines =<< trim END
def Func()
@@ -2556,13 +2556,13 @@
enddef
defcompile
END
- CheckDefAndScriptFailure(lines, 'E1139:', 0)
+ v9.CheckDefAndScriptFailure(lines, 'E1139:', 0)
lines =<< trim END
var d = {'a':
END
- CheckDefFailure(lines, 'E723:', 2)
- CheckScriptFailure(['vim9script'] + lines, 'E15:', 2)
+ v9.CheckDefFailure(lines, 'E723:', 2)
+ v9.CheckScriptFailure(['vim9script'] + lines, 'E15:', 2)
lines =<< trim END
def Func()
@@ -2570,7 +2570,7 @@
enddef
defcompile
END
- CheckDefAndScriptFailure(lines, 'E723:', 0)
+ v9.CheckDefAndScriptFailure(lines, 'E723:', 0)
lines =<< trim END
def Failing()
@@ -2579,9 +2579,9 @@
var dict = {name: Failing}
END
if has('channel')
- CheckDefAndScriptFailure(lines, 'E119:', 0)
+ v9.CheckDefAndScriptFailure(lines, 'E119:', 0)
else
- CheckDefAndScriptFailure(lines, 'E117:', 0)
+ v9.CheckDefAndScriptFailure(lines, 'E117:', 0)
endif
lines =<< trim END
@@ -2589,7 +2589,7 @@
var x = 99
assert_equal({x: 99}, s:)
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
enddef
def Test_expr8_dict_in_block()
@@ -2609,7 +2609,7 @@
assert_equal({key: 'value'}, g:global)
unlet g:global
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
delcommand MyCommand
delcommand YourCommand
@@ -2631,7 +2631,7 @@
TestBrokenCall()
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
enddef
let g:oneString = 'one'
@@ -2656,11 +2656,11 @@
assert_equal('one', {one: 'one'}.one)
assert_equal('one', {one: 'one'}[g:oneString])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var x = g:dict_one.#$!"], ['E1002:', 'E15:'], 1)
- CheckDefExecAndScriptFailure(["var d: dict<any>", "echo d['a']"], 'E716:', 2)
- CheckDefExecAndScriptFailure(["var d: dict<number>", "d = g:list_empty"], 'E1012: Type mismatch; expected dict<number> but got list<unknown>', 2)
+ v9.CheckDefAndScriptFailure(["var x = g:dict_one.#$!"], ['E1002:', 'E15:'], 1)
+ v9.CheckDefExecAndScriptFailure(["var d: dict<any>", "echo d['a']"], 'E716:', 2)
+ v9.CheckDefExecAndScriptFailure(["var d: dict<number>", "d = g:list_empty"], 'E1012: Type mismatch; expected dict<number> but got list<unknown>', 2)
enddef
def Test_expr8_any_index_slice()
@@ -2756,16 +2756,16 @@
assert_equal(2, g:testdict['b'])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefExecAndScriptFailure(['echo g:testblob[2]'], 'E979:', 1)
- CheckDefExecAndScriptFailure(['echo g:testblob[-3]'], 'E979:', 1)
+ v9.CheckDefExecAndScriptFailure(['echo g:testblob[2]'], 'E979:', 1)
+ v9.CheckDefExecAndScriptFailure(['echo g:testblob[-3]'], 'E979:', 1)
- CheckDefExecAndScriptFailure(['echo g:testlist[4]'], 'E684: list index out of range: 4', 1)
- CheckDefExecAndScriptFailure(['echo g:testlist[-5]'], 'E684:', 1)
+ v9.CheckDefExecAndScriptFailure(['echo g:testlist[4]'], 'E684: list index out of range: 4', 1)
+ v9.CheckDefExecAndScriptFailure(['echo g:testlist[-5]'], 'E684:', 1)
- CheckDefExecAndScriptFailure(['echo g:testdict["a" : "b"]'], 'E719:', 1)
- CheckDefExecAndScriptFailure(['echo g:testdict[1]'], 'E716:', 1)
+ v9.CheckDefExecAndScriptFailure(['echo g:testdict["a" : "b"]'], 'E719:', 1)
+ v9.CheckDefExecAndScriptFailure(['echo g:testdict[1]'], 'E716:', 1)
unlet g:teststring
unlet g:testblob
@@ -2790,7 +2790,7 @@
'one'
])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var l = [1,
@@ -2810,7 +2810,7 @@
:
])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def SetSomeVar()
@@ -2837,11 +2837,11 @@
var sval: string = &path
# check v_lock is cleared (requires using valgrind, doesn't always show)
- SetSomeVar()
+ g:SetSomeVar()
b:someVar = 0
unlet b:someVar
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_environment()
@@ -2850,10 +2850,10 @@
assert_equal('testvar', $TESTVAR)
assert_equal('', $ASDF_ASD_XXX)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["var x = $$$"], ['E1002:', 'E15:'], 1)
- CheckDefAndScriptFailure(["$"], ['E1002:', 'E15:'], 1)
+ v9.CheckDefAndScriptFailure(["var x = $$$"], ['E1002:', 'E15:'], 1)
+ v9.CheckDefAndScriptFailure(["$"], ['E1002:', 'E15:'], 1)
enddef
def Test_expr8_register()
@@ -2876,9 +2876,9 @@
@= = 'equal'
assert_equal('equal', @=)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
- CheckDefAndScriptFailure(["@. = 'yes'"], ['E354:', 'E488:'], 1)
+ v9.CheckDefAndScriptFailure(["@. = 'yes'"], ['E354:', 'E488:'], 1)
enddef
" This is slow when run under valgrind.
@@ -2908,7 +2908,7 @@
assert_equal('xxx', get(t:, 'no_var', 'xxx'))
unlet t:some_var
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_namespace_loop_def()
@@ -2926,7 +2926,7 @@
assert_equal(0, exists)
assert_equal(100000, exists_not)
END
- CheckDefSuccess(lines)
+ v9.CheckDefSuccess(lines)
enddef
" NOTE: this is known to be slow. To skip use:
@@ -2947,7 +2947,7 @@
assert_equal(0, exists)
assert_equal(100000, exists_not)
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
enddef
def Test_expr8_parens()
@@ -2979,7 +2979,7 @@
)
assert_equal('onetwo', s)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_negate_add()
@@ -2993,38 +2993,38 @@
assert_equal(-88, - nr)
assert_equal(88, + nr)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var n = 12
echo ++n
END
- CheckDefAndScriptFailure(lines, 'E15:')
+ v9.CheckDefAndScriptFailure(lines, 'E15:')
lines =<< trim END
var n = 12
echo --n
END
- CheckDefAndScriptFailure(lines, 'E15:')
+ v9.CheckDefAndScriptFailure(lines, 'E15:')
lines =<< trim END
var n = 12
echo +-n
END
- CheckDefAndScriptFailure(lines, 'E15:')
+ v9.CheckDefAndScriptFailure(lines, 'E15:')
lines =<< trim END
var n = 12
echo -+n
END
- CheckDefAndScriptFailure(lines, 'E15:')
+ v9.CheckDefAndScriptFailure(lines, 'E15:')
lines =<< trim END
var n = 12
echo - -n
END
- CheckDefAndScriptFailure(lines, 'E15:')
+ v9.CheckDefAndScriptFailure(lines, 'E15:')
lines =<< trim END
var n = 12
echo + +n
END
- CheckDefAndScriptFailure(lines, 'E15:')
+ v9.CheckDefAndScriptFailure(lines, 'E15:')
enddef
def LegacyReturn(): string
@@ -3043,9 +3043,9 @@
call assert_equal('legacy', GetLocal())
call assert_equal('legacy', GetLocalPrefix())
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
- assert_equal('ok', LegacyReturn())
+ assert_equal('ok', g:LegacyReturn())
lines =<< trim END
vim9script
@@ -3054,7 +3054,7 @@
enddef
echo GetNumber()
END
- CheckScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<number>')
+ v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<number>')
enddef
def Echo(arg: any): string
@@ -3067,21 +3067,41 @@
def Test_expr8_call()
var lines =<< trim END
- assert_equal('yes', 'yes'->Echo())
+ assert_equal('yes', 'yes'->g:Echo())
assert_equal(true, !range(5)->empty())
assert_equal([0, 1, 2], 3->range())
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
assert_equal('yes', 'yes'
->s:Echo4Arg())
- CheckDefAndScriptFailure(["var x = 'yes'->Echo"], 'E107:', 1)
- CheckDefAndScriptFailure([
+ v9.CheckDefAndScriptFailure(["var x = 'yes'->g:Echo"], 'E107:', 1)
+ v9.CheckDefAndScriptFailure([
"var x = substitute ('x', 'x', 'x', 'x')"
], ['E1001:', 'E121:'], 1)
- CheckDefAndScriptFailure(["var Ref = function('len' [1, 2])"], ['E1123:', 'E116:'], 1)
+ v9.CheckDefAndScriptFailure(["var Ref = function('len' [1, 2])"], ['E1123:', 'E116:'], 1)
+enddef
+def g:ExistingGloba(): string
+ return 'existing'
+enddef
+
+def Test_expr8_call_global()
+ assert_equal('existing', g:ExistingGloba())
+
+ def g:DefinedLater(): string
+ return 'later'
+ enddef
+ assert_equal('later', g:DefinedLater())
+
+ var lines =<< trim END
+ echo ExistingGlobal()
+ END
+ v9.CheckDefAndScriptFailure(lines, 'E117: Unknown function: ExistingGlobal')
+enddef
+
+def Test_expr8_call_autoload()
var auto_lines =<< trim END
def g:some#func(): string
return 'found'
@@ -3137,7 +3157,7 @@
-> sort()
assert_equal([1, 2, 3], sorted)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
def SetNumber(n: number)
@@ -3165,14 +3185,14 @@
unlet g:number
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
def RetVoid()
enddef
RetVoid()->byteidx(3)
END
- CheckDefExecFailure(lines, 'E1013:')
+ v9.CheckDefExecFailure(lines, 'E1013:')
enddef
def Test_expr8_method_call_linebreak()
@@ -3188,7 +3208,7 @@
defcompile
assert_equal('', v:errmsg)
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
enddef
def Test_expr8_method_call_import()
@@ -3212,7 +3232,7 @@
assert_equal([0, 10, 40, 90, 160], Test())
END
- CheckScriptSuccess(lines)
+ v9.CheckScriptSuccess(lines)
lines =<< trim END
vim9script
@@ -3220,7 +3240,7 @@
echo range(5)->Xsquare.NoSuchFunc()
END
- CheckScriptFailure(lines, 'E1048: Item not found in script: NoSuchFunc')
+ v9.CheckScriptFailure(lines, 'E1048: Item not found in script: NoSuchFunc')
delete('Xsquare.vim')
enddef
@@ -3273,7 +3293,7 @@
assert_equal(false, ![1, 2, 3]->reverse())
assert_equal(true, ![]->reverse())
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
let g:anumber = 42
@@ -3284,57 +3304,57 @@
assert_equal(-1, -nr)
assert_equal(-42, -g:anumber)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
func Test_expr8_fails()
- call CheckDefFailure(["var x = (12"], "E1097:", 3)
- call CheckScriptFailure(['vim9script', "var x = (12"], 'E110:', 2)
+ call v9.CheckDefFailure(["var x = (12"], "E1097:", 3)
+ call v9.CheckScriptFailure(['vim9script', "var x = (12"], 'E110:', 2)
- call CheckDefAndScriptFailure(["var x = -'xx'"], "E1030:", 1)
- call CheckDefAndScriptFailure(["var x = +'xx'"], "E1030:", 1)
- call CheckDefAndScriptFailure(["var x = -0z12"], "E974:", 1)
- call CheckDefExecAndScriptFailure(["var x = -[8]"], ["E1012:", 'E745:'], 1)
- call CheckDefExecAndScriptFailure(["var x = -{a: 1}"], ["E1012:", 'E728:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = -'xx'"], "E1030:", 1)
+ call v9.CheckDefAndScriptFailure(["var x = +'xx'"], "E1030:", 1)
+ call v9.CheckDefAndScriptFailure(["var x = -0z12"], "E974:", 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = -[8]"], ["E1012:", 'E745:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = -{a: 1}"], ["E1012:", 'E728:'], 1)
- call CheckDefAndScriptFailure(["var x = @"], "E1002:", 1)
- call CheckDefAndScriptFailure(["var x = @<"], "E354:", 1)
+ call v9.CheckDefAndScriptFailure(["var x = @"], "E1002:", 1)
+ call v9.CheckDefAndScriptFailure(["var x = @<"], "E354:", 1)
- call CheckDefFailure(["var x = [1, 2"], "E697:", 2)
- call CheckScriptFailure(['vim9script', "var x = [1, 2"], 'E696:', 2)
+ call v9.CheckDefFailure(["var x = [1, 2"], "E697:", 2)
+ call v9.CheckScriptFailure(['vim9script', "var x = [1, 2"], 'E696:', 2)
- call CheckDefAndScriptFailure(["var x = [notfound]"], ["E1001:", 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = [notfound]"], ["E1001:", 'E121:'], 1)
- call CheckDefAndScriptFailure(["var X = () => 123)"], 'E488:', 1)
- call CheckDefAndScriptFailure(["var x = 123->((x) => x + 5)"], "E107:", 1)
+ call v9.CheckDefAndScriptFailure(["var X = () => 123)"], 'E488:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = 123->((x) => x + 5)"], "E107:", 1)
- call CheckDefAndScriptFailure(["var x = ¬exist"], 'E113:', 1)
- call CheckDefAndScriptFailure(["&grepprg = [343]"], ['E1012:', 'E730:'], 1)
+ call v9.CheckDefAndScriptFailure(["var x = ¬exist"], 'E113:', 1)
+ call v9.CheckDefAndScriptFailure(["&grepprg = [343]"], ['E1012:', 'E730:'], 1)
- call CheckDefExecAndScriptFailure(["echo s:doesnt_exist"], 'E121:', 1)
- call CheckDefExecAndScriptFailure(["echo g:doesnt_exist"], 'E121:', 1)
+ call v9.CheckDefExecAndScriptFailure(["echo s:doesnt_exist"], 'E121:', 1)
+ call v9.CheckDefExecAndScriptFailure(["echo g:doesnt_exist"], 'E121:', 1)
- call CheckDefAndScriptFailure(["echo a:somevar"], ['E1075:', 'E121:'], 1)
- call CheckDefAndScriptFailure(["echo l:somevar"], ['E1075:', 'E121:'], 1)
- call CheckDefAndScriptFailure(["echo x:somevar"], ['E1075:', 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["echo a:somevar"], ['E1075:', 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["echo l:somevar"], ['E1075:', 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["echo x:somevar"], ['E1075:', 'E121:'], 1)
- call CheckDefExecAndScriptFailure(["var x = +g:astring"], ['E1012:', 'E1030:'], 1)
- call CheckDefExecAndScriptFailure(["var x = +g:ablob"], ['E1012:', 'E974:'], 1)
- call CheckDefExecAndScriptFailure(["var x = +g:alist"], ['E1012:', 'E745:'], 1)
- call CheckDefExecAndScriptFailure(["var x = +g:adict"], ['E1012:', 'E728:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = +g:astring"], ['E1012:', 'E1030:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = +g:ablob"], ['E1012:', 'E974:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = +g:alist"], ['E1012:', 'E745:'], 1)
+ call v9.CheckDefExecAndScriptFailure(["var x = +g:adict"], ['E1012:', 'E728:'], 1)
- call CheckDefAndScriptFailure(["var x = ''", "var y = x.memb"], ['E1229: Expected dictionary for using key "memb", but got string', 'E488:'], 2)
+ call v9.CheckDefAndScriptFailure(["var x = ''", "var y = x.memb"], ['E1229: Expected dictionary for using key "memb", but got string', 'E488:'], 2)
- call CheckDefAndScriptFailure(["'yes'->", "Echo()"], ['E488: Trailing characters: ->', 'E260: Missing name after ->'], 1)
+ call v9.CheckDefAndScriptFailure(["'yes'->", "Echo()"], ['E488: Trailing characters: ->', 'E260: Missing name after ->'], 1)
- call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2)
- call CheckScriptFailure(['vim9script', "[1, 2->len()"], 'E696:', 2)
+ call v9.CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2)
+ call v9.CheckScriptFailure(['vim9script', "[1, 2->len()"], 'E696:', 2)
- call CheckDefFailure(["{a: 1->len()"], 'E723:', 2)
- call CheckScriptFailure(['vim9script', "{a: 1->len()"], 'E722:', 2)
+ call v9.CheckDefFailure(["{a: 1->len()"], 'E723:', 2)
+ call v9.CheckScriptFailure(['vim9script', "{a: 1->len()"], 'E722:', 2)
- call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2)
- call CheckScriptFailure(['vim9script', "{['a']: 1->len()"], 'E722:', 2)
+ call v9.CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2)
+ call v9.CheckScriptFailure(['vim9script', "{['a']: 1->len()"], 'E722:', 2)
endfunc
let g:Funcrefs = [function('add')]
@@ -3380,7 +3400,7 @@
var d = {key: 123}
assert_equal(123, d.key)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_string_subscript()
@@ -3438,48 +3458,48 @@
assert_equal('sd', g:astring[1 : 2])
assert_equal('asdf', g:astring[:])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var d = 'asdf'[1 :
END
- CheckDefFailure(lines, 'E1097:', 3)
- CheckScriptFailure(['vim9script'] + lines, 'E15:', 2)
+ v9.CheckDefFailure(lines, 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script'] + lines, 'E15:', 2)
lines =<< trim END
var d = 'asdf'[1 : xxx]
END
- CheckDefAndScriptFailure(lines, ['E1001:', 'E121:'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1001:', 'E121:'], 1)
lines =<< trim END
var d = 'asdf'[1 : 2
END
- CheckDefFailure(lines, 'E1097:', 3)
- CheckScriptFailure(['vim9script'] + lines, 'E111:', 2)
+ v9.CheckDefFailure(lines, 'E1097:', 3)
+ v9.CheckScriptFailure(['vim9script'] + lines, 'E111:', 2)
lines =<< trim END
var d = 'asdf'[1 : 2
echo d
END
- CheckDefAndScriptFailure(lines, 'E111:', 2)
+ v9.CheckDefAndScriptFailure(lines, 'E111:', 2)
lines =<< trim END
var d = 'asdf'['1']
echo d
END
- CheckDefAndScriptFailure(lines, ['E1012: Type mismatch; expected number but got string', 'E1030: Using a String as a Number: "1"'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1012: Type mismatch; expected number but got string', 'E1030: Using a String as a Number: "1"'], 1)
lines =<< trim END
var d = 'asdf'['1' : 2]
echo d
END
- CheckDefAndScriptFailure(lines, ['E1012: Type mismatch; expected number but got string', 'E1030: Using a String as a Number: "1"'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1012: Type mismatch; expected number but got string', 'E1030: Using a String as a Number: "1"'], 1)
lines =<< trim END
var d = 'asdf'[1 : '2']
echo d
END
- CheckDefAndScriptFailure(lines, ['E1012: Type mismatch; expected number but got string', 'E1030: Using a String as a Number: "2"'], 1)
+ v9.CheckDefAndScriptFailure(lines, ['E1012: Type mismatch; expected number but got string', 'E1030: Using a String as a Number: "2"'], 1)
enddef
def Test_expr8_list_subscript()
@@ -3510,10 +3530,10 @@
assert_equal(2, g:alist[0])
assert_equal([2, 3, 4], g:alist[:])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines = ['var l = [0, 1, 2]', 'echo l[g:astring : g:theone]']
- CheckDefExecAndScriptFailure(lines, ['E1012:', 'E1030:'], 2)
+ v9.CheckDefExecAndScriptFailure(lines, ['E1012:', 'E1030:'], 2)
lines =<< trim END
var ld = []
@@ -3522,7 +3542,7 @@
enddef
defcompile
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_dict_subscript()
@@ -3543,7 +3563,7 @@
enddef
defcompile
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_blob_subscript()
@@ -3555,7 +3575,7 @@
assert_equal(0x01, g:ablob[0])
assert_equal(0z01ab, g:ablob[:])
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
enddef
def Test_expr8_subscript_linebreak()
@@ -3591,38 +3611,38 @@
assert_equal(33, d
.one)
END
- CheckDefAndScriptSuccess(lines)
+ v9.CheckDefAndScriptSuccess(lines)
lines =<< trim END
var d = {one: 33}
assert_equal(33, d.
one)
END
- CheckDefAndScriptFailure(lines, ['E1127:', 'E116:'], 2)
+ v9.CheckDefAndScriptFailure(lines, ['E1127:', 'E116:'], 2)
enddef
func Test_expr8_trailing_fails()
- call CheckDefAndScriptFailure(['var l = [2]', 'l->((ll) => add(ll, 8))'], 'E107:', 2)
- call CheckDefAndScriptFailure(['var l = [2]', 'l->((ll) => add(ll, 8)) ()'], 'E274:', 2)
+ call v9.CheckDefAndScriptFailure(['var l = [2]', 'l->((ll) => add(ll, 8))'], 'E107:', 2)
+ call v9.CheckDefAndScriptFailure(['var l = [2]', 'l->((ll) => add(ll, 8)) ()'], 'E274:', 2)
endfunc
func Test_expr_fails()
- call CheckDefAndScriptFailure(["var x = '1'is2"], 'E488:', 1)
- call CheckDefAndScriptFailure(["var x = '1'isnot2"], 'E488:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'is2"], 'E488:', 1)
+ call v9.CheckDefAndScriptFailure(["var x = '1'isnot2"], 'E488:', 1)
- call CheckDefAndScriptFailure(["CallMe ('yes')"], ['E476:', 'E492:'], 1)
+ call v9.CheckDefAndScriptFailure(["CallMe ('yes')"], ['E476:', 'E492:'], 1)
- call CheckDefAndScriptFailure(["CallMe2('yes','no')"], 'E1069:', 1)
+ call v9.CheckDefAndScriptFailure(["CallMe2('yes','no')"], 'E1069:', 1)
- call CheckDefAndScriptFailure(["v:nosuch += 3"], ['E1001:', 'E121:'], 1)
- call CheckDefAndScriptFailure(["var v:statusmsg = ''"], 'E1016: Cannot declare a v: variable:', 1)
- call CheckDefAndScriptFailure(["var asdf = v:nosuch"], ['E1001:', 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["v:nosuch += 3"], ['E1001:', 'E121:'], 1)
+ call v9.CheckDefAndScriptFailure(["var v:statusmsg = ''"], 'E1016: Cannot declare a v: variable:', 1)
+ call v9.CheckDefAndScriptFailure(["var asdf = v:nosuch"], ['E1001:', 'E121:'], 1)
- call CheckDefFailure(["echo len('asdf'"], 'E110:', 2)
- call CheckScriptFailure(['vim9script', "echo len('asdf'"], 'E116:', 2)
+ call v9.CheckDefFailure(["echo len('asdf'"], 'E110:', 2)
+ call v9.CheckScriptFailure(['vim9script', "echo len('asdf'"], 'E116:', 2)
- call CheckDefAndScriptFailure(["echo Func0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789()"], ['E1011:', 'E117:'], 1)
- call CheckDefAndScriptFailure(["echo doesnotexist()"], 'E117:', 1)
+ call v9.CheckDefAndScriptFailure(["echo Func0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789()"], ['E1011:', 'E117:'], 1)
+ call v9.CheckDefAndScriptFailure(["echo doesnotexist()"], 'E117:', 1)
endfunc
" vim: shiftwidth=2 sts=2 expandtab