changeset 21681:877321650f7f v8.2.1390

patch 8.2.1390: Vim9: type error after storing an option value Commit: https://github.com/vim/vim/commit/1c199f9c70446933677d5210f34d2b86eefa2a43 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 7 21:28:34 2020 +0200 patch 8.2.1390: Vim9: type error after storing an option value Problem: Vim9: type error after storing an option value. Solution: Drop the type after a STOREOPT instruction. (closes https://github.com/vim/vim/issues/6632)
author Bram Moolenaar <Bram@vim.org>
date Fri, 07 Aug 2020 21:30:03 +0200
parents 943cdd108b70
children 5e20df737eb4
files src/testdir/test_vim9_script.vim src/version.c src/vim9compile.c
diffstat 3 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -422,6 +422,11 @@ def Test_assignment_var_list()
   assert_equal('one', v1)
   assert_equal('two', v2)
   assert_equal(['three'], vrem)
+
+  [&ts, &sw] = [3, 4]
+  assert_equal(3, &ts)
+  assert_equal(4, &sw)
+  set ts=8 sw=4
 enddef
 
 def Test_assignment_vim9script()
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1390,
+/**/
     1389,
 /**/
     1388,
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1336,7 +1336,7 @@ generate_STOREOPT(cctx_T *cctx, char_u *
     isn_T	*isn;
 
     RETURN_OK_IF_SKIP(cctx);
-    if ((isn = generate_instr(cctx, ISN_STOREOPT)) == NULL)
+    if ((isn = generate_instr_drop(cctx, ISN_STOREOPT, 1)) == NULL)
 	return FAIL;
     isn->isn_arg.storeopt.so_name = vim_strsave(name);
     isn->isn_arg.storeopt.so_flags = opt_flags;