mirror of
https://github.com/neovim/neovim.git
synced 2025-09-11 05:48:17 +00:00
vim-patch:8.1.1863: confusing error when using a builtin function as method
Problem: Confusing error when using a builtin function as method while it
does not support that.
Solution: Add a specific error message.
9174639a82
This commit is contained in:
@@ -199,8 +199,10 @@ int call_internal_method(const char_u *const fname, const int argcount,
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
const VimLFuncDef *const fdef = find_internal_func((const char *)fname);
|
||||
if (fdef == NULL || fdef->base_arg == BASE_NONE) {
|
||||
if (fdef == NULL) {
|
||||
return ERROR_UNKNOWN;
|
||||
} else if (fdef->base_arg == BASE_NONE) {
|
||||
return ERROR_NOTMETHOD;
|
||||
} else if (argcount + 1 < fdef->min_argc) {
|
||||
return ERROR_TOOFEW;
|
||||
} else if (argcount + 1 > fdef->max_argc) {
|
||||
|
@@ -1399,6 +1399,9 @@ static void user_func_error(int error, const char_u *name)
|
||||
case ERROR_UNKNOWN:
|
||||
emsg_funcname(N_("E117: Unknown function: %s"), name);
|
||||
break;
|
||||
case ERROR_NOTMETHOD:
|
||||
emsg_funcname(N_("E276: Cannot use function as a method: %s"), name);
|
||||
break;
|
||||
case ERROR_DELETED:
|
||||
emsg_funcname(N_("E933: Function was deleted: %s"), name);
|
||||
break;
|
||||
|
@@ -28,6 +28,7 @@ typedef enum {
|
||||
ERROR_OTHER,
|
||||
ERROR_BOTH,
|
||||
ERROR_DELETED,
|
||||
ERROR_NOTMETHOD,
|
||||
} FnameTransError;
|
||||
|
||||
/// Used in funcexe_T. Returns the new argcount.
|
||||
|
@@ -140,4 +140,8 @@ func Test_method_lambda()
|
||||
" call assert_fails('eval "text"->{x -> x .. " extended"}("more")', 'E99:')
|
||||
endfunc
|
||||
|
||||
func Test_method_not_supported()
|
||||
call assert_fails('eval 123->changenr()', 'E276:')
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
Reference in New Issue
Block a user