]> granicus.if.org Git - vim/commitdiff
patch 9.0.0355: check for uppercase char in autoload name is wrong v9.0.0355
authorthinca <thinca@gmail.com>
Fri, 2 Sep 2022 10:25:37 +0000 (11:25 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 2 Sep 2022 10:25:37 +0000 (11:25 +0100)
Problem:    Check for uppercase char in autoload name is wrong, it checks the
            name of the script.
Solution:   Remove the check. (closes #11031)

src/evalvars.c
src/testdir/test_let.vim
src/version.c

index 71cab0a3085f1b9bc1cec48e7f3669869d73238a..f5761f958cc58f6c1f81782eba3d4224d34c3f9f 100644 (file)
@@ -4012,10 +4012,12 @@ var_wrong_func_name(
 {
     // Allow for w: b: s: and t:.  In Vim9 script s: is not allowed, because
     // the name can be used without the s: prefix.
+    // Allow autoload variable.
     if (!((vim_strchr((char_u *)"wbt", name[0]) != NULL
                    || (!in_vim9script() && name[0] == 's')) && name[1] == ':')
            && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
-                                                    ? name[2] : name[0]))
+                                                    ? name[2] : name[0])
+           && vim_strchr(name, '#') == NULL)
     {
        semsg(_(e_funcref_variable_name_must_start_with_capital_str), name);
        return TRUE;
index fb315e89ed9d4ff8567c26ba5a5a9c9728c3bfa3..9822e6f1b7fc259d163c86878644548e0f2f47da 100644 (file)
@@ -8,6 +8,10 @@ func Test_let()
   let Test104#numvar = function('tr')
   call assert_equal("function('tr')", string(Test104#numvar))
 
+  let foo#tr = function('tr')
+  call assert_equal("function('tr')", string(foo#tr))
+  unlet foo#tr
+
   let a = 1
   let b = 2
 
index 2009980dc3a36796e0884c7ed0234bc1eb184c3e..356ac7796a7e45c261529ca0aa7171bd8a3f1edd 100644 (file)
@@ -707,6 +707,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    355,
 /**/
     354,
 /**/