1
0
forked from aniani/vim

patch 8.2.0349: Vim9: constant expression not well tested

Problem:    Vim9: constant expression not well tested.
Solution:   Add tests for "if" with constant expression.
This commit is contained in:
Bram Moolenaar
2020-03-03 19:02:12 +01:00
parent 5381c7a162
commit 6d69bf602b
2 changed files with 104 additions and 0 deletions

View File

@@ -732,6 +732,108 @@ def Test_if_elseif_else()
assert_equal('three', IfElse(3))
enddef
let g:bool_true = v:true
let g:bool_false = v:false
def Test_if_const_expr()
let res = false
if true ? true : false
res = true
endif
assert_equal(true, res)
res = false
if g:bool_true ? true : false
res = true
endif
assert_equal(true, res)
res = false
if true ? g:bool_true : false
res = true
endif
assert_equal(true, res)
res = false
if true ? true : g:bool_false
res = true
endif
assert_equal(true, res)
res = false
if true ? false : true
res = true
endif
assert_equal(false, res)
res = false
if false ? false : true
res = true
endif
assert_equal(true, res)
res = false
if false ? true : false
res = true
endif
assert_equal(false, res)
res = false
if true && true
res = true
endif
assert_equal(true, res)
res = false
if true && false
res = true
endif
assert_equal(false, res)
res = false
if g:bool_true && false
res = true
endif
assert_equal(false, res)
res = false
if true && g:bool_false
res = true
endif
assert_equal(false, res)
res = false
if false && false
res = true
endif
assert_equal(false, res)
res = false
if true || false
res = true
endif
assert_equal(true, res)
res = false
if g:bool_true || false
res = true
endif
assert_equal(true, res)
res = false
if true || g:bool_false
res = true
endif
assert_equal(true, res)
res = false
if false || false
res = true
endif
assert_equal(false, res)
enddef
def Test_delfunc()
let lines =<< trim END
vim9script