0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 9.0.1948: Vim9: object variable "this." should only be used in constructor

Problem:  Vim9: object variable "this." should only be used in
          constructor
Solution: Disallow to this in normal object methods (other than
          constructors)

closes: #13152
closes: #13212

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: h-east <h.east.727@gmail.com>
This commit is contained in:
h-east
2023-09-28 22:18:19 +02:00
committed by Christian Brabandt
parent 03ca4002c1
commit db38552dcd
6 changed files with 29 additions and 2 deletions

View File

@@ -320,6 +320,16 @@ get_function_args(
++p;
char_u *argend = p;
// object variable this. can be used only in a constructor
if (STRNCMP(eap->arg, "new", 3) != 0)
{
c = *argend;
*argend = NUL;
semsg(_(e_cannot_use_an_object_variable_except_with_the_new_method_str), arg);
*argend = c;
break;
}
if (*skipwhite(p) == '=')
{
char_u *defval = skipwhite(skipwhite(p) + 1);