Patch 9.0.1625

8 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 10, 2023, 2:00:45 PM6/10/23
to vim...@googlegroups.com

Patch 9.0.1625
Problem: "super" is not considered a reserved name.
Solution: Add "super" to the list of reserved names. (closes #12515)
Files: src/vim9script.c, src/userfunc.c, src/testdir/test_vim9_assign.vim


*** ../vim-9.0.1624/src/vim9script.c 2023-05-19 19:01:13.292413300 +0100
--- src/vim9script.c 2023-06-10 18:33:48.000962592 +0100
***************
*** 1122,1127 ****
--- 1122,1128 ----
"null_string",
"null_channel",
"null_job",
+ "super",
"this",
NULL
};
*** ../vim-9.0.1624/src/userfunc.c 2023-06-10 16:45:09.402610453 +0100
--- src/userfunc.c 2023-06-10 18:48:08.562316245 +0100
***************
*** 86,97 ****
return arg;
}

! // Vim9 script: cannot use script var name for argument. In function: also
! // check local vars and arguments.
! if (!skip && argtypes != NULL && check_defined(arg, p - arg,
! evalarg == NULL ? NULL : evalarg->eval_cctx,
eap == NULL ? NULL : eap->cstack, TRUE) == FAIL)
! return arg;

if (newargs != NULL && ga_grow(newargs, 1) == FAIL)
return arg;
--- 86,108 ----
return arg;
}

! // Extra checks in Vim9 script.
! if (!skip && argtypes != NULL)
! {
! int c = *p;
! *p = NUL;
! int r = check_reserved_name(arg, FALSE);
! *p = c;
! if (r == FAIL)
! return arg;
!
! // Cannot use script var name for argument. In function: also check
! // local vars and arguments.
! if (check_defined(arg, p - arg,
! evalarg == NULL ? NULL : evalarg->eval_cctx,
eap == NULL ? NULL : eap->cstack, TRUE) == FAIL)
! return arg;
! }

if (newargs != NULL && ga_grow(newargs, 1) == FAIL)
return arg;
*** ../vim-9.0.1624/src/testdir/test_vim9_assign.vim 2023-05-02 16:25:35.630819728 +0100
--- src/testdir/test_vim9_assign.vim 2023-06-10 18:39:54.879665033 +0100
***************
*** 311,316 ****
--- 311,318 ----

for name in ['true',
'false',
+ 'this',
+ 'super',
'null',
'null_blob',
'null_dict',
***************
*** 322,327 ****
--- 324,338 ----
v9.CheckDefExecAndScriptFailure(['var ' .. name .. ' = 0'], 'E1034:')
v9.CheckDefExecAndScriptFailure(['var ' .. name .. ': bool'], 'E1034:')
endfor
+
+ var lines =<< trim END
+ vim9script
+ def Foo(super: bool)
+ echo 'something'
+ enddef
+ defcompile
+ END
+ v9.CheckScriptFailure(lines, 'E1034:')
enddef

def Test_null_values()
***************
*** 1526,1531 ****
--- 1537,1543 ----
v9.CheckDefFailure(['var false = 1'], 'E1034:')
v9.CheckDefFailure(['var null = 1'], 'E1034:')
v9.CheckDefFailure(['var this = 1'], 'E1034:')
+ v9.CheckDefFailure(['var super = 1'], 'E1034:')

v9.CheckDefFailure(['[a; b; c] = g:list'], 'E1001:')
v9.CheckDefFailure(['var [a; b; c] = g:list'], 'E1080:')
*** ../vim-9.0.1624/src/version.c 2023-06-10 16:45:09.406610435 +0100
--- src/version.c 2023-06-10 18:57:51.932860075 +0100
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1625,
/**/

--
hundred-and-one symptoms of being an internet addict:
146. You experience ACTUAL physical withdrawal symptoms when away
from your 'puter and the net.

/// Bram Moolenaar -- Br...@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 ///
Reply all
Reply to author
Forward
0 new messages