diff src/testdir/test_vim9_expr.vim @ 19423:f3e8e74cb747 v8.2.0269

patch 8.2.0269: Vim9: operator after list index does not work Commit: https://github.com/vim/vim/commit/b13af50f73dd89503c915f76fcf92be58789521a Author: Bram Moolenaar <Bram@vim.org> Date: Mon Feb 17 21:12:08 2020 +0100 patch 8.2.0269: Vim9: operator after list index does not work Problem: Vim9: operator after list index does not work. (Yasuhiro Matsumoto) Solution: After indexing a list change the type to the list member type. (closes #5651)
author Bram Moolenaar <Bram@vim.org>
date Mon, 17 Feb 2020 21:15:05 +0100
parents 77cce0439714
children 5d34ae66118e
line wrap: on
line diff
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -478,6 +478,17 @@ def Test_expr6()
   assert_equal(2, g:anint % g:alsoint)
 
   assert_equal(4, 6 * 4 / 6)
+
+  let x = [2]
+  let y = [3]
+  assert_equal(5, x[0] + y[0])
+  assert_equal(6, x[0] * y[0])
+  if has('float')
+    let xf = [2.0]
+    let yf = [3.0]
+    assert_equal(5.0, xf[0] + yf[0])
+    assert_equal(6.0, xf[0] * yf[0])
+  endif
 enddef
 
 def Test_expr6_float()
@@ -538,6 +549,10 @@ func Test_expr6_fails()
   call CheckDefFailure("let x = #{one: 1} / #{two: 2}", 'E1036:')
   call CheckDefFailure("let x = #{one: 1} % #{two: 2}", 'E1035:')
 
+  call CheckDefFailure("let x = 0xff[1]", 'E714:')
+  if has('float')
+    call CheckDefFailure("let x = 0.7[1]", 'E714:')
+  endif
 endfunc
 
 func Test_expr6_float_fails()