From 6d69bf602b4ebdb195f02953a0b33c91ec08e599 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 3 Mar 2020 19:02:12 +0100 Subject: [PATCH] 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. --- src/testdir/test_vim9_script.vim | 102 +++++++++++++++++++++++++++++++ src/version.c | 2 + 2 files changed, 104 insertions(+) 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 @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 349, /**/ 348, /**/ -- 2.40.0