comparison src/testdir/test_vim9_expr.vim @ 21925:51d591dbb8df v8.2.1512

patch 8.2.1512: failure after trinary expression fails Commit: https://github.com/vim/vim/commit/69e44552c567ff25b363ba0790ad3d43fa0397a7 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 22 22:37:20 2020 +0200 patch 8.2.1512: failure after trinary expression fails Problem: Failure after trinary expression fails. Solution: Restore eval_flags. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/6776)
author Bram Moolenaar <Bram@vim.org>
date Sat, 22 Aug 2020 22:45:03 +0200
parents a211bca98bc3
children 3991a6df522e
comparison
equal deleted inserted replaced
21924:7972b1494d5e 21925:51d591dbb8df
112 lines =<< trim END 112 lines =<< trim END
113 vim9script 113 vim9script
114 let var = v:true ? 1 :2 114 let var = v:true ? 1 :2
115 END 115 END
116 CheckScriptFailure(lines, 'E1004:', 2) 116 CheckScriptFailure(lines, 'E1004:', 2)
117
118 # check after failure eval_flags is reset
119 lines =<< trim END
120 vim9script
121 try
122 call eval('0 ? 1: 2')
123 catch
124 endtry
125 assert_equal(v:true, eval(string(v:true)))
126 END
127 CheckScriptSuccess(lines)
128
129 lines =<< trim END
130 vim9script
131 try
132 call eval('0 ? 1 :2')
133 catch
134 endtry
135 assert_equal(v:true, eval(string(v:true)))
136 END
137 CheckScriptSuccess(lines)
117 enddef 138 enddef
118 139
119 func Test_expr1_fails() 140 func Test_expr1_fails()
120 call CheckDefFailure(["let x = 1 ? 'one'"], "Missing ':' after '?'", 1) 141 call CheckDefFailure(["let x = 1 ? 'one'"], "Missing ':' after '?'", 1)
121 call CheckDefFailure(["let x = 1 ? 'one' : xxx"], "E1001:", 1) 142 call CheckDefFailure(["let x = 1 ? 'one' : xxx"], "E1001:", 1)