diff --git a/src/proto/cmdexpand.pro b/src/proto/cmdexpand.pro
index 395eaa6..100c23d 100644
--- a/src/proto/cmdexpand.pro
+++ b/src/proto/cmdexpand.pro
@@ -9,12 +9,12 @@
 char_u *ExpandOne(expand_T *xp, char_u *str, char_u *orig, int options, int mode);
 void ExpandInit(expand_T *xp);
 void ExpandCleanup(expand_T *xp);
-int ExpandGeneric(char_u *pat, expand_T *xp, regmatch_T *regmatch, char_u ***matches, int *numMatches, char_u *((*func)(expand_T *, int)), int escaped);
 int showmatches(expand_T *xp, int wildmenu);
 char_u *addstar(char_u *fname, int len, int context);
 void set_expand_context(expand_T *xp);
 void set_cmd_context(expand_T *xp, char_u *str, int len, int col, int use_ccline);
 int expand_cmdline(expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches);
+int ExpandGeneric(char_u *pat, expand_T *xp, regmatch_T *regmatch, char_u ***matches, int *numMatches, char_u *((*func)(expand_T *, int)), int escaped);
 void globpath(char_u *path, char_u *file, garray_T *ga, int expand_options, int dirs);
 int wildmenu_translate_key(cmdline_info_T *cclp, int key, expand_T *xp, int did_wild_list);
 int wildmenu_process_key(cmdline_info_T *cclp, int key, expand_T *xp);
diff --git a/src/proto/debugger.pro b/src/proto/debugger.pro
index b20f36d..5ff23eb 100644
--- a/src/proto/debugger.pro
+++ b/src/proto/debugger.pro
@@ -10,6 +10,6 @@
 void ex_breakdel(exarg_T *eap);
 void ex_breaklist(exarg_T *eap);
 linenr_T dbg_find_breakpoint(int file, char_u *fname, linenr_T after);
-int has_profiling(int file, char_u *fname, int *fp, hash_T *hash);
+int has_profiling(int file, char_u *fname, int *fp, hash_T *hashp);
 void dbg_breakpoint(char_u *name, linenr_T lnum);
 /* vim: set ft=c : */
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index d94e8ad..47fd83d 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -7,7 +7,7 @@
 int eval_to_bool(char_u *arg, int *error, exarg_T *eap, int skip, int use_simple_function);
 int eval_expr_valid_arg(typval_T *tv);
 funccall_T *eval_expr_get_funccal(typval_T *expr, typval_T *rettv);
-int eval_expr_typval(typval_T *expr, int prefer_func, typval_T *argv, int argc, funccall_T *fc_arg, typval_T *rettv);
+int eval_expr_typval(typval_T *expr, int want_func, typval_T *argv, int argc, funccall_T *fc_arg, typval_T *rettv);
 int eval_expr_to_bool(typval_T *expr, int *error);
 char_u *eval_to_string_skip(char_u *arg, exarg_T *eap, int skip);
 void init_evalarg(evalarg_T *evalarg);
diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro
index 459cdb9..e85cf20 100644
--- a/src/proto/gui_gtk_x11.pro
+++ b/src/proto/gui_gtk_x11.pro
@@ -37,7 +37,7 @@
 GuiFont gui_mch_get_font(char_u *name, int report_error);
 char_u *gui_mch_get_fontname(GuiFont font, char_u *name);
 void gui_mch_free_font(GuiFont font);
-void gui_mch_expand_font(optexpand_T *args, void *param, int (*cb)(char_u *val));
+void gui_mch_expand_font(optexpand_T *args, void *param, int (*add_match)(char_u *val));
 guicolor_T gui_mch_get_color(char_u *name);
 guicolor_T gui_mch_get_rgb_color(int r, int g, int b);
 void gui_mch_set_fg_color(guicolor_T color);
diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro
index fecfcb1..cfd1982 100644
--- a/src/proto/optionstr.pro
+++ b/src/proto/optionstr.pro
@@ -10,186 +10,186 @@
 void set_string_option_direct_in_buf(buf_T *buf, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid);
 char *set_string_option(int opt_idx, char_u *value, int opt_flags, char *errbuf, size_t errbuflen);
 char *did_set_ambiwidth(optset_T *args);
