# HG changeset patch # User Bram Moolenaar # Date 1583259304 -3600 # Node ID 0303f920a7d4c9772b5326783dc6dfbc28631823 # Parent 3aaaa407d308d3f6ccddd0527e09bd5137404ae9 patch 8.2.0349: Vim9: constant expression not well tested Commit: https://github.com/vim/vim/commit/6d69bf602b4ebdb195f02953a0b33c91ec08e599 Author: Bram Moolenaar Date: Tue Mar 3 19:02:12 2020 +0100 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. diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim --- 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 --- 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,