Patch 8.2.4277
Problem:    Vim9: an import does not shadow a command modifier.
Solution:   Do not accept a command modifier followed by a dot.
Files:      src/ex_docmd.c, src/testdir/test_vim9_import.vim


*** ../vim-8.2.4276/src/ex_docmd.c      2022-01-29 15:19:19.546172430 +0000
--- src/ex_docmd.c      2022-01-31 18:55:30.079348116 +0000
***************
*** 2709,2715 ****
  /*
   * Check for an Ex command with optional tail.
   * If there is a match advance "pp" to the argument and return TRUE.
!  * If "noparen" is TRUE do not recognize the command followed by "(".
   */
      static int
  checkforcmd_opt(
--- 2709,2715 ----
  /*
   * Check for an Ex command with optional tail.
   * If there is a match advance "pp" to the argument and return TRUE.
!  * If "noparen" is TRUE do not recognize the command followed by "(" or ".".
   */
      static int
  checkforcmd_opt(
***************
*** 2723,2730 ****
      for (i = 0; cmd[i] != NUL; ++i)
        if (((char_u *)cmd)[i] != (*pp)[i])
            break;
!     if (i >= len && !isalpha((*pp)[i])
!                          && (*pp)[i] != '_' && (!noparen || (*pp)[i] != '('))
      {
        *pp = skipwhite(*pp + i);
        return TRUE;
--- 2723,2730 ----
      for (i = 0; cmd[i] != NUL; ++i)
        if (((char_u *)cmd)[i] != (*pp)[i])
            break;
!     if (i >= len && !isalpha((*pp)[i]) && (*pp)[i] != '_'
!                        && (!noparen || ((*pp)[i] != '(' && (*pp)[i] != '.')))
      {
        *pp = skipwhite(*pp + i);
        return TRUE;
***************
*** 2746,2752 ****
  }
  
  /*
!  * Check for an Ex command with optional tail, not followed by "(".
   * If there is a match advance "pp" to the argument and return TRUE.
   */
      int
--- 2746,2752 ----
  }
  
  /*
!  * Check for an Ex command with optional tail, not followed by "(" or ".".
   * If there is a match advance "pp" to the argument and return TRUE.
   */
      int
*** ../vim-8.2.4276/src/testdir/test_vim9_import.vim    2022-01-30 
18:40:40.535255817 +0000
--- src/testdir/test_vim9_import.vim    2022-01-31 18:54:39.692091224 +0000
***************
*** 142,147 ****
--- 142,155 ----
    unlet g:imported_func
    delete('Ximport_lbr.vim')
  
+   var import_shadows_cmdmod_lines =<< trim END
+       vim9script
+       import './Xexport.vim' as vim9
+       vim9.exp_name = 'Shadow'
+       assert_equal('Shadow', vim9.exp_name)
+   END
+   v9.CheckScriptSuccess(import_shadows_cmdmod_lines)
+ 
    var line_break_before_dot =<< trim END
      vim9script
      import './Xexport.vim' as expo
***************
*** 365,371 ****
    assert_fails('source Ximport.vim', 'E46: Cannot change read-only variable 
"CONST"', '', 3)
  
    delete('Ximport.vim')
-   delete('Ximport3.vim')
    delete('Xexport.vim')
  
    # Check that in a Vim9 script 'cpo' is set to the Vim default.
--- 373,378 ----
*** ../vim-8.2.4276/src/version.c       2022-01-31 17:39:45.394105533 +0000
--- src/version.c       2022-01-31 18:24:23.455077073 +0000
***************
*** 748,749 ****
--- 748,751 ----
  {   /* Add new patch number below this line */
+ /**/
+     4277,
  /**/

-- 
I have read and understood the above. X________________

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            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 vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20220131185948.702E71C1918%40moolenaar.net.

Raspunde prin e-mail lui