+int expand_set_ambiwidth(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_background(optset_T *args);
+int expand_set_background(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_backspace(optset_T *args);
+int expand_set_backspace(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_backupcopy(optset_T *args);
+int expand_set_backupcopy(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_backupext_or_patchmode(optset_T *args);
 char *did_set_belloff(optset_T *args);
+int expand_set_belloff(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_breakindentopt(optset_T *args);
+int expand_set_breakindentopt(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_browsedir(optset_T *args);
+int expand_set_browsedir(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_bufhidden(optset_T *args);
+int expand_set_bufhidden(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_buftype(optset_T *args);
+int expand_set_buftype(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_casemap(optset_T *args);
+int expand_set_casemap(optexpand_T *args, int *numMatches, char_u ***matches);
+int expand_set_clipboard(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_chars_option(optset_T *args);
+int expand_set_chars_option(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_cinoptions(optset_T *args);
 char *did_set_colorcolumn(optset_T *args);
 char *did_set_comments(optset_T *args);
 char *did_set_commentstring(optset_T *args);
 char *did_set_complete(optset_T *args);
+int expand_set_complete(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_completeopt(optset_T *args);
+int expand_set_completeopt(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_completepopup(optset_T *args);
 char *did_set_completeslash(optset_T *args);
+int expand_set_completeslash(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_concealcursor(optset_T *args);
+int expand_set_concealcursor(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_cpoptions(optset_T *args);
+int expand_set_cpoptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_cryptkey(optset_T *args);
 char *did_set_cryptmethod(optset_T *args);
+int expand_set_cryptmethod(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_cscopequickfix(optset_T *args);
 char *did_set_cursorlineopt(optset_T *args);
+int expand_set_cursorlineopt(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_debug(optset_T *args);
+int expand_set_debug(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_diffopt(optset_T *args);
+int expand_set_diffopt(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_display(optset_T *args);
+int expand_set_display(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_eadirection(optset_T *args);
+int expand_set_eadirection(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_encoding(optset_T *args);
+int expand_set_encoding(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_eventignore(optset_T *args);
+int expand_set_eventignore(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_fileformat(optset_T *args);
+int expand_set_fileformat(optexpand_T *args, int *numMatches, char_u ***matches);
+char_u *get_fileformat_name(expand_T *xp, int idx);
 char *did_set_fileformats(optset_T *args);
 char *did_set_filetype_or_syntax(optset_T *args);
 char *did_set_foldclose(optset_T *args);
+int expand_set_foldclose(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_foldexpr(optset_T *args);
 char *did_set_foldignore(optset_T *args);
 char *did_set_foldmarker(optset_T *args);
 char *did_set_foldmethod(optset_T *args);
+int expand_set_foldmethod(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_foldopen(optset_T *args);
+int expand_set_foldopen(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_formatoptions(optset_T *args);
+int expand_set_formatoptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_guicursor(optset_T *args);
 char *did_set_guifont(optset_T *args);
+int expand_set_guifont(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_guifontset(optset_T *args);
 char *did_set_guifontwide(optset_T *args);
 char *did_set_guiligatures(optset_T *args);
 char *did_set_guioptions(optset_T *args);
+int expand_set_guioptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_guitablabel(optset_T *args);
 char *did_set_helpfile(optset_T *args);
 char *did_set_helplang(optset_T *args);
 char *did_set_highlight(optset_T *args);
+int expand_set_highlight(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_iconstring(optset_T *args);
 char *did_set_imactivatekey(optset_T *args);
 char *did_set_isopt(optset_T *args);
 char *did_set_jumpoptions(optset_T *args);
+int expand_set_jumpoptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_keymap(optset_T *args);
 char *did_set_keymodel(optset_T *args);
+int expand_set_keymodel(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_keyprotocol(optset_T *args);
+int expand_set_keyprotocol(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_lispoptions(optset_T *args);
+int expand_set_lispoptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_matchpairs(optset_T *args);
 char *did_set_mkspellmem(optset_T *args);
 char *did_set_mouse(optset_T *args);
+int expand_set_mouse(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_mousemodel(optset_T *args);
+int expand_set_mousemodel(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_mouseshape(optset_T *args);
 char *did_set_nrformats(optset_T *args);
+int expand_set_nrformats(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_optexpr(optset_T *args);
 char *did_set_pastetoggle(optset_T *args);
 char *did_set_previewpopup(optset_T *args);
+int expand_set_popupoption(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_printencoding(optset_T *args);
+int expand_set_printoptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_renderoptions(optset_T *args);
 char *did_set_rightleftcmd(optset_T *args);
+int expand_set_rightleftcmd(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_rulerformat(optset_T *args);
 char *did_set_scrollopt(optset_T *args);
+int expand_set_scrollopt(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_selection(optset_T *args);
+int expand_set_selection(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_selectmode(optset_T *args);
+int expand_set_selectmode(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_sessionoptions(optset_T *args);
+int expand_set_sessionoptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_shortmess(optset_T *args);
+int expand_set_shortmess(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_showbreak(optset_T *args);
 char *did_set_showcmdloc(optset_T *args);
+int expand_set_showcmdloc(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_signcolumn(optset_T *args);
+int expand_set_signcolumn(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_spellcapcheck(optset_T *args);
 char *did_set_spellfile(optset_T *args);
 char *did_set_spelllang(optset_T *args);
 char *did_set_spelloptions(optset_T *args);
+int expand_set_spelloptions(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_spellsuggest(optset_T *args);
+int expand_set_spellsuggest(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_splitkeep(optset_T *args);
+int expand_set_splitkeep(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_statusline(optset_T *args);
 char *did_set_swapsync(optset_T *args);
+int expand_set_swapsync(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_switchbuf(optset_T *args);
+int expand_set_switchbuf(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_tabline(optset_T *args);
 char *did_set_tagcase(optset_T *args);
+int expand_set_tagcase(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_term(optset_T *args);
 char *did_set_term_option(optset_T *args);
 char *did_set_termwinkey(optset_T *args);
 char *did_set_termwinsize(optset_T *args);
 char *did_set_termwintype(optset_T *args);
+int expand_set_termwintype(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_titlestring(optset_T *args);
 char *did_set_toolbar(optset_T *args);
+int expand_set_toolbar(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_toolbariconsize(optset_T *args);
+int expand_set_toolbariconsize(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_ttymouse(optset_T *args);
+int expand_set_ttymouse(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_varsofttabstop(optset_T *args);
 char *did_set_vartabstop(optset_T *args);
 char *did_set_verbosefile(optset_T *args);
 char *did_set_viewoptions(optset_T *args);
 char *did_set_viminfo(optset_T *args);
 char *did_set_virtualedit(optset_T *args);
-char *did_set_whichwrap(optset_T *args);
-char *did_set_wildmode(optset_T *args);
-char *did_set_wildoptions(optset_T *args);
-char *did_set_winaltkeys(optset_T *args);
-char *did_set_wincolor(optset_T *args);
-char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char_u *value, char *errbuf, size_t errbuflen, int opt_flags, set_op_T op, int *value_checked);
-int expand_set_ambiwidth(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_background(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_backspace(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_backupcopy(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_belloff(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_breakindentopt(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_browsedir(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_bufhidden(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_buftype(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_casemap(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_chars_option(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_clipboard(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_complete(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_completeopt(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_completeslash(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_concealcursor(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_cpoptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_cryptmethod(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_cursorlineopt(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_debug(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_diffopt(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_display(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_eadirection(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_encoding(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_eventignore(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_fileformat(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_foldclose(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_foldmethod(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_foldopen(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_formatoptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_guifont(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_guioptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_highlight(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_jumpoptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_keymodel(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_keyprotocol(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_lispoptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_mouse(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_mousemodel(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_nrformats(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_popupoption(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_printoptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_rightleftcmd(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_scrollopt(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_selection(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_selectmode(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_sessionoptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_shortmess(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_showcmdloc(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_signcolumn(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_spelloptions(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_spellsuggest(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_splitkeep(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_swapsync(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_switchbuf(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_tagcase(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_termwintype(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_toolbar(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_toolbariconsize(optexpand_T *args, int *numMatches, char_u ***matches);
-int expand_set_ttymouse(optexpand_T *args, int *numMatches, char_u ***matches);
 int expand_set_virtualedit(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_whichwrap(optset_T *args);
 int expand_set_whichwrap(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_wildmode(optset_T *args);
 int expand_set_wildmode(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_wildoptions(optset_T *args);
 int expand_set_wildoptions(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_winaltkeys(optset_T *args);
 int expand_set_winaltkeys(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_wincolor(optset_T *args);
 int expand_set_wincolor(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char_u *value, char *errbuf, size_t errbuflen, int opt_flags, set_op_T op, int *value_checked);
 int check_ff_value(char_u *p);
-char_u *get_fileformat_name(expand_T *xp, int idx);
 void save_clear_shm_value(void);
 void restore_shm_value(void);
 /* vim: set ft=c : */
diff --git a/src/proto/os_mswin.pro b/src/proto/os_mswin.pro
index 9f534e0..17a9ba2 100644
--- a/src/proto/os_mswin.pro
+++ b/src/proto/os_mswin.pro
@@ -50,7 +50,7 @@
 void serverProcessPendingMessages(void);
 char *charset_id2name(int id);
 char *quality_id2name(DWORD id);
+void gui_mch_expand_font(optexpand_T *args, void *param, int (*add_match)(char_u *val));
 int get_logfont(LOGFONTW *lf, char_u *name, HDC printer_dc, int verbose);
-void gui_mch_expand_font(optexpand_T *args, void *param, int (*cb)(char_u *val));
 void channel_init_winsock(void);
 /* vim: set ft=c : */
diff --git a/src/proto/screen.pro b/src/proto/screen.pro
index d5792fa..b4f54a2 100644
--- a/src/proto/screen.pro
+++ b/src/proto/screen.pro
@@ -57,7 +57,7 @@
 int screen_screenrow(void);
 char *set_fillchars_option(win_T *wp, char_u *val, int apply);
 char *set_listchars_option(win_T *wp, char_u *val, int apply);
-char_u * get_fillchars_name(expand_T *xp, int idx);
-char_u * get_listchars_name(expand_T *xp, int idx);
+char_u *get_fillchars_name(expand_T *xp, int idx);
+char_u *get_listchars_name(expand_T *xp, int idx);
 char *check_chars_options(void);
 /* vim: set ft=c : */
diff --git a/src/proto/term.pro b/src/proto/term.pro
index e95befe..b83df86 100644
--- a/src/proto/term.pro
+++ b/src/proto/term.pro
@@ -3,9 +3,9 @@
 guicolor_T termgui_mch_get_rgb(guicolor_T color);
 void init_term_props(int all);
 void f_terminalprops(typval_T *argvars, typval_T *rettv);
+void apply_keyprotocol(char_u *term, keyprot_T prot);
 void set_color_count(int nr);
 keyprot_T match_keyprotocol(char_u *term);
-void apply_keyprotocol(char_u *term, keyprot_T prot);
 int set_termname(char_u *term);
 void free_cur_term(void);
 void getlinecol(long *cp, long *rp);
diff --git a/src/proto/vim9class.pro b/src/proto/vim9class.pro
index 99a14cc..f1b6360 100644
--- a/src/proto/vim9class.pro
+++ b/src/proto/vim9class.pro
@@ -15,7 +15,6 @@
 ocmember_T *object_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
 int object_method_idx(class_T *cl, char_u *name, size_t namelen);
 ocmember_T *member_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
-void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl);
 ufunc_T *method_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
 int inside_class(cctx_T *cctx_arg, class_T *cl);
 int oc_var_check_ro(class_T *cl, ocmember_T *m);
@@ -29,8 +28,9 @@
 void object_unref(object_T *obj);
 int object_free_nonref(int copyID);
 void object_free_items(int copyID);
+void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl);
 void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
 void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
-void f_instanceof(typval_T *argvars, typval_T *rettv);
 int class_instance_of(class_T *cl, class_T *other_cl);
+void f_instanceof(typval_T *argvars, typval_T *rettv);
 /* vim: set ft=c : */
diff --git a/src/proto/vim9execute.pro b/src/proto/vim9execute.pro
index 15beb75..e08e436 100644
--- a/src/proto/vim9execute.pro
+++ b/src/proto/vim9execute.pro
@@ -4,7 +4,7 @@
 int funcstack_check_refcount(funcstack_T *funcstack);
 int set_ref_in_funcstacks(int copyID);
 int in_def_function(void);
-int fill_exec_lval_root(lval_root_T *lr);
+int fill_exec_lval_root(lval_root_T *root);
 ectx_T *clear_current_ectx(void);
 void restore_current_ectx(ectx_T *ectx);
 int add_defer_function(char_u *name, int argcount, typval_T *argvars);
diff --git a/src/proto/vim9instr.pro b/src/proto/vim9instr.pro
index 5878627..0fb449d 100644
--- a/src/proto/vim9instr.pro
+++ b/src/proto/vim9instr.pro
@@ -18,6 +18,7 @@
 int generate_COND2BOOL(cctx_T *cctx);
 int generate_TYPECHECK(cctx_T *cctx, type_T *expected, int number_ok, int offset, int is_var, int argidx);
 int generate_SETTYPE(cctx_T *cctx, type_T *expected);
+int generate_PUSHOBJ(cctx_T *cctx);
 int generate_tv_PUSH(cctx_T *cctx, typval_T *tv);
 int generate_PUSHNR(cctx_T *cctx, varnumber_T number);
 int generate_PUSHBOOL(cctx_T *cctx, varnumber_T number);
@@ -28,7 +29,6 @@
 int generate_PUSHJOB(cctx_T *cctx);
 int generate_PUSHBLOB(cctx_T *cctx, blob_T *blob);
 int generate_PUSHFUNC(cctx_T *cctx, char_u *name, type_T *type, int may_prefix);
-int generate_PUSHOBJ(cctx_T *cctx);
 int generate_AUTOLOAD(cctx_T *cctx, char_u *name, type_T *type);
 int generate_GETITEM(cctx_T *cctx, int index, int with_op);
 int generate_SLICE(cctx_T *cctx, int count);
diff --git a/src/version.c b/src/version.c
index 0a118a9..ee9e004 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2190,
+/**/
     2189,
 /**/
     2188,
