Patch 8.2.0283
Problem:    Vim9: failing to load script var not tested.
Solution:   Add more tests.   Fix using s: in old script.
Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c,
            src/testdir/test_vim9_script.vim


*** ../vim-8.2.0282/src/testdir/test_vim9_expr.vim      2020-02-19 
18:14:35.733852144 +0100
--- src/testdir/test_vim9_expr.vim      2020-02-19 20:09:35.771507350 +0100
***************
*** 726,731 ****
--- 726,734 ----
  
    call CheckDefFailure("let x = &notexist", 'E113:')
    call CheckDefExecFailure("&grepprg = [343]", 'E1051:')
+ 
+   call CheckDefExecFailure("echo s:doesnt_exist", 'E121:')
+   call CheckDefExecFailure("echo g:doesnt_exist", 'E121:')
  endfunc
  
  let g:Funcrefs = [function('add')]
*** ../vim-8.2.0282/src/vim9compile.c   2020-02-19 12:40:36.343661114 +0100
--- src/vim9compile.c   2020-02-19 20:16:30.214211585 +0100
***************
*** 1513,1521 ****
      int                   idx = get_script_item_idx(current_sctx.sc_sid, 
name, FALSE);
      imported_T            *import;
  
!     if (idx == -1)
      {
!       // variable exists but is not in sn_var_vals: old style script.
        return generate_OLDSCRIPT(cctx, ISN_LOADS, name, current_sctx.sc_sid,
                                                                       &t_any);
      }
--- 1513,1521 ----
      int                   idx = get_script_item_idx(current_sctx.sc_sid, 
name, FALSE);
      imported_T            *import;
  
!     if (idx == -1 || si->sn_version != SCRIPT_VERSION_VIM9)
      {
!       // variable is not in sn_var_vals: old style script.
        return generate_OLDSCRIPT(cctx, ISN_LOADS, name, current_sctx.sc_sid,
                                                                       &t_any);
      }
***************
*** 1627,1633 ****
                        || (len == 5 && STRNCMP("false", *arg, 5) == 0))
                    res = generate_PUSHBOOL(cctx, **arg == 't'
                                                     ? VVAL_TRUE : VVAL_FALSE);
!               else
                   res = compile_load_scriptvar(cctx, name);
            }
        }
--- 1627,1635 ----
                        || (len == 5 && STRNCMP("false", *arg, 5) == 0))
                    res = generate_PUSHBOOL(cctx, **arg == 't'
                                                     ? VVAL_TRUE : VVAL_FALSE);
!               else if (SCRIPT_ITEM(current_sctx.sc_sid)->sn_version
!                                                       == SCRIPT_VERSION_VIM9)
!                   // in Vim9 script "var" can be script-local.
                   res = compile_load_scriptvar(cctx, name);
            }
        }
*** ../vim-8.2.0282/src/testdir/test_vim9_script.vim    2020-02-19 
18:14:35.733852144 +0100
--- src/testdir/test_vim9_script.vim    2020-02-19 20:18:24.009851877 +0100
***************
*** 61,70 ****
    assert_equal('foobar', $ENVVAR)
    $ENVVAR = ''
  
!   appendToMe ..= 'yyy'
!   assert_equal('xxxyyy', appendToMe)
!   addToMe += 222
!   assert_equal(333, addToMe)
  enddef
  
  func Test_assignment_failure()
--- 61,70 ----
    assert_equal('foobar', $ENVVAR)
    $ENVVAR = ''
  
!   s:appendToMe ..= 'yyy'
!   assert_equal('xxxyyy', s:appendToMe)
!   s:addToMe += 222
!   assert_equal(333, s:addToMe)
  enddef
  
  func Test_assignment_failure()
*** ../vim-8.2.0282/src/version.c       2020-02-19 18:14:35.737852134 +0100
--- src/version.c       2020-02-19 20:08:33.563699048 +0100
***************
*** 740,741 ****
--- 740,743 ----
  {   /* Add new patch number below this line */
+ /**/
+     283,
  /**/

-- 
>From "know your smileys":
 :-&    Eating spaghetti

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202002191923.01JJNbku031521%40masaka.moolenaar.net.

Raspunde prin e-mail lui