diff src/testdir/test_vim9_expr.vim @ 24430:fe71212fd202 v8.2.2755

patch 8.2.2755: Vim9: no error for using a number in a condition Commit: https://github.com/vim/vim/commit/af8ea0d066d31cf3cd0a39c5c49ce0342728588d Author: Bram Moolenaar <Bram@vim.org> Date: Sun Apr 11 18:24:46 2021 +0200 patch 8.2.2755: Vim9: no error for using a number in a condition Problem: Vim9: no error for using a number in a condition. Solution: Also use ISN_COND2BOOL if the type is t_number_bool. (closes #7644)
author Bram Moolenaar <Bram@vim.org>
date Sun, 11 Apr 2021 18:30:05 +0200
parents 492f7b54f691
children aa150abca273
line wrap: on
line diff
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -282,6 +282,20 @@ def Test_expr2()
       g:vals = []
       assert_equal(false, Record(0) || Record(false) || Record(0))
       assert_equal([0, false, 0], g:vals)
+
+      g:vals = []
+      var x = 1
+      if x || true
+        g:vals = [1]
+      endif
+      assert_equal([1], g:vals)
+
+      g:vals = []
+      x = 3
+      if true || x
+        g:vals = [1]
+      endif
+      assert_equal([1], g:vals)
   END
   CheckDefAndScriptSuccess(lines)
 enddef
@@ -357,6 +371,9 @@ def Test_expr2_fails()
   # TODO: should fail at compile time
   call CheckDefExecAndScriptFailure(["var x = 3 || 7"], 'E1023:', 1)
 
+  call CheckDefAndScriptFailure(["if 3"], 'E1023:', 1)
+  call CheckDefExecAndScriptFailure(['var x = 3', 'if x', 'endif'], 'E1023:', 2)
+
   call CheckDefAndScriptFailure2(["var x = [] || false"], 'E1012: Type mismatch; expected bool but got list<unknown>', 'E745:', 1)
 
 enddef