Skip to content

Commit a7cc9e6

Browse files
committed
patch 8.2.1405: Vim9: vim9compile.c is getting too big
Problem: Vim9: vim9compile.c is getting too big. Solution: Split off type code to vim9type.c.
1 parent b3ca982 commit a7cc9e6

10 files changed

Lines changed: 956 additions & 901 deletions

File tree

Filelist

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ SRC_ALL = \
149149
src/vim9compile.c \
150150
src/vim9execute.c \
151151
src/vim9script.c \
152+
src/vim9type.c \
152153
src/viminfo.c \
153154
src/winclip.c \
154155
src/window.c \
@@ -304,6 +305,7 @@ SRC_ALL = \
304305
src/proto/vim9compile.pro \
305306
src/proto/vim9execute.pro \
306307
src/proto/vim9script.pro \
308+
src/proto/vim9type.pro \
307309
src/proto/viminfo.pro \
308310
src/proto/winclip.pro \
309311
src/proto/window.pro \

src/Make_cyg_ming.mak

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,7 @@ OBJ = \
806806
$(OUTDIR)/vim9compile.o \
807807
$(OUTDIR)/vim9execute.o \
808808
$(OUTDIR)/vim9script.o \
809+
$(OUTDIR)/vim9type.o \
809810
$(OUTDIR)/viminfo.o \
810811
$(OUTDIR)/winclip.o \
811812
$(OUTDIR)/window.o
@@ -1177,6 +1178,8 @@ $(OUTDIR)/vim9execute.o: vim9execute.c $(INCL) version.h
11771178

11781179
$(OUTDIR)/vim9script.o: vim9script.c $(INCL) version.h
11791180

1181+
$(OUTDIR)/vim9type.o: vim9type.c $(INCL) version.h
1182+
11801183
$(OUTDIR)/viminfo.o: viminfo.c $(INCL) version.h
11811184

11821185
$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp gui_dwrite.h

src/Make_mvc.mak

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,7 @@ OBJ = \
825825
$(OUTDIR)\vim9compile.obj \
826826
$(OUTDIR)\vim9execute.obj \
827827
$(OUTDIR)\vim9script.obj \
828+
$(OUTDIR)\vim9type.obj \
828829
$(OUTDIR)\viminfo.obj \
829830
$(OUTDIR)\winclip.obj \
830831
$(OUTDIR)\window.obj \
@@ -1799,6 +1800,8 @@ $(OUTDIR)/vim9execute.obj: $(OUTDIR) vim9execute.c $(INCL)
17991800

18001801
$(OUTDIR)/vim9script.obj: $(OUTDIR) vim9script.c $(INCL)
18011802

1803+
$(OUTDIR)/vim9type.obj: $(OUTDIR) vim9type.c $(INCL)
1804+
18021805
$(OUTDIR)/viminfo.obj: $(OUTDIR) viminfo.c $(INCL) version.h
18031806

18041807
$(OUTDIR)/window.obj: $(OUTDIR) window.c $(INCL)
@@ -1998,6 +2001,7 @@ proto.h: \
19982001
proto/vim9compile.pro \
19992002
proto/vim9execute.pro \
20002003
proto/vim9script.pro \
2004+
proto/vim9type.pro \
20012005
proto/viminfo.pro \
20022006
proto/window.pro \
20032007
$(SOUND_PRO) \

src/Makefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,6 +1702,7 @@ BASIC_SRC = \
17021702
vim9compile.c \
17031703
vim9execute.c \
17041704
vim9script.c \
1705+
vim9type.c \
17051706
viminfo.c \
17061707
window.c \
17071708
bufwrite.c \
@@ -1851,6 +1852,7 @@ OBJ_COMMON = \
18511852
objects/vim9compile.o \
18521853
objects/vim9execute.o \
18531854
objects/vim9script.o \
1855+
objects/vim9type.o \
18541856
objects/viminfo.o \
18551857
objects/window.o \
18561858
objects/bufwrite.o \
@@ -2032,6 +2034,7 @@ PRO_AUTO = \
20322034
vim9compile.pro \
20332035
vim9execute.pro \
20342036
vim9script.pro \
2037+
vim9type.pro \
20352038
viminfo.pro \
20362039
window.pro \
20372040
$(ALL_GUI_PRO) \
@@ -3563,6 +3566,9 @@ objects/vim9execute.o: vim9execute.c
35633566
objects/vim9script.o: vim9script.c
35643567
$(CCC) -o $@ vim9script.c
35653568

