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.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 8144993..7d46f35 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1113,8 +1113,10 @@
     typval_T	argv[MAX_FUNC_ARGS + 1];
 
     fi = find_internal_func(name);
-    if (fi < 0 || global_functions[fi].f_argtype == 0)
+    if (fi < 0)
 	return ERROR_UNKNOWN;
+    if (global_functions[fi].f_argtype == 0)
+	return ERROR_NOTMETHOD;
     if (argcount + 1 < global_functions[fi].f_min_argc)
 	return ERROR_TOOFEW;
     if (argcount + 1 > global_functions[fi].f_max_argc)
diff --git a/src/testdir/test_method.vim b/src/testdir/test_method.vim
index 98c07fe..ba13bb4 100644
--- a/src/testdir/test_method.vim
+++ b/src/testdir/test_method.vim
@@ -134,3 +134,7 @@
   " todo: lambda accepts more arguments than it consumes
   " call assert_fails('eval "text"->{x -> x .. " extended"}("more")', 'E99:')
 endfunc
+
+func Test_method_not_supported()
+  call assert_fails('eval 123->changenr()', 'E276:')
+endfunc
diff --git a/src/userfunc.c b/src/userfunc.c
index 2bdc2b1..fd25090 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1678,6 +1678,11 @@
 	    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;
@@ -1685,15 +1690,18 @@
 		    emsg_funcname((char *)e_toomanyarg, name);
 		    break;
 	    case ERROR_TOOFEW:
-		    emsg_funcname(N_("E119: Not enough arguments for function: %s"),
+		    emsg_funcname(
+			     N_("E119: Not enough arguments for function: %s"),
 									name);
 		    break;
 	    case ERROR_SCRIPT:
-		    emsg_funcname(N_("E120: Using <SID> not in a script context: %s"),
+		    emsg_funcname(
+			   N_("E120: Using <SID> not in a script context: %s"),
 									name);
 		    break;
 	    case ERROR_DICT:
-		    emsg_funcname(N_("E725: Calling dict function without Dictionary: %s"),
+		    emsg_funcname(
+		      N_("E725: Calling dict function without Dictionary: %s"),
 									name);
 		    break;
 	}
diff --git a/src/version.c b/src/version.c
index ba37a41..3adfdd0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1863,
+/**/
     1862,
 /**/
     1861,
diff --git a/src/vim.h b/src/vim.h
index 1011be7..4107f6b 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -2518,6 +2518,7 @@
 #define ERROR_NONE	5
 #define ERROR_OTHER	6
 #define ERROR_DELETED	7
+#define ERROR_NOTMETHOD	8   // function cannot be used as a method
 
 /* flags for find_name_end() */
 #define FNE_INCL_BR	1	/* include [] in name */