diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-03-03 19:02:12 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-03-03 19:02:12 +0100 |
commit | 6d69bf602b4ebdb195f02953a0b33c91ec08e599 (patch) | |
tree | 7d71e141b9288746edc1f2f100067709510b03e0 | |
parent | 5381c7a1628eeca81a46b811158be4cd47ba5815 (diff) | |
download | vim-git-6d69bf602b4ebdb195f02953a0b33c91ec08e599.tar.gz |
patch 8.2.0349: Vim9: constant expression not well testedv8.2.0349
Problem: Vim9: constant expression not well tested.
Solution: Add tests for "if" with constant expression.
-rw-r--r-- | src/testdir/test_vim9_script.vim | 102 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 104 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index a8950f072..90bd4ebfe 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -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 diff --git a/src/version.c b/src/version.c index d595d173e..9c5fca8b2 100644 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 349, +/**/ 348, /**/ 347, |