3569+
objects/vim9type.o: vim9type.c
3570+
$(CCC) -o $@ vim9type.c
3571+
35663572
objects/viminfo.o: viminfo.c
35673573
$(CCC) -o $@ viminfo.c
35683574

@@ -4192,6 +4198,10 @@ objects/vim9script.o: vim9script.c vim.h protodef.h auto/config.h feature.h \
41924198
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
41934199
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
41944200
proto.h globals.h vim9.h
4201+
objects/vim9type.o: vim9type.c vim.h protodef.h auto/config.h feature.h \
4202+
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
4203+
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
4204+
proto.h globals.h vim9.h
41954205
objects/viminfo.o: viminfo.c vim.h protodef.h auto/config.h feature.h os_unix.h \
41964206
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
41974207
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \

src/proto.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ void mbyte_im_set_active(int active_arg);
237237
# include "vim9compile.pro"
238238
# include "vim9execute.pro"
239239
# include "vim9script.pro"
240+
# include "vim9type.pro"
240241
# endif
241242
# include "window.pro"
242243

src/proto/vim9compile.pro

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
/* vim9compile.c */
22
int check_defined(char_u *p, size_t len, cctx_T *cctx);
3-
void clear_type_list(garray_T *gap);
4-
type_T *typval2type(typval_T *tv, garray_T *type_gap);
5-
type_T *typval2type_vimvar(typval_T *tv, garray_T *type_gap);
6-
int check_typval_type(type_T *expected, typval_T *actual_tv);
7-
int check_type(type_T *expected, type_T *actual, int give_msg);
83
int check_compare_types(exptype_T type, typval_T *tv1, typval_T *tv2);
9-
char_u *skip_type(char_u *start, int optional);
10-
type_T *parse_type(char_u **arg, garray_T *type_gap);
11-
char *vartype_name(vartype_T type);
12-
char *type_name(type_T *type, char **tofree);
134
int get_script_item_idx(int sid, char_u *name, int check_writable);
145
imported_T *find_imported(char_u *name, size_t len, cctx_T *cctx);
156
imported_T *find_imported_in_script(char_u *name, size_t len, int sid);

src/proto/vim9type.pro

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* vim9type.c */
2+
void clear_type_list(garray_T *gap);
3+
type_T *get_list_type(type_T *member_type, garray_T *type_gap);
4+
type_T *get_dict_type(type_T *member_type, garray_T *type_gap);
5+
type_T *alloc_func_type(type_T *ret_type, int argcount, garray_T *type_gap);
6+
type_T *get_func_type(type_T *ret_type, int argcount, garray_T *type_gap);
7+
int func_type_add_arg_types(type_T *functype, int argcount, garray_T *type_gap);
8+
type_T *typval2type(typval_T *tv, garray_T *type_gap);
9+
type_T *typval2type_vimvar(typval_T *tv, garray_T *type_gap);
10+
int check_typval_type(type_T *expected, typval_T *actual_tv);
11+
void type_mismatch(type_T *expected, type_T *actual);
12+
void arg_type_mismatch(type_T *expected, type_T *actual, int argidx);
13+
int check_type(type_T *expected, type_T *actual, int give_msg);
14+
char_u *skip_type(char_u *start, int optional);
15+
type_T *parse_type(char_u **arg, garray_T *type_gap);
16+
void common_type(type_T *type1, type_T *type2, type_T **dest, garray_T *type_gap);
17+
char *vartype_name(vartype_T type);
18+
char *type_name(type_T *type, char **tofree);
19+
/* vim: set ft=c : */

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,8 @@ static char *(features[]) =
754754

755755
static int included_patches[] =
756756
{ /* Add new patch number below this line */
757+
/**/
758+
1405,
757759
/**/
758760
1404,
759761
/**/

0 commit comments

Comments
 (0)