Patch 8.2.2758
Problem:    Vim9: wrong line number for autoload function with wrong name.
Solution:   Set and restore SOURCING_LNUM. (closes #8100)
Files:      src/userfunc.c, src/testdir/test_vim9_func.vim


*** ../vim-8.2.2757/src/userfunc.c      2021-04-10 21:38:35.451959655 +0200
--- src/userfunc.c      2021-04-12 21:57:56.808855222 +0200
***************
*** 4058,4064 ****
--- 4058,4068 ----
            }
            if (j == FAIL)
            {
+               linenr_T save_lnum = SOURCING_LNUM;
+ 
+               SOURCING_LNUM = sourcing_lnum_top;
                semsg(_("E746: Function name does not match script file name: 
%s"), name);
+               SOURCING_LNUM = save_lnum;
                goto erret;
            }
        }
*** ../vim-8.2.2757/src/testdir/test_vim9_func.vim      2021-04-10 
21:01:35.017507340 +0200
--- src/testdir/test_vim9_func.vim      2021-04-12 21:57:08.232932427 +0200
***************
*** 74,79 ****
--- 74,103 ----
    delete('Xdir', 'rf')
  enddef
  
+ def Test_autoload_name_mismatch()
+   var dir = 'Xdir/autoload'
+   mkdir(dir, 'p')
+ 
+   var lines =<< trim END
+       vim9script
+       def scriptX#Function()
+         # comment
+         g:runtime = 'yes'
+       enddef
+   END
+   writefile(lines, dir .. '/script.vim')
+ 
+   var save_rtp = &rtp
+   exe 'set rtp=' .. getcwd() .. '/Xdir'
+   lines =<< trim END
+       call script#Function()
+   END
+   CheckScriptFailure(lines, 'E746:', 2)
+ 
+   &rtp = save_rtp
+   delete(dir, 'rf')
+ enddef
+ 
  def CallRecursive(n: number): number
    return CallRecursive(n + 1)
  enddef
*** ../vim-8.2.2757/src/version.c       2021-04-12 21:20:58.638708968 +0200
--- src/version.c       2021-04-12 21:54:20.941185262 +0200
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     2758,
  /**/

-- 
>From "know your smileys":
 %      Bike accident.  A bit far-fetched, I suppose; although...
             o      _     _         _
     _o     /\_   _ \\o  (_)\__/o  (_)
   _< \_   _>(_) (_)/<_    \_| \   _|/' \/
  (_)>(_) (_)        (_)   (_)    (_)'  _\o_

 /// 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/202104122003.13CK3NmA791803%40masaka.moolenaar.net.

Raspunde prin e-mail lui