To: vim_dev@googlegroups.com Subject: Patch 9.0.1625 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@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 ///