Merge: model: add `MType::as_notnullable` to remove the `nullable` modifier
[nit.git] / c_src / header_dependency.sep.1.c
1 #include "header_dependency.sep.0.h"
2 /* method header_dependency#ToolContext#header_dependancy_phase for (self: ToolContext): Phase */
3 val* header_dependency__ToolContext__header_dependancy_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_header_dependency__ToolContext___64dheader_dependancy_phase].val; /* @header_dependancy_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @header_dependancy_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/header_dependency.nit", 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method header_dependency#ToolContext#header_dependancy_phase for (self: Object): Phase */
17 val* VIRTUAL_header_dependency__ToolContext__header_dependancy_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = header_dependency__ToolContext__header_dependancy_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method header_dependency#ToolContext#header_dependancy_phase= for (self: ToolContext, Phase) */
26 void header_dependency__ToolContext__header_dependancy_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_header_dependency__ToolContext___64dheader_dependancy_phase].val = p0; /* @header_dependancy_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method header_dependency#ToolContext#header_dependancy_phase= for (self: Object, Phase) */
31 void VIRTUAL_header_dependency__ToolContext__header_dependancy_phase_61d(val* self, val* p0) {
32 header_dependency__ToolContext__header_dependancy_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method header_dependency#AModule#has_public_c_header for (self: AModule): Bool */
36 short int header_dependency__AModule__has_public_c_header(val* self) {
37 short int var /* : Bool */;
38 val* var1 /* : ANodes[AExternCodeBlock] */;
39 val* var2 /* : Iterator[nullable Object] */;
40 short int var3 /* : Bool */;
41 val* var4 /* : nullable Object */;
42 val* var_code_block /* var code_block: AExternCodeBlock */;
43 short int var5 /* : Bool */;
44 short int var6 /* : Bool */;
45 short int var7 /* : Bool */;
46 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AModule__n_extern_code_blocks]))(self) /* n_extern_code_blocks on <self:AModule>*/;
47 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:ANodes[AExternCodeBlock]>*/;
48 for(;;) {
49 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
50 if(!var3) break;
51 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
52 var_code_block = var4;
53 var5 = ((short int (*)(val*))(var_code_block->class->vft[COLOR_c__AExternCodeBlock__is_c_header]))(var_code_block) /* is_c_header on <var_code_block:AExternCodeBlock>*/;
54 if (var5){
55 var6 = 1;
56 var = var6;
57 goto RET_LABEL;
58 } else {
59 }
60 CONTINUE_label: (void)0;
61 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
62 }
63 BREAK_label: (void)0;
64 var7 = 0;
65 var = var7;
66 goto RET_LABEL;
67 RET_LABEL:;
68 return var;
69 }
70 /* method header_dependency#AModule#has_public_c_header for (self: Object): Bool */
71 short int VIRTUAL_header_dependency__AModule__has_public_c_header(val* self) {
72 short int var /* : Bool */;
73 short int var1 /* : Bool */;
74 var1 = header_dependency__AModule__has_public_c_header(self);
75 var = var1;
76 RET_LABEL:;
77 return var;
78 }
79 /* method header_dependency#MModule#header_dependencies_cache for (self: MModule): nullable Array[MModule] */
80 val* header_dependency__MModule__header_dependencies_cache(val* self) {
81 val* var /* : nullable Array[MModule] */;
82 val* var1 /* : nullable Array[MModule] */;
83 var1 = self->attrs[COLOR_header_dependency__MModule___64dheader_dependencies_cache].val; /* @header_dependencies_cache on <self:MModule> */
84 var = var1;
85 RET_LABEL:;
86 return var;
87 }
88 /* method header_dependency#MModule#header_dependencies_cache for (self: Object): nullable Array[MModule] */
89 val* VIRTUAL_header_dependency__MModule__header_dependencies_cache(val* self) {
90 val* var /* : nullable Array[MModule] */;
91 val* var1 /* : nullable Array[MModule] */;
92 var1 = header_dependency__MModule__header_dependencies_cache(self);
93 var = var1;
94 RET_LABEL:;
95 return var;
96 }
97 /* method header_dependency#MModule#header_dependencies_cache= for (self: MModule, nullable Array[MModule]) */
98 void header_dependency__MModule__header_dependencies_cache_61d(val* self, val* p0) {
99 self->attrs[COLOR_header_dependency__MModule___64dheader_dependencies_cache].val = p0; /* @header_dependencies_cache on <self:MModule> */
100 RET_LABEL:;
101 }
102 /* method header_dependency#MModule#header_dependencies_cache= for (self: Object, nullable Array[MModule]) */
103 void VIRTUAL_header_dependency__MModule__header_dependencies_cache_61d(val* self, val* p0) {
104 header_dependency__MModule__header_dependencies_cache_61d(self, p0);
105 RET_LABEL:;
106 }
107 /* method header_dependency#MModule#header_dependencies for (self: MModule): Array[MModule] */
108 val* header_dependency__MModule__header_dependencies(val* self) {
109 val* var /* : Array[MModule] */;
110 val* var1 /* : nullable Array[MModule] */;
111 val* var_cache /* var cache: nullable Array[MModule] */;
112 val* var2 /* : null */;
113 short int var3 /* : Bool */;
114 var1 = ((val* (*)(val*))(self->class->vft[COLOR_header_dependency__MModule__header_dependencies_cache]))(self) /* header_dependencies_cache on <self:MModule>*/;
115 var_cache = var1;
116 var2 = NULL;
117 if (var_cache == NULL) {
118 var3 = 0; /* is null */
119 } else {
120 var3 = 1; /* arg is null and recv is not */
121 }
122 if (!var3) {
123 fprintf(stderr, "Runtime error: %s", "Assert failed");
124 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/header_dependency.nit", 40);
125 show_backtrace(1);
126 }
127 var = var_cache;
128 goto RET_LABEL;
129 RET_LABEL:;
130 return var;
131 }
132 /* method header_dependency#MModule#header_dependencies for (self: Object): Array[MModule] */
133 val* VIRTUAL_header_dependency__MModule__header_dependencies(val* self) {
134 val* var /* : Array[MModule] */;
135 val* var1 /* : Array[MModule] */;
136 var1 = header_dependency__MModule__header_dependencies(self);
137 var = var1;
138 RET_LABEL:;
139 return var;
140 }
141 /* method header_dependency#MModule#compute_header_dependencies for (self: MModule, HeaderDependancyPhase) */
142 void header_dependency__MModule__compute_header_dependencies(val* self, val* p0) {
143 val* var_v /* var v: HeaderDependancyPhase */;
144 val* var /* : nullable Array[MModule] */;
145 val* var1 /* : null */;
146 short int var2 /* : Bool */;
147 val* var3 /* : Array[MModule] */;
148 val* var_header_dependencies /* var header_dependencies: Array[MModule] */;
149 val* var4 /* : POSetElement[MModule] */;
150 val* var5 /* : Collection[Object] */;
151 val* var6 /* : Iterator[nullable Object] */;
152 short int var7 /* : Bool */;
153 val* var8 /* : nullable Object */;
154 val* var_m /* var m: MModule */;
155 val* var9 /* : Array[MModule] */;
156 val* var_hd /* var hd: Array[MModule] */;
157 short int var10 /* : Bool */;
158 short int var11 /* : Bool */;
159 val* var12 /* : ToolContext */;
160 val* var13 /* : ModelBuilder */;
161 val* var14 /* : HashMap[MModule, AModule] */;
162 val* var15 /* : nullable Object */;
163 val* var_amodule /* var amodule: AModule */;
164 short int var16 /* : Bool */;
165 var_v = p0;
166 var = ((val* (*)(val*))(self->class->vft[COLOR_header_dependency__MModule__header_dependencies_cache]))(self) /* header_dependencies_cache on <self:MModule>*/;
167 var1 = NULL;
168 if (var == NULL) {
169 var2 = 0; /* is null */
170 } else {
171 var2 = 1; /* arg is null and recv is not */
172 }
173 if (var2){
174 goto RET_LABEL;
175 } else {
176 }
177 var3 = NEW_array__Array(&type_array__Arraymmodule__MModule);
178 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[MModule]>*/;
179 var_header_dependencies = var3;
180 var4 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__in_importation]))(self) /* in_importation on <self:MModule>*/;
181 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var4) /* direct_greaters on <var4:POSetElement[MModule]>*/;
182 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Collection[Object](Collection[MModule])>*/;
183 for(;;) {
184 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
185 if(!var7) break;
186 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
187 var_m = var8;
188 ((void (*)(val*, val*))(var_m->class->vft[COLOR_header_dependency__MModule__compute_header_dependencies]))(var_m, var_v) /* compute_header_dependencies on <var_m:MModule>*/;
189 var9 = ((val* (*)(val*))(var_m->class->vft[COLOR_header_dependency__MModule__header_dependencies]))(var_m) /* header_dependencies on <var_m:MModule>*/;
190 var_hd = var9;
191 var10 = ((short int (*)(val*))(var_hd->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_hd) /* is_empty on <var_hd:Array[MModule]>*/;
192 var11 = !var10;
193 if (var11){
194 ((void (*)(val*, val*))(var_header_dependencies->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_header_dependencies, var_hd) /* add_all on <var_header_dependencies:Array[MModule]>*/;
195 } else {
196 }
197 var12 = ((val* (*)(val*))(var_v->class->vft[COLOR_phase__Phase__toolcontext]))(var_v) /* toolcontext on <var_v:HeaderDependancyPhase>*/;
198 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var12) /* modelbuilder on <var12:ToolContext>*/;
199 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule]))(var13) /* mmodule2nmodule on <var13:ModelBuilder>*/;
200 var15 = ((val* (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var14, var_m) /* [] on <var14:HashMap[MModule, AModule]>*/;
201 var_amodule = var15;
202 var16 = ((short int (*)(val*))(var_amodule->class->vft[COLOR_header_dependency__AModule__has_public_c_header]))(var_amodule) /* has_public_c_header on <var_amodule:AModule>*/;
203 if (var16){
204 ((void (*)(val*, val*))(var_header_dependencies->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_header_dependencies, var_m) /* add on <var_header_dependencies:Array[MModule]>*/;
205 } else {
206 }
207 CONTINUE_label: (void)0;
208 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
209 }
210 BREAK_label: (void)0;
211 ((void (*)(val*, val*))(self->class->vft[COLOR_header_dependency__MModule__header_dependencies_cache_61d]))(self, var_header_dependencies) /* header_dependencies_cache= on <self:MModule>*/;
212 RET_LABEL:;
213 }
214 /* method header_dependency#MModule#compute_header_dependencies for (self: Object, HeaderDependancyPhase) */
215 void VIRTUAL_header_dependency__MModule__compute_header_dependencies(val* self, val* p0) {
216 header_dependency__MModule__compute_header_dependencies(self, p0);
217 RET_LABEL:;
218 }
219 /* method header_dependency#HeaderDependancyPhase#process_nmodule for (self: HeaderDependancyPhase, AModule) */
220 void header_dependency__HeaderDependancyPhase__process_nmodule(val* self, val* p0) {
221 val* var_nmodule /* var nmodule: AModule */;
222 val* var /* : nullable MModule */;
223 val* var_mmodule /* var mmodule: nullable MModule */;
224 var_nmodule = p0;
225 var = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_nmodule) /* mmodule on <var_nmodule:AModule>*/;
226 var_mmodule = var;
227 if (var_mmodule == NULL) {
228 fprintf(stderr, "Runtime error: %s", "Receiver is null");
229 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/header_dependency.nit", 75);
230 show_backtrace(1);
231 } else {
232 ((void (*)(val*, val*))(var_mmodule->class->vft[COLOR_header_dependency__MModule__compute_header_dependencies]))(var_mmodule, self) /* compute_header_dependencies on <var_mmodule:nullable MModule>*/;
233 }
234 RET_LABEL:;
235 }
236 /* method header_dependency#HeaderDependancyPhase#process_nmodule for (self: Object, AModule) */
237 void VIRTUAL_header_dependency__HeaderDependancyPhase__process_nmodule(val* self, val* p0) {
238 header_dependency__HeaderDependancyPhase__process_nmodule(self, p0);
239 RET_LABEL:;
240 }