summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-03-03 19:02:12 +0100
committerBram Moolenaar <Bram@vim.org>2020-03-03 19:02:12 +0100
commit6d69bf602b4ebdb195f02953a0b33c91ec08e599 (patch)
tree7d71e141b9288746edc1f2f100067709510b03e0
parent5381c7a1628eeca81a46b811158be4cd47ba5815 (diff)
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.vim102
-rw-r--r--src/version.c2
2 files changed, 104 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index a8950f0729..90bd4ebfe5 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 d595d173e7..9c5fca8b2f 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,