Mercurial > vim
changeset 19585:0303f920a7d4 v8.2.0349
patch 8.2.0349: Vim9: constant expression not well tested
Commit: https://github.com/vim/vim/commit/6d69bf602b4ebdb195f02953a0b33c91ec08e599
Author: Bram Moolenaar <Bram@vim.org>
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 03 Mar 2020 19:15:04 +0100 |
parents | 3aaaa407d308 |
children | 62ca09fadc5e |
files | src/testdir/test_vim9_script.vim src/version.c |
diffstat | 2 files changed, 104 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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