Mercurial > vim
diff src/userfunc.c @ 33025:1d18c7fe609f v9.0.1804
patch 9.0.1804: Vim9: no support for private object methods
Commit: https://github.com/vim/vim/commit/cd7293bf6c358bb0e183582a2927fc03566d29f6
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Sun Aug 27 19:18:23 2023 +0200
patch 9.0.1804: Vim9: no support for private object methods
Problem: Vim9: no support for private object methods
Solution: Add support for private object/class methods
closes: #12920
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 19:30:05 +0200 |
parents | 695b50472e85 |
children | 256febd1cbf0 |
line wrap: on
line diff
--- a/src/userfunc.c +++ b/src/userfunc.c @@ -4369,10 +4369,14 @@ trans_function_name_ext( lead += (int)STRLEN(sid_buf); } } + // The function name must start with an upper case letter (unless it is a + // Vim9 class new() function or a Vim9 class private method) else if (!(flags & TFN_INT) && (builtin_function(lv.ll_name, len) || (vim9script && *lv.ll_name == '_')) - && !((flags & TFN_IN_CLASS) && STRNCMP(lv.ll_name, "new", 3) == 0)) + && !((flags & TFN_IN_CLASS) + && (STRNCMP(lv.ll_name, "new", 3) == 0 + || (*lv.ll_name == '_')))) { semsg(_(vim9script ? e_function_name_must_start_with_capital_str : e_function_name_must_start_with_capital_or_s_str),