Makefile: use `--no-stacktrace` on c_src/nitg to deal with the -lunwind issue on...
[nit.git] / c_src / modelize_property.sep.1.c
1 #include "modelize_property.sep.0.h"
2 /* method modelize_property#ToolContext#modelize_property_phase for (self: ToolContext): Phase */
3 val* modelize_property__ToolContext__modelize_property_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_modelize_property__ToolContext___64dmodelize_property_phase].val; /* @modelize_property_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @modelize_property_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method modelize_property#ToolContext#modelize_property_phase for (self: Object): Phase */
17 val* VIRTUAL_modelize_property__ToolContext__modelize_property_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = modelize_property__ToolContext__modelize_property_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method modelize_property#ToolContext#modelize_property_phase= for (self: ToolContext, Phase) */
26 void modelize_property__ToolContext__modelize_property_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_modelize_property__ToolContext___64dmodelize_property_phase].val = p0; /* @modelize_property_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method modelize_property#ToolContext#modelize_property_phase= for (self: Object, Phase) */
31 void VIRTUAL_modelize_property__ToolContext__modelize_property_phase_61d(val* self, val* p0) {
32 modelize_property__ToolContext__modelize_property_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method modelize_property#ModelizePropertyPhase#process_nmodule for (self: ModelizePropertyPhase, AModule) */
36 void modelize_property__ModelizePropertyPhase__process_nmodule(val* self, val* p0) {
37 val* var_nmodule /* var nmodule: AModule */;
38 val* var /* : ANodes[AClassdef] */;
39 val* var1 /* : Iterator[nullable Object] */;
40 short int var2 /* : Bool */;
41 val* var3 /* : nullable Object */;
42 val* var_nclassdef /* var nclassdef: AClassdef */;
43 val* var4 /* : ToolContext */;
44 val* var5 /* : ModelBuilder */;
45 var_nmodule = p0;
46 var = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__AModule__n_classdefs]))(var_nmodule) /* n_classdefs on <var_nmodule:AModule>*/;
47 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[AClassdef]>*/;
48 for(;;) {
49 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
50 if(!var2) break;
51 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
52 var_nclassdef = var3;
53 var4 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:ModelizePropertyPhase>*/;
54 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var4) /* modelbuilder on <var4:ToolContext>*/;
55 ((void (*)(val*, val*))(var5->class->vft[COLOR_modelize_property__ModelBuilder__build_properties]))(var5, var_nclassdef) /* build_properties on <var5:ModelBuilder>*/;
56 CONTINUE_label: (void)0;
57 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
58 }
59 BREAK_label: (void)0;
60 RET_LABEL:;
61 }
62 /* method modelize_property#ModelizePropertyPhase#process_nmodule for (self: Object, AModule) */
63 void VIRTUAL_modelize_property__ModelizePropertyPhase__process_nmodule(val* self, val* p0) {
64 modelize_property__ModelizePropertyPhase__process_nmodule(self, p0);
65 RET_LABEL:;
66 }
67 /* method modelize_property#ModelBuilder#mpropdef2npropdef for (self: ModelBuilder): HashMap[MPropDef, APropdef] */
68 val* modelize_property__ModelBuilder__mpropdef2npropdef(val* self) {
69 val* var /* : HashMap[MPropDef, APropdef] */;
70 val* var1 /* : HashMap[MPropDef, APropdef] */;
71 var1 = self->attrs[COLOR_modelize_property__ModelBuilder___64dmpropdef2npropdef].val; /* @mpropdef2npropdef on <self:ModelBuilder> */
72 if (var1 == NULL) {
73 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mpropdef2npropdef");
74 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 37);
75 show_backtrace(1);
76 }
77 var = var1;
78 RET_LABEL:;
79 return var;
80 }
81 /* method modelize_property#ModelBuilder#mpropdef2npropdef for (self: Object): HashMap[MPropDef, APropdef] */
82 val* VIRTUAL_modelize_property__ModelBuilder__mpropdef2npropdef(val* self) {
83 val* var /* : HashMap[MPropDef, APropdef] */;
84 val* var1 /* : HashMap[MPropDef, APropdef] */;
85 var1 = modelize_property__ModelBuilder__mpropdef2npropdef(self);
86 var = var1;
87 RET_LABEL:;
88 return var;
89 }
90 /* method modelize_property#ModelBuilder#mpropdef2npropdef= for (self: ModelBuilder, HashMap[MPropDef, APropdef]) */
91 void modelize_property__ModelBuilder__mpropdef2npropdef_61d(val* self, val* p0) {
92 self->attrs[COLOR_modelize_property__ModelBuilder___64dmpropdef2npropdef].val = p0; /* @mpropdef2npropdef on <self:ModelBuilder> */
93 RET_LABEL:;
94 }
95 /* method modelize_property#ModelBuilder#mpropdef2npropdef= for (self: Object, HashMap[MPropDef, APropdef]) */
96 void VIRTUAL_modelize_property__ModelBuilder__mpropdef2npropdef_61d(val* self, val* p0) {
97 modelize_property__ModelBuilder__mpropdef2npropdef_61d(self, p0);
98 RET_LABEL:;
99 }
100 /* method modelize_property#ModelBuilder#build_properties for (self: ModelBuilder, AClassdef) */
101 void modelize_property__ModelBuilder__build_properties(val* self, val* p0) {
102 val* var_nclassdef /* var nclassdef: AClassdef */;
103 short int var /* : Bool */;
104 short int var1 /* : Bool */;
105 val* var2 /* : nullable MClassDef */;
106 val* var_mclassdef /* var mclassdef: MClassDef */;
107 val* var3 /* : nullable POSetElement[MClassDef] */;
108 val* var4 /* : null */;
109 short int var5 /* : Bool */;
110 val* var6 /* : nullable POSetElement[MClassDef] */;
111 val* var7 /* : Collection[Object] */;
112 val* var8 /* : Iterator[nullable Object] */;
113 short int var9 /* : Bool */;
114 val* var10 /* : nullable Object */;
115 val* var_superclassdef /* var superclassdef: MClassDef */;
116 val* var11 /* : HashMap[MClassDef, AClassdef] */;
117 val* var12 /* : nullable Object */;
118 val* var13 /* : ANodes[APropdef] */;
119 val* var14 /* : Iterator[nullable Object] */;
120 short int var15 /* : Bool */;
121 val* var16 /* : nullable Object */;
122 val* var_npropdef /* var npropdef: APropdef */;
123 val* var18 /* : ANodes[APropdef] */;
124 val* var19 /* : Iterator[nullable Object] */;
125 short int var20 /* : Bool */;
126 val* var21 /* : nullable Object */;
127 val* var_npropdef22 /* var npropdef: APropdef */;
128 val* var24 /* : ANodes[APropdef] */;
129 val* var25 /* : Iterator[nullable Object] */;
130 short int var26 /* : Bool */;
131 val* var27 /* : nullable Object */;
132 val* var_npropdef28 /* var npropdef: APropdef */;
133 var_nclassdef = p0;
134 var = ((short int (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__build_properties_is_done]))(var_nclassdef) /* build_properties_is_done on <var_nclassdef:AClassdef>*/;
135 if (var){
136 goto RET_LABEL;
137 } else {
138 }
139 var1 = 1;
140 ((void (*)(val*, short int))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__build_properties_is_done_61d]))(var_nclassdef, var1) /* build_properties_is_done= on <var_nclassdef:AClassdef>*/;
141 var2 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
142 if (var2 == NULL) {
143 fprintf(stderr, "Runtime error: %s", "Cast failed");
144 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 48);
145 show_backtrace(1);
146 }
147 var_mclassdef = var2;
148 var3 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__in_hierarchy]))(var_mclassdef) /* in_hierarchy on <var_mclassdef:MClassDef>*/;
149 var4 = NULL;
150 if (var3 == NULL) {
151 var5 = 1; /* is null */
152 } else {
153 var5 = 0; /* arg is null but recv is not */
154 }
155 if (var5){
156 goto RET_LABEL;
157 } else {
158 }
159 var6 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__in_hierarchy]))(var_mclassdef) /* in_hierarchy on <var_mclassdef:MClassDef>*/;
160 if (var6 == NULL) {
161 fprintf(stderr, "Runtime error: %s", "Receiver is null");
162 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 50);
163 show_backtrace(1);
164 } else {
165 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var6) /* direct_greaters on <var6:nullable POSetElement[MClassDef]>*/;
166 }
167 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on <var7:Collection[Object](Collection[MClassDef])>*/;
168 for(;;) {
169 var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var8) /* is_ok on <var8:Iterator[nullable Object]>*/;
170 if(!var9) break;
171 var10 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__item]))(var8) /* item on <var8:Iterator[nullable Object]>*/;
172 var_superclassdef = var10;
173 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef]))(self) /* mclassdef2nclassdef on <self:ModelBuilder>*/;
174 var12 = ((val* (*)(val*, val*))(var11->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var11, var_superclassdef) /* [] on <var11:HashMap[MClassDef, AClassdef]>*/;
175 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__ModelBuilder__build_properties]))(self, var12) /* build_properties on <self:ModelBuilder>*/;
176 CONTINUE_label: (void)0;
177 ((void (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__next]))(var8) /* next on <var8:Iterator[nullable Object]>*/;
178 }
179 BREAK_label: (void)0;
180 var13 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var_nclassdef) /* n_propdefs on <var_nclassdef:AClassdef>*/;
181 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__iterator]))(var13) /* iterator on <var13:ANodes[APropdef]>*/;
182 for(;;) {
183 var15 = ((short int (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var14) /* is_ok on <var14:Iterator[nullable Object]>*/;
184 if(!var15) break;
185 var16 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__item]))(var14) /* item on <var14:Iterator[nullable Object]>*/;
186 var_npropdef = var16;
187 ((void (*)(val*, val*, val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__build_property]))(var_npropdef, self, var_nclassdef) /* build_property on <var_npropdef:APropdef>*/;
188 CONTINUE_label17: (void)0;
189 ((void (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__next]))(var14) /* next on <var14:Iterator[nullable Object]>*/;
190 }
191 BREAK_label17: (void)0;
192 var18 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var_nclassdef) /* n_propdefs on <var_nclassdef:AClassdef>*/;
193 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__Collection__iterator]))(var18) /* iterator on <var18:ANodes[APropdef]>*/;
194 for(;;) {
195 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
196 if(!var20) break;
197 var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
198 var_npropdef22 = var21;
199 ((void (*)(val*, val*, val*))(var_npropdef22->class->vft[COLOR_modelize_property__APropdef__build_signature]))(var_npropdef22, self, var_nclassdef) /* build_signature on <var_npropdef22:APropdef>*/;
200 CONTINUE_label23: (void)0;
201 ((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
202 }
203 BREAK_label23: (void)0;
204 var24 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var_nclassdef) /* n_propdefs on <var_nclassdef:AClassdef>*/;
205 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_abstract_collection__Collection__iterator]))(var24) /* iterator on <var24:ANodes[APropdef]>*/;
206 for(;;) {
207 var26 = ((short int (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var25) /* is_ok on <var25:Iterator[nullable Object]>*/;
208 if(!var26) break;
209 var27 = ((val* (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__item]))(var25) /* item on <var25:Iterator[nullable Object]>*/;
210 var_npropdef28 = var27;
211 ((void (*)(val*, val*, val*))(var_npropdef28->class->vft[COLOR_modelize_property__APropdef__check_signature]))(var_npropdef28, self, var_nclassdef) /* check_signature on <var_npropdef28:APropdef>*/;
212 CONTINUE_label29: (void)0;
213 ((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__next]))(var25) /* next on <var25:Iterator[nullable Object]>*/;
214 }
215 BREAK_label29: (void)0;
216 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__ModelBuilder__process_default_constructors]))(self, var_nclassdef) /* process_default_constructors on <self:ModelBuilder>*/;
217 RET_LABEL:;
218 }
219 /* method modelize_property#ModelBuilder#build_properties for (self: Object, AClassdef) */
220 void VIRTUAL_modelize_property__ModelBuilder__build_properties(val* self, val* p0) {
221 modelize_property__ModelBuilder__build_properties(self, p0);
222 RET_LABEL:;
223 }
224 /* method modelize_property#ModelBuilder#process_default_constructors for (self: ModelBuilder, AClassdef) */
225 void modelize_property__ModelBuilder__process_default_constructors(val* self, val* p0) {
226 val* var_nclassdef /* var nclassdef: AClassdef */;
227 val* var /* : nullable MClassDef */;
228 val* var_mclassdef /* var mclassdef: MClassDef */;
229 short int var1 /* : Bool */;
230 short int var2 /* : Bool */;
231 val* var3 /* : MClass */;
232 val* var4 /* : MClassKind */;
233 short int var5 /* : Bool */;
234 short int var6 /* : Bool */;
235 val* var7 /* : Array[MPropDef] */;
236 val* var8 /* : Iterator[nullable Object] */;
237 short int var9 /* : Bool */;
238 val* var10 /* : nullable Object */;
239 val* var_mpropdef /* var mpropdef: MPropDef */;
240 short int var11 /* : Bool */;
241 int cltype;
242 int idtype;
243 short int var12 /* : Bool */;
244 val* var13 /* : MProperty */;
245 short int var14 /* : Bool */;
246 short int var15 /* : Bool */;
247 int cltype16;
248 int idtype17;
249 short int var18 /* : Bool */;
250 val* var19 /* : nullable MClassDef */;
251 val* var20 /* : MModule */;
252 val* var_mmodule /* var mmodule: MModule */;
253 val* var21 /* : Array[MMethod] */;
254 val* var_combine /* var combine: Array[MMethod] */;
255 val* var22 /* : null */;
256 val* var_inhc /* var inhc: nullable MClass */;
257 val* var23 /* : Array[MClassType] */;
258 val* var24 /* : Iterator[nullable Object] */;
259 short int var25 /* : Bool */;
260 val* var26 /* : nullable Object */;
261 val* var_st /* var st: MClassType */;
262 val* var27 /* : MClass */;
263 val* var_c /* var c: MClass */;
264 val* var28 /* : MClassKind */;
265 short int var29 /* : Bool */;
266 short int var30 /* : Bool */;
267 val* var32 /* : nullable MClassDef */;
268 val* var33 /* : MClassType */;
269 val* var34 /* : MType */;
270 static val* varonce;
271 val* var35 /* : String */;
272 char* var36 /* : NativeString */;
273 long var37 /* : Int */;
274 val* var38 /* : String */;
275 val* var39 /* : nullable MProperty */;
276 short int var40 /* : Bool */;
277 int cltype41;
278 int idtype42;
279 const char* var_class_name;
280 val* var_candidate /* var candidate: nullable MMethod */;
281 short int var43 /* : Bool */;
282 val* var44 /* : null */;
283 short int var45 /* : Bool */;
284 short int var_ /* var : Bool */;
285 val* var46 /* : MPropDef */;
286 val* var47 /* : nullable MSignature */;
287 long var48 /* : Int */;
288 long var49 /* : Int */;
289 short int var50 /* : Bool */;
290 short int var52 /* : Bool */;
291 val* var53 /* : nullable MClass */;
292 val* var_inhc2 /* var inhc2: nullable MClass */;
293 val* var54 /* : null */;
294 short int var55 /* : Bool */;
295 short int var56 /* : Bool */;
296 val* var57 /* : null */;
297 short int var58 /* : Bool */;
298 static val* varonce59;
299 val* var60 /* : String */;
300 char* var61 /* : NativeString */;
301 long var62 /* : Int */;
302 val* var63 /* : String */;
303 static val* varonce64;
304 val* var65 /* : String */;
305 char* var66 /* : NativeString */;
306 long var67 /* : Int */;
307 val* var68 /* : String */;
308 val* var69 /* : Array[Object] */;
309 long var70 /* : Int */;
310 val* var71 /* : NativeArray[Object] */;
311 val* var72 /* : String */;
312 short int var73 /* : Bool */;
313 short int var74 /* : Bool */;
314 short int var_75 /* var : Bool */;
315 val* var76 /* : null */;
316 short int var77 /* : Bool */;
317 val* var78 /* : ToolContext */;
318 static val* varonce79;
319 val* var80 /* : String */;
320 char* var81 /* : NativeString */;
321 long var82 /* : Int */;
322 val* var83 /* : String */;
323 val* var84 /* : Array[Object] */;
324 long var85 /* : Int */;
325 val* var86 /* : NativeArray[Object] */;
326 val* var87 /* : String */;
327 long var88 /* : Int */;
328 val* var89 /* : MClass */;
329 short int var90 /* : Bool */;
330 short int var91 /* : Bool */;
331 short int var92 /* : Bool */;
332 short int var_93 /* var : Bool */;
333 val* var94 /* : null */;
334 short int var95 /* : Bool */;
335 static val* varonce96;
336 val* var97 /* : String */;
337 char* var98 /* : NativeString */;
338 long var99 /* : Int */;
339 val* var100 /* : String */;
340 static val* varonce101;
341 val* var102 /* : String */;
342 char* var103 /* : NativeString */;
343 long var104 /* : Int */;
344 val* var105 /* : String */;
345 val* var106 /* : String */;
346 static val* varonce107;
347 val* var108 /* : String */;
348 char* var109 /* : NativeString */;
349 long var110 /* : Int */;
350 val* var111 /* : String */;
351 val* var112 /* : Array[Object] */;
352 long var113 /* : Int */;
353 val* var114 /* : NativeArray[Object] */;
354 val* var115 /* : String */;
355 short int var116 /* : Bool */;
356 short int var117 /* : Bool */;
357 val* var118 /* : MMethod */;
358 static val* varonce119;
359 val* var120 /* : String */;
360 char* var121 /* : NativeString */;
361 long var122 /* : Int */;
362 val* var123 /* : String */;
363 val* var124 /* : MClass */;
364 val* var125 /* : MVisibility */;
365 val* var_mprop /* var mprop: MMethod */;
366 val* var126 /* : MMethodDef */;
367 val* var127 /* : Location */;
368 val* var_mpropdef128 /* var mpropdef: MMethodDef */;
369 val* var129 /* : Array[MParameter] */;
370 val* var_mparameters /* var mparameters: Array[MParameter] */;
371 val* var130 /* : MSignature */;
372 val* var131 /* : null */;
373 val* var_msignature /* var msignature: MSignature */;
374 short int var132 /* : Bool */;
375 val* var133 /* : ToolContext */;
376 static val* varonce134;
377 val* var135 /* : String */;
378 char* var136 /* : NativeString */;
379 long var137 /* : Int */;
380 val* var138 /* : String */;
381 val* var139 /* : Array[Object] */;
382 long var140 /* : Int */;
383 val* var141 /* : NativeArray[Object] */;
384 val* var142 /* : String */;
385 long var143 /* : Int */;
386 val* var144 /* : Array[MParameter] */;
387 val* var_mparameters145 /* var mparameters: Array[MParameter] */;
388 val* var146 /* : ANodes[APropdef] */;
389 val* var147 /* : Iterator[nullable Object] */;
390 short int var148 /* : Bool */;
391 val* var149 /* : nullable Object */;
392 val* var_npropdef /* var npropdef: APropdef */;
393 short int var150 /* : Bool */;
394 short int var151 /* : Bool */;
395 int cltype152;
396 int idtype153;
397 short int var_154 /* var : Bool */;
398 val* var155 /* : nullable AExpr */;
399 val* var156 /* : null */;
400 short int var157 /* : Bool */;
401 val* var158 /* : nullable MPropDef */;
402 val* var159 /* : null */;
403 short int var160 /* : Bool */;
404 val* var161 /* : nullable MPropDef */;
405 val* var162 /* : MProperty */;
406 val* var163 /* : String */;
407 long var164 /* : Int */;
408 val* var165 /* : String */;
409 val* var_paramname /* var paramname: String */;
410 val* var166 /* : nullable MPropDef */;
411 val* var167 /* : nullable MType */;
412 val* var_ret_type /* var ret_type: nullable MType */;
413 val* var168 /* : null */;
414 short int var169 /* : Bool */;
415 val* var170 /* : MParameter */;
416 short int var171 /* : Bool */;
417 val* var_mparameter /* var mparameter: MParameter */;
418 val* var173 /* : MMethod */;
419 static val* varonce174;
420 val* var175 /* : String */;
421 char* var176 /* : NativeString */;
422 long var177 /* : Int */;
423 val* var178 /* : String */;
424 val* var179 /* : MClass */;
425 val* var180 /* : MVisibility */;
426 val* var_mprop181 /* var mprop: MMethod */;
427 val* var182 /* : MMethodDef */;
428 val* var183 /* : Location */;
429 val* var_mpropdef184 /* var mpropdef: MMethodDef */;
430 val* var185 /* : MSignature */;
431 val* var186 /* : null */;
432 val* var_msignature187 /* var msignature: MSignature */;
433 short int var188 /* : Bool */;
434 val* var189 /* : ToolContext */;
435 static val* varonce190;
436 val* var191 /* : String */;
437 char* var192 /* : NativeString */;
438 long var193 /* : Int */;
439 val* var194 /* : String */;
440 val* var195 /* : Array[Object] */;
441 long var196 /* : Int */;
442 val* var197 /* : NativeArray[Object] */;
443 val* var198 /* : String */;
444 long var199 /* : Int */;
445 var_nclassdef = p0;
446 var = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
447 if (var == NULL) {
448 fprintf(stderr, "Runtime error: %s", "Cast failed");
449 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 70);
450 show_backtrace(1);
451 }
452 var_mclassdef = var;
453 var1 = ((short int (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__is_intro]))(var_mclassdef) /* is_intro on <var_mclassdef:MClassDef>*/;
454 var2 = !var1;
455 if (var2){
456 goto RET_LABEL;
457 } else {
458 }
459 var3 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
460 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClass__kind]))(var3) /* kind on <var3:MClass>*/;
461 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_model__MClassKind__need_init]))(var4) /* need_init on <var4:MClassKind>*/;
462 var6 = !var5;
463 if (var6){
464 goto RET_LABEL;
465 } else {
466 }
467 var7 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mpropdefs]))(var_mclassdef) /* mpropdefs on <var_mclassdef:MClassDef>*/;
468 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on <var7:Array[MPropDef]>*/;
469 for(;;) {
470 var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var8) /* is_ok on <var8:Iterator[nullable Object]>*/;
471 if(!var9) break;
472 var10 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__item]))(var8) /* item on <var8:Iterator[nullable Object]>*/;
473 var_mpropdef = var10;
474 /* <var_mpropdef:MPropDef> isa MMethodDef */
475 cltype = type_model__MMethodDef.color;
476 idtype = type_model__MMethodDef.id;
477 if(cltype >= var_mpropdef->type->table_size) {
478 var11 = 0;
479 } else {
480 var11 = var_mpropdef->type->type_table[cltype] == idtype;
481 }
482 var12 = !var11;
483 if (var12){
484 goto CONTINUE_label;
485 } else {
486 }
487 var13 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MPropDef(MMethodDef)>*/;
488 var14 = ((short int (*)(val*))(var13->class->vft[COLOR_model__MMethod__is_init]))(var13) /* is_init on <var13:MProperty(MMethod)>*/;
489 if (var14){
490 goto RET_LABEL;
491 } else {
492 }
493 CONTINUE_label: (void)0;
494 ((void (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__next]))(var8) /* next on <var8:Iterator[nullable Object]>*/;
495 }
496 BREAK_label: (void)0;
497 /* <var_nclassdef:AClassdef> isa AStdClassdef */
498 cltype16 = type_parser_nodes__AStdClassdef.color;
499 idtype17 = type_parser_nodes__AStdClassdef.id;
500 if(cltype16 >= var_nclassdef->type->table_size) {
501 var15 = 0;
502 } else {
503 var15 = var_nclassdef->type->type_table[cltype16] == idtype17;
504 }
505 var18 = !var15;
506 if (var18){
507 goto RET_LABEL;
508 } else {
509 }
510 var19 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
511 if (var19 == NULL) {
512 fprintf(stderr, "Runtime error: %s", "Receiver is null");
513 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 86);
514 show_backtrace(1);
515 } else {
516 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MClassDef__mmodule]))(var19) /* mmodule on <var19:nullable MClassDef>*/;
517 }
518 var_mmodule = var20;
519 var21 = NEW_array__Array(&type_array__Arraymodel__MMethod);
520 ((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on <var21:Array[MMethod]>*/;
521 var_combine = var21;
522 var22 = NULL;
523 var_inhc = var22;
524 var23 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__supertypes]))(var_mclassdef) /* supertypes on <var_mclassdef:MClassDef>*/;
525 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_abstract_collection__Collection__iterator]))(var23) /* iterator on <var23:Array[MClassType]>*/;
526 for(;;) {
527 var25 = ((short int (*)(val*))(var24->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var24) /* is_ok on <var24:Iterator[nullable Object]>*/;
528 if(!var25) break;
529 var26 = ((val* (*)(val*))(var24->class->vft[COLOR_abstract_collection__Iterator__item]))(var24) /* item on <var24:Iterator[nullable Object]>*/;
530 var_st = var26;
531 var27 = ((val* (*)(val*))(var_st->class->vft[COLOR_model__MClassType__mclass]))(var_st) /* mclass on <var_st:MClassType>*/;
532 var_c = var27;
533 var28 = ((val* (*)(val*))(var_c->class->vft[COLOR_model__MClass__kind]))(var_c) /* kind on <var_c:MClass>*/;
534 var29 = ((short int (*)(val*))(var28->class->vft[COLOR_model__MClassKind__need_init]))(var28) /* need_init on <var28:MClassKind>*/;
535 var30 = !var29;
536 if (var30){
537 goto CONTINUE_label31;
538 } else {
539 }
540 var32 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
541 if (var32 == NULL) {
542 fprintf(stderr, "Runtime error: %s", "Receiver is null");
543 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 93);
544 show_backtrace(1);
545 } else {
546 var33 = ((val* (*)(val*))(var32->class->vft[COLOR_model__MClassDef__bound_mtype]))(var32) /* bound_mtype on <var32:nullable MClassDef>*/;
547 }
548 var34 = ((val* (*)(val*, val*, val*))(var_st->class->vft[COLOR_model__MType__anchor_to]))(var_st, var_mmodule, var33) /* anchor_to on <var_st:MClassType>*/;
549 var_st = var34;
550 if (varonce) {
551 var35 = varonce;
552 } else {
553 var36 = "init";
554 var37 = 4;
555 var38 = string__NativeString__to_s_with_length(var36, var37);
556 var35 = var38;
557 varonce = var35;
558 }
559 var39 = ((val* (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(self, var_nclassdef, var_mmodule, var_st, var35) /* try_get_mproperty_by_name2 on <self:ModelBuilder>*/;
560 /* <var39:nullable MProperty> isa nullable MMethod */
561 cltype41 = type_nullable_model__MMethod.color;
562 idtype42 = type_nullable_model__MMethod.id;
563 if(var39 == NULL) {
564 var40 = 1;
565 } else {
566 if(cltype41 >= var39->type->table_size) {
567 var40 = 0;
568 } else {
569 var40 = var39->type->type_table[cltype41] == idtype42;
570 }
571 }
572 if (!var40) {
573 var_class_name = var39 == NULL ? "null" : var39->type->name;
574 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name);
575 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 94);
576 show_backtrace(1);
577 }
578 var_candidate = var39;
579 var44 = NULL;
580 if (var_candidate == NULL) {
581 var45 = 0; /* is null */
582 } else {
583 var45 = 1; /* arg is null and recv is not */
584 }
585 var_ = var45;
586 if (var45){
587 var46 = ((val* (*)(val*))(var_candidate->class->vft[COLOR_model__MProperty__intro]))(var_candidate) /* intro on <var_candidate:nullable MMethod(MMethod)>*/;
588 var47 = ((val* (*)(val*))(var46->class->vft[COLOR_model__MMethodDef__msignature]))(var46) /* msignature on <var46:MPropDef(MMethodDef)>*/;
589 if (var47 == NULL) {
590 fprintf(stderr, "Runtime error: %s", "Receiver is null");
591 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 95);
592 show_backtrace(1);
593 } else {
594 var48 = ((long (*)(val*))(var47->class->vft[COLOR_model__MSignature__arity]))(var47) /* arity on <var47:nullable MSignature>*/;
595 }
596 var49 = 0;
597 { /* Inline kernel#Int#== (var48,var49) */
598 var52 = var48 == var49;
599 var50 = var52;
600 goto RET_LABEL51;
601 RET_LABEL51:(void)0;
602 }
603 var43 = var50;
604 } else {
605 var43 = var_;
606 }
607 if (var43){
608 ((void (*)(val*, val*))(var_combine->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_combine, var_candidate) /* add on <var_combine:Array[MMethod]>*/;
609 goto CONTINUE_label31;
610 } else {
611 }
612 var53 = ((val* (*)(val*))(var_c->class->vft[COLOR_modelize_property__MClass__inherit_init_from]))(var_c) /* inherit_init_from on <var_c:MClass>*/;
613 var_inhc2 = var53;
614 var54 = NULL;
615 if (var_inhc2 == NULL) {
616 var55 = 1; /* is null */
617 } else {
618 var55 = 0; /* arg is null but recv is not */
619 }
620 if (var55){
621 var_inhc2 = var_c;
622 } else {
623 }
624 var56 = ((short int (*)(val*, val*))(var_inhc2->class->vft[COLOR_kernel__Object___61d_61d]))(var_inhc2, var_inhc) /* == on <var_inhc2:nullable MClass(MClass)>*/;
625 if (var56){
626 goto CONTINUE_label31;
627 } else {
628 }
629 var57 = NULL;
630 if (var_inhc == NULL) {
631 var58 = 0; /* is null */
632 } else {
633 var58 = 1; /* arg is null and recv is not */
634 }
635 if (var58){
636 if (varonce59) {
637 var60 = varonce59;
638 } else {
639 var61 = "Error: Cannot provide a defaut constructor: conflict for ";
640 var62 = 57;
641 var63 = string__NativeString__to_s_with_length(var61, var62);
642 var60 = var63;
643 varonce59 = var60;
644 }
645 if (varonce64) {
646 var65 = varonce64;
647 } else {
648 var66 = " and ";
649 var67 = 5;
650 var68 = string__NativeString__to_s_with_length(var66, var67);
651 var65 = var68;
652 varonce64 = var65;
653 }
654 var69 = NEW_array__Array(&type_array__Arraykernel__Object);
655 { /* var69 = array_instance Array[Object] */
656 var70 = 4;
657 var71 = NEW_array__NativeArray(var70, &type_array__NativeArraykernel__Object);
658 ((struct instance_array__NativeArray*)var71)->values[0] = (val*) var60;
659 ((struct instance_array__NativeArray*)var71)->values[1] = (val*) var_inhc;
660 ((struct instance_array__NativeArray*)var71)->values[2] = (val*) var65;
661 ((struct instance_array__NativeArray*)var71)->values[3] = (val*) var_c;
662 ((void (*)(val*, val*, long))(var69->class->vft[COLOR_array__Array__with_native]))(var69, var71, var70) /* with_native on <var69:Array[Object]>*/;
663 }
664 var72 = ((val* (*)(val*))(var69->class->vft[COLOR_string__Object__to_s]))(var69) /* to_s on <var69:Array[Object]>*/;
665 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_nclassdef, var72) /* error on <self:ModelBuilder>*/;
666 } else {
667 var_inhc = var_inhc2;
668 }
669 CONTINUE_label31: (void)0;
670 ((void (*)(val*))(var24->class->vft[COLOR_abstract_collection__Iterator__next]))(var24) /* next on <var24:Iterator[nullable Object]>*/;
671 }
672 BREAK_label31: (void)0;
673 var74 = ((short int (*)(val*))(var_combine->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_combine) /* is_empty on <var_combine:Array[MMethod]>*/;
674 var_75 = var74;
675 if (var74){
676 var76 = NULL;
677 if (var_inhc == NULL) {
678 var77 = 0; /* is null */
679 } else {
680 var77 = 1; /* arg is null and recv is not */
681 }
682 var73 = var77;
683 } else {
684 var73 = var_75;
685 }
686 if (var73){
687 var78 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on <self:ModelBuilder>*/;
688 if (varonce79) {
689 var80 = varonce79;
690 } else {
691 var81 = " inherits all constructors from ";
692 var82 = 32;
693 var83 = string__NativeString__to_s_with_length(var81, var82);
694 var80 = var83;
695 varonce79 = var80;
696 }
697 var84 = NEW_array__Array(&type_array__Arraykernel__Object);
698 { /* var84 = array_instance Array[Object] */
699 var85 = 3;
700 var86 = NEW_array__NativeArray(var85, &type_array__NativeArraykernel__Object);
701 ((struct instance_array__NativeArray*)var86)->values[0] = (val*) var_mclassdef;
702 ((struct instance_array__NativeArray*)var86)->values[1] = (val*) var80;
703 ((struct instance_array__NativeArray*)var86)->values[2] = (val*) var_inhc;
704 ((void (*)(val*, val*, long))(var84->class->vft[COLOR_array__Array__with_native]))(var84, var86, var85) /* with_native on <var84:Array[Object]>*/;
705 }
706 var87 = ((val* (*)(val*))(var84->class->vft[COLOR_string__Object__to_s]))(var84) /* to_s on <var84:Array[Object]>*/;
707 var88 = 3;
708 ((void (*)(val*, val*, long))(var78->class->vft[COLOR_toolcontext__ToolContext__info]))(var78, var87, var88) /* info on <var78:ToolContext>*/;
709 var89 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
710 ((void (*)(val*, val*))(var89->class->vft[COLOR_modelize_property__MClass__inherit_init_from_61d]))(var89, var_inhc) /* inherit_init_from= on <var89:MClass>*/;
711 goto RET_LABEL;
712 } else {
713 }
714 var91 = ((short int (*)(val*))(var_combine->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_combine) /* is_empty on <var_combine:Array[MMethod]>*/;
715 var92 = !var91;
716 var_93 = var92;
717 if (var92){
718 var94 = NULL;
719 if (var_inhc == NULL) {
720 var95 = 0; /* is null */
721 } else {
722 var95 = 1; /* arg is null and recv is not */
723 }
724 var90 = var95;
725 } else {
726 var90 = var_93;
727 }
728 if (var90){
729 if (varonce96) {
730 var97 = varonce96;
731 } else {
732 var98 = "Error: Cannot provide a defaut constructor: conflict for ";
733 var99 = 57;
734 var100 = string__NativeString__to_s_with_length(var98, var99);
735 var97 = var100;
736 varonce96 = var97;
737 }
738 if (varonce101) {
739 var102 = varonce101;
740 } else {
741 var103 = ", ";
742 var104 = 2;
743 var105 = string__NativeString__to_s_with_length(var103, var104);
744 var102 = var105;
745 varonce101 = var102;
746 }
747 var106 = ((val* (*)(val*, val*))(var_combine->class->vft[COLOR_string__Collection__join]))(var_combine, var102) /* join on <var_combine:Array[MMethod]>*/;
748 if (varonce107) {
749 var108 = varonce107;
750 } else {
751 var109 = " and ";
752 var110 = 5;
753 var111 = string__NativeString__to_s_with_length(var109, var110);
754 var108 = var111;
755 varonce107 = var108;
756 }
757 var112 = NEW_array__Array(&type_array__Arraykernel__Object);
758 { /* var112 = array_instance Array[Object] */
759 var113 = 4;
760 var114 = NEW_array__NativeArray(var113, &type_array__NativeArraykernel__Object);
761 ((struct instance_array__NativeArray*)var114)->values[0] = (val*) var97;
762 ((struct instance_array__NativeArray*)var114)->values[1] = (val*) var106;
763 ((struct instance_array__NativeArray*)var114)->values[2] = (val*) var108;
764 ((struct instance_array__NativeArray*)var114)->values[3] = (val*) var_inhc;
765 ((void (*)(val*, val*, long))(var112->class->vft[COLOR_array__Array__with_native]))(var112, var114, var113) /* with_native on <var112:Array[Object]>*/;
766 }
767 var115 = ((val* (*)(val*))(var112->class->vft[COLOR_string__Object__to_s]))(var112) /* to_s on <var112:Array[Object]>*/;
768 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_nclassdef, var115) /* error on <self:ModelBuilder>*/;
769 goto RET_LABEL;
770 } else {
771 }
772 var116 = ((short int (*)(val*))(var_combine->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_combine) /* is_empty on <var_combine:Array[MMethod]>*/;
773 var117 = !var116;
774 if (var117){
775 ((void (*)(val*, val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__super_inits_61d]))(var_nclassdef, var_combine) /* super_inits= on <var_nclassdef:AClassdef(AStdClassdef)>*/;
776 var118 = NEW_model__MMethod(&type_model__MMethod);
777 if (varonce119) {
778 var120 = varonce119;
779 } else {
780 var121 = "init";
781 var122 = 4;
782 var123 = string__NativeString__to_s_with_length(var121, var122);
783 var120 = var123;
784 varonce119 = var120;
785 }
786 var124 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
787 var125 = ((val* (*)(val*))(var124->class->vft[COLOR_model__MClass__visibility]))(var124) /* visibility on <var124:MClass>*/;
788 ((void (*)(val*, val*, val*, val*))(var118->class->vft[COLOR_model__MMethod__init]))(var118, var_mclassdef, var120, var125) /* init on <var118:MMethod>*/;
789 var_mprop = var118;
790 var126 = NEW_model__MMethodDef(&type_model__MMethodDef);
791 var127 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__ANode__location]))(var_nclassdef) /* location on <var_nclassdef:AClassdef(AStdClassdef)>*/;
792 ((void (*)(val*, val*, val*, val*))(var126->class->vft[COLOR_model__MMethodDef__init]))(var126, var_mclassdef, var_mprop, var127) /* init on <var126:MMethodDef>*/;
793 var_mpropdef128 = var126;
794 var129 = NEW_array__Array(&type_array__Arraymodel__MParameter);
795 ((void (*)(val*))(var129->class->vft[COLOR_array__Array__init]))(var129) /* init on <var129:Array[MParameter]>*/;
796 var_mparameters = var129;
797 var130 = NEW_model__MSignature(&type_model__MSignature);
798 var131 = NULL;
799 ((void (*)(val*, val*, val*))(var130->class->vft[COLOR_model__MSignature__init]))(var130, var_mparameters, var131) /* init on <var130:MSignature>*/;
800 var_msignature = var130;
801 ((void (*)(val*, val*))(var_mpropdef128->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mpropdef128, var_msignature) /* msignature= on <var_mpropdef128:MMethodDef>*/;
802 var132 = 1;
803 ((void (*)(val*, short int))(var_mprop->class->vft[COLOR_model__MMethod__is_init_61d]))(var_mprop, var132) /* is_init= on <var_mprop:MMethod>*/;
804 ((void (*)(val*, val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mfree_init_61d]))(var_nclassdef, var_mpropdef128) /* mfree_init= on <var_nclassdef:AClassdef(AStdClassdef)>*/;
805 var133 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on <self:ModelBuilder>*/;
806 if (varonce134) {
807 var135 = varonce134;
808 } else {
809 var136 = " gets a free empty constructor ";
810 var137 = 31;
811 var138 = string__NativeString__to_s_with_length(var136, var137);
812 var135 = var138;
813 varonce134 = var135;
814 }
815 var139 = NEW_array__Array(&type_array__Arraykernel__Object);
816 { /* var139 = array_instance Array[Object] */
817 var140 = 4;
818 var141 = NEW_array__NativeArray(var140, &type_array__NativeArraykernel__Object);
819 ((struct instance_array__NativeArray*)var141)->values[0] = (val*) var_mclassdef;
820 ((struct instance_array__NativeArray*)var141)->values[1] = (val*) var135;
821 ((struct instance_array__NativeArray*)var141)->values[2] = (val*) var_mpropdef128;
822 ((struct instance_array__NativeArray*)var141)->values[3] = (val*) var_msignature;
823 ((void (*)(val*, val*, long))(var139->class->vft[COLOR_array__Array__with_native]))(var139, var141, var140) /* with_native on <var139:Array[Object]>*/;
824 }
825 var142 = ((val* (*)(val*))(var139->class->vft[COLOR_string__Object__to_s]))(var139) /* to_s on <var139:Array[Object]>*/;
826 var143 = 3;
827 ((void (*)(val*, val*, long))(var133->class->vft[COLOR_toolcontext__ToolContext__info]))(var133, var142, var143) /* info on <var133:ToolContext>*/;
828 goto RET_LABEL;
829 } else {
830 }
831 var144 = NEW_array__Array(&type_array__Arraymodel__MParameter);
832 ((void (*)(val*))(var144->class->vft[COLOR_array__Array__init]))(var144) /* init on <var144:Array[MParameter]>*/;
833 var_mparameters145 = var144;
834 var146 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var_nclassdef) /* n_propdefs on <var_nclassdef:AClassdef(AStdClassdef)>*/;
835 var147 = ((val* (*)(val*))(var146->class->vft[COLOR_abstract_collection__Collection__iterator]))(var146) /* iterator on <var146:ANodes[APropdef]>*/;
836 for(;;) {
837 var148 = ((short int (*)(val*))(var147->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var147) /* is_ok on <var147:Iterator[nullable Object]>*/;
838 if(!var148) break;
839 var149 = ((val* (*)(val*))(var147->class->vft[COLOR_abstract_collection__Iterator__item]))(var147) /* item on <var147:Iterator[nullable Object]>*/;
840 var_npropdef = var149;
841 /* <var_npropdef:APropdef> isa AAttrPropdef */
842 cltype152 = type_parser_nodes__AAttrPropdef.color;
843 idtype153 = type_parser_nodes__AAttrPropdef.id;
844 if(cltype152 >= var_npropdef->type->table_size) {
845 var151 = 0;
846 } else {
847 var151 = var_npropdef->type->type_table[cltype152] == idtype153;
848 }
849 var_154 = var151;
850 if (var151){
851 var155 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(var_npropdef) /* n_expr on <var_npropdef:APropdef(AAttrPropdef)>*/;
852 var156 = NULL;
853 if (var155 == NULL) {
854 var157 = 1; /* is null */
855 } else {
856 var157 = 0; /* arg is null but recv is not */
857 }
858 var150 = var157;
859 } else {
860 var150 = var_154;
861 }
862 if (var150){
863 var158 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:APropdef(AAttrPropdef)>*/;
864 var159 = NULL;
865 if (var158 == NULL) {
866 var160 = 1; /* is null */
867 } else {
868 var160 = 0; /* arg is null but recv is not */
869 }
870 if (var160){
871 goto RET_LABEL;
872 } else {
873 }
874 var161 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:APropdef(AAttrPropdef)>*/;
875 if (var161 == NULL) {
876 fprintf(stderr, "Runtime error: %s", "Receiver is null");
877 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 137);
878 show_backtrace(1);
879 } else {
880 var162 = ((val* (*)(val*))(var161->class->vft[COLOR_model__MPropDef__mproperty]))(var161) /* mproperty on <var161:nullable MPropDef(nullable MAttributeDef)>*/;
881 }
882 var163 = ((val* (*)(val*))(var162->class->vft[COLOR_model__MProperty__name]))(var162) /* name on <var162:MProperty(MAttribute)>*/;
883 var164 = 1;
884 var165 = ((val* (*)(val*, long))(var163->class->vft[COLOR_string__AbstractString__substring_from]))(var163, var164) /* substring_from on <var163:String>*/;
885 var_paramname = var165;
886 var166 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:APropdef(AAttrPropdef)>*/;
887 if (var166 == NULL) {
888 fprintf(stderr, "Runtime error: %s", "Receiver is null");
889 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 138);
890 show_backtrace(1);
891 } else {
892 var167 = ((val* (*)(val*))(var166->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var166) /* static_mtype on <var166:nullable MPropDef(nullable MAttributeDef)>*/;
893 }
894 var_ret_type = var167;
895 var168 = NULL;
896 if (var_ret_type == NULL) {
897 var169 = 1; /* is null */
898 } else {
899 var169 = 0; /* arg is null but recv is not */
900 }
901 if (var169){
902 goto RET_LABEL;
903 } else {
904 }
905 var170 = NEW_model__MParameter(&type_model__MParameter);
906 var171 = 0;
907 ((void (*)(val*, val*, val*, short int))(var170->class->vft[COLOR_model__MParameter__init]))(var170, var_paramname, var_ret_type, var171) /* init on <var170:MParameter>*/;
908 var_mparameter = var170;
909 ((void (*)(val*, val*))(var_mparameters145->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_mparameters145, var_mparameter) /* add on <var_mparameters145:Array[MParameter]>*/;
910 } else {
911 }
912 CONTINUE_label172: (void)0;
913 ((void (*)(val*))(var147->class->vft[COLOR_abstract_collection__Iterator__next]))(var147) /* next on <var147:Iterator[nullable Object]>*/;
914 }
915 BREAK_label172: (void)0;
916 var173 = NEW_model__MMethod(&type_model__MMethod);
917 if (varonce174) {
918 var175 = varonce174;
919 } else {
920 var176 = "init";
921 var177 = 4;
922 var178 = string__NativeString__to_s_with_length(var176, var177);
923 var175 = var178;
924 varonce174 = var175;
925 }
926 var179 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
927 var180 = ((val* (*)(val*))(var179->class->vft[COLOR_model__MClass__visibility]))(var179) /* visibility on <var179:MClass>*/;
928 ((void (*)(val*, val*, val*, val*))(var173->class->vft[COLOR_model__MMethod__init]))(var173, var_mclassdef, var175, var180) /* init on <var173:MMethod>*/;
929 var_mprop181 = var173;
930 var182 = NEW_model__MMethodDef(&type_model__MMethodDef);
931 var183 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__ANode__location]))(var_nclassdef) /* location on <var_nclassdef:AClassdef(AStdClassdef)>*/;
932 ((void (*)(val*, val*, val*, val*))(var182->class->vft[COLOR_model__MMethodDef__init]))(var182, var_mclassdef, var_mprop181, var183) /* init on <var182:MMethodDef>*/;
933 var_mpropdef184 = var182;
934 var185 = NEW_model__MSignature(&type_model__MSignature);
935 var186 = NULL;
936 ((void (*)(val*, val*, val*))(var185->class->vft[COLOR_model__MSignature__init]))(var185, var_mparameters145, var186) /* init on <var185:MSignature>*/;
937 var_msignature187 = var185;
938 ((void (*)(val*, val*))(var_mpropdef184->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mpropdef184, var_msignature187) /* msignature= on <var_mpropdef184:MMethodDef>*/;
939 var188 = 1;
940 ((void (*)(val*, short int))(var_mprop181->class->vft[COLOR_model__MMethod__is_init_61d]))(var_mprop181, var188) /* is_init= on <var_mprop181:MMethod>*/;
941 ((void (*)(val*, val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mfree_init_61d]))(var_nclassdef, var_mpropdef184) /* mfree_init= on <var_nclassdef:AClassdef(AStdClassdef)>*/;
942 var189 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on <self:ModelBuilder>*/;
943 if (varonce190) {
944 var191 = varonce190;
945 } else {
946 var192 = " gets a free constructor for attributes ";
947 var193 = 40;
948 var194 = string__NativeString__to_s_with_length(var192, var193);
949 var191 = var194;
950 varonce190 = var191;
951 }
952 var195 = NEW_array__Array(&type_array__Arraykernel__Object);
953 { /* var195 = array_instance Array[Object] */
954 var196 = 4;
955 var197 = NEW_array__NativeArray(var196, &type_array__NativeArraykernel__Object);
956 ((struct instance_array__NativeArray*)var197)->values[0] = (val*) var_mclassdef;
957 ((struct instance_array__NativeArray*)var197)->values[1] = (val*) var191;
958 ((struct instance_array__NativeArray*)var197)->values[2] = (val*) var_mpropdef184;
959 ((struct instance_array__NativeArray*)var197)->values[3] = (val*) var_msignature187;
960 ((void (*)(val*, val*, long))(var195->class->vft[COLOR_array__Array__with_native]))(var195, var197, var196) /* with_native on <var195:Array[Object]>*/;
961 }
962 var198 = ((val* (*)(val*))(var195->class->vft[COLOR_string__Object__to_s]))(var195) /* to_s on <var195:Array[Object]>*/;
963 var199 = 3;
964 ((void (*)(val*, val*, long))(var189->class->vft[COLOR_toolcontext__ToolContext__info]))(var189, var198, var199) /* info on <var189:ToolContext>*/;
965 RET_LABEL:;
966 }
967 /* method modelize_property#ModelBuilder#process_default_constructors for (self: Object, AClassdef) */
968 void VIRTUAL_modelize_property__ModelBuilder__process_default_constructors(val* self, val* p0) {
969 modelize_property__ModelBuilder__process_default_constructors(self, p0);
970 RET_LABEL:;
971 }
972 /* method modelize_property#MClass#inherit_init_from for (self: MClass): nullable MClass */
973 val* modelize_property__MClass__inherit_init_from(val* self) {
974 val* var /* : nullable MClass */;
975 val* var1 /* : nullable MClass */;
976 var1 = self->attrs[COLOR_modelize_property__MClass___64dinherit_init_from].val; /* @inherit_init_from on <self:MClass> */
977 var = var1;
978 RET_LABEL:;
979 return var;
980 }
981 /* method modelize_property#MClass#inherit_init_from for (self: Object): nullable MClass */
982 val* VIRTUAL_modelize_property__MClass__inherit_init_from(val* self) {
983 val* var /* : nullable MClass */;
984 val* var1 /* : nullable MClass */;
985 var1 = modelize_property__MClass__inherit_init_from(self);
986 var = var1;
987 RET_LABEL:;
988 return var;
989 }
990 /* method modelize_property#MClass#inherit_init_from= for (self: MClass, nullable MClass) */
991 void modelize_property__MClass__inherit_init_from_61d(val* self, val* p0) {
992 self->attrs[COLOR_modelize_property__MClass___64dinherit_init_from].val = p0; /* @inherit_init_from on <self:MClass> */
993 RET_LABEL:;
994 }
995 /* method modelize_property#MClass#inherit_init_from= for (self: Object, nullable MClass) */
996 void VIRTUAL_modelize_property__MClass__inherit_init_from_61d(val* self, val* p0) {
997 modelize_property__MClass__inherit_init_from_61d(self, p0);
998 RET_LABEL:;
999 }
1000 /* method modelize_property#MClassDef#propdef_names for (self: MClassDef): HashSet[String] */
1001 val* modelize_property__MClassDef__propdef_names(val* self) {
1002 val* var /* : HashSet[String] */;
1003 val* var1 /* : HashSet[String] */;
1004 var1 = self->attrs[COLOR_modelize_property__MClassDef___64dpropdef_names].val; /* @propdef_names on <self:MClassDef> */
1005 if (var1 == NULL) {
1006 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @propdef_names");
1007 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 162);
1008 show_backtrace(1);
1009 }
1010 var = var1;
1011 RET_LABEL:;
1012 return var;
1013 }
1014 /* method modelize_property#MClassDef#propdef_names for (self: Object): HashSet[String] */
1015 val* VIRTUAL_modelize_property__MClassDef__propdef_names(val* self) {
1016 val* var /* : HashSet[String] */;
1017 val* var1 /* : HashSet[String] */;
1018 var1 = modelize_property__MClassDef__propdef_names(self);
1019 var = var1;
1020 RET_LABEL:;
1021 return var;
1022 }
1023 /* method modelize_property#MClassDef#propdef_names= for (self: MClassDef, HashSet[String]) */
1024 void modelize_property__MClassDef__propdef_names_61d(val* self, val* p0) {
1025 self->attrs[COLOR_modelize_property__MClassDef___64dpropdef_names].val = p0; /* @propdef_names on <self:MClassDef> */
1026 RET_LABEL:;
1027 }
1028 /* method modelize_property#MClassDef#propdef_names= for (self: Object, HashSet[String]) */
1029 void VIRTUAL_modelize_property__MClassDef__propdef_names_61d(val* self, val* p0) {
1030 modelize_property__MClassDef__propdef_names_61d(self, p0);
1031 RET_LABEL:;
1032 }
1033 /* method modelize_property#MPropDef#has_supercall for (self: MPropDef): Bool */
1034 short int modelize_property__MPropDef__has_supercall(val* self) {
1035 short int var /* : Bool */;
1036 short int var1 /* : Bool */;
1037 var1 = self->attrs[COLOR_modelize_property__MPropDef___64dhas_supercall].s; /* @has_supercall on <self:MPropDef> */
1038 var = var1;
1039 RET_LABEL:;
1040 return var;
1041 }
1042 /* method modelize_property#MPropDef#has_supercall for (self: Object): Bool */
1043 short int VIRTUAL_modelize_property__MPropDef__has_supercall(val* self) {
1044 short int var /* : Bool */;
1045 short int var1 /* : Bool */;
1046 var1 = modelize_property__MPropDef__has_supercall(self);
1047 var = var1;
1048 RET_LABEL:;
1049 return var;
1050 }
1051 /* method modelize_property#MPropDef#has_supercall= for (self: MPropDef, Bool) */
1052 void modelize_property__MPropDef__has_supercall_61d(val* self, short int p0) {
1053 self->attrs[COLOR_modelize_property__MPropDef___64dhas_supercall].s = p0; /* @has_supercall on <self:MPropDef> */
1054 RET_LABEL:;
1055 }
1056 /* method modelize_property#MPropDef#has_supercall= for (self: Object, Bool) */
1057 void VIRTUAL_modelize_property__MPropDef__has_supercall_61d(val* self, short int p0) {
1058 modelize_property__MPropDef__has_supercall_61d(self, p0);
1059 RET_LABEL:;
1060 }
1061 /* method modelize_property#AClassdef#build_properties_is_done for (self: AClassdef): Bool */
1062 short int modelize_property__AClassdef__build_properties_is_done(val* self) {
1063 short int var /* : Bool */;
1064 short int var1 /* : Bool */;
1065 var1 = self->attrs[COLOR_modelize_property__AClassdef___64dbuild_properties_is_done].s; /* @build_properties_is_done on <self:AClassdef> */
1066 var = var1;
1067 RET_LABEL:;
1068 return var;
1069 }
1070 /* method modelize_property#AClassdef#build_properties_is_done for (self: Object): Bool */
1071 short int VIRTUAL_modelize_property__AClassdef__build_properties_is_done(val* self) {
1072 short int var /* : Bool */;
1073 short int var1 /* : Bool */;
1074 var1 = modelize_property__AClassdef__build_properties_is_done(self);
1075 var = var1;
1076 RET_LABEL:;
1077 return var;
1078 }
1079 /* method modelize_property#AClassdef#build_properties_is_done= for (self: AClassdef, Bool) */
1080 void modelize_property__AClassdef__build_properties_is_done_61d(val* self, short int p0) {
1081 self->attrs[COLOR_modelize_property__AClassdef___64dbuild_properties_is_done].s = p0; /* @build_properties_is_done on <self:AClassdef> */
1082 RET_LABEL:;
1083 }
1084 /* method modelize_property#AClassdef#build_properties_is_done= for (self: Object, Bool) */
1085 void VIRTUAL_modelize_property__AClassdef__build_properties_is_done_61d(val* self, short int p0) {
1086 modelize_property__AClassdef__build_properties_is_done_61d(self, p0);
1087 RET_LABEL:;
1088 }
1089 /* method modelize_property#AClassdef#super_inits for (self: AClassdef): nullable Collection[MMethod] */
1090 val* modelize_property__AClassdef__super_inits(val* self) {
1091 val* var /* : nullable Collection[MMethod] */;
1092 val* var1 /* : nullable Collection[MMethod] */;
1093 var1 = self->attrs[COLOR_modelize_property__AClassdef___64dsuper_inits].val; /* @super_inits on <self:AClassdef> */
1094 var = var1;
1095 RET_LABEL:;
1096 return var;
1097 }
1098 /* method modelize_property#AClassdef#super_inits for (self: Object): nullable Collection[MMethod] */
1099 val* VIRTUAL_modelize_property__AClassdef__super_inits(val* self) {
1100 val* var /* : nullable Collection[MMethod] */;
1101 val* var1 /* : nullable Collection[MMethod] */;
1102 var1 = modelize_property__AClassdef__super_inits(self);
1103 var = var1;
1104 RET_LABEL:;
1105 return var;
1106 }
1107 /* method modelize_property#AClassdef#super_inits= for (self: AClassdef, nullable Collection[MMethod]) */
1108 void modelize_property__AClassdef__super_inits_61d(val* self, val* p0) {
1109 self->attrs[COLOR_modelize_property__AClassdef___64dsuper_inits].val = p0; /* @super_inits on <self:AClassdef> */
1110 RET_LABEL:;
1111 }
1112 /* method modelize_property#AClassdef#super_inits= for (self: Object, nullable Collection[MMethod]) */
1113 void VIRTUAL_modelize_property__AClassdef__super_inits_61d(val* self, val* p0) {
1114 modelize_property__AClassdef__super_inits_61d(self, p0);
1115 RET_LABEL:;
1116 }
1117 /* method modelize_property#AClassdef#mfree_init for (self: AClassdef): nullable MMethodDef */
1118 val* modelize_property__AClassdef__mfree_init(val* self) {
1119 val* var /* : nullable MMethodDef */;
1120 val* var1 /* : nullable MMethodDef */;
1121 var1 = self->attrs[COLOR_modelize_property__AClassdef___64dmfree_init].val; /* @mfree_init on <self:AClassdef> */
1122 var = var1;
1123 RET_LABEL:;
1124 return var;
1125 }
1126 /* method modelize_property#AClassdef#mfree_init for (self: Object): nullable MMethodDef */
1127 val* VIRTUAL_modelize_property__AClassdef__mfree_init(val* self) {
1128 val* var /* : nullable MMethodDef */;
1129 val* var1 /* : nullable MMethodDef */;
1130 var1 = modelize_property__AClassdef__mfree_init(self);
1131 var = var1;
1132 RET_LABEL:;
1133 return var;
1134 }
1135 /* method modelize_property#AClassdef#mfree_init= for (self: AClassdef, nullable MMethodDef) */
1136 void modelize_property__AClassdef__mfree_init_61d(val* self, val* p0) {
1137 self->attrs[COLOR_modelize_property__AClassdef___64dmfree_init].val = p0; /* @mfree_init on <self:AClassdef> */
1138 RET_LABEL:;
1139 }
1140 /* method modelize_property#AClassdef#mfree_init= for (self: Object, nullable MMethodDef) */
1141 void VIRTUAL_modelize_property__AClassdef__mfree_init_61d(val* self, val* p0) {
1142 modelize_property__AClassdef__mfree_init_61d(self, p0);
1143 RET_LABEL:;
1144 }
1145 /* method modelize_property#AClassdef#mprop2npropdef for (self: AClassdef): Map[MProperty, APropdef] */
1146 val* modelize_property__AClassdef__mprop2npropdef(val* self) {
1147 val* var /* : Map[MProperty, APropdef] */;
1148 val* var1 /* : Map[MProperty, APropdef] */;
1149 var1 = self->attrs[COLOR_modelize_property__AClassdef___64dmprop2npropdef].val; /* @mprop2npropdef on <self:AClassdef> */
1150 if (var1 == NULL) {
1151 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mprop2npropdef");
1152 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 180);
1153 show_backtrace(1);
1154 }
1155 var = var1;
1156 RET_LABEL:;
1157 return var;
1158 }
1159 /* method modelize_property#AClassdef#mprop2npropdef for (self: Object): Map[MProperty, APropdef] */
1160 val* VIRTUAL_modelize_property__AClassdef__mprop2npropdef(val* self) {
1161 val* var /* : Map[MProperty, APropdef] */;
1162 val* var1 /* : Map[MProperty, APropdef] */;
1163 var1 = modelize_property__AClassdef__mprop2npropdef(self);
1164 var = var1;
1165 RET_LABEL:;
1166 return var;
1167 }
1168 /* method modelize_property#AClassdef#mprop2npropdef= for (self: AClassdef, Map[MProperty, APropdef]) */
1169 void modelize_property__AClassdef__mprop2npropdef_61d(val* self, val* p0) {
1170 self->attrs[COLOR_modelize_property__AClassdef___64dmprop2npropdef].val = p0; /* @mprop2npropdef on <self:AClassdef> */
1171 RET_LABEL:;
1172 }
1173 /* method modelize_property#AClassdef#mprop2npropdef= for (self: Object, Map[MProperty, APropdef]) */
1174 void VIRTUAL_modelize_property__AClassdef__mprop2npropdef_61d(val* self, val* p0) {
1175 modelize_property__AClassdef__mprop2npropdef_61d(self, p0);
1176 RET_LABEL:;
1177 }
1178 /* method modelize_property#Prod#collect_text for (self: Prod): String */
1179 val* modelize_property__Prod__collect_text(val* self) {
1180 val* var /* : String */;
1181 val* var1 /* : TextCollectorVisitor */;
1182 val* var_v /* var v: TextCollectorVisitor */;
1183 val* var2 /* : String */;
1184 static val* varonce;
1185 val* var3 /* : String */;
1186 char* var4 /* : NativeString */;
1187 long var5 /* : Int */;
1188 val* var6 /* : String */;
1189 short int var7 /* : Bool */;
1190 val* var8 /* : String */;
1191 var1 = NEW_modelize_property__TextCollectorVisitor(&type_modelize_property__TextCollectorVisitor);
1192 ((void (*)(val*))(var1->class->vft[COLOR_modelize_property__TextCollectorVisitor__init]))(var1) /* init on <var1:TextCollectorVisitor>*/;
1193 var_v = var1;
1194 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:TextCollectorVisitor>*/;
1195 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_modelize_property__TextCollectorVisitor__text]))(var_v) /* text on <var_v:TextCollectorVisitor>*/;
1196 if (varonce) {
1197 var3 = varonce;
1198 } else {
1199 var4 = "";
1200 var5 = 0;
1201 var6 = string__NativeString__to_s_with_length(var4, var5);
1202 var3 = var6;
1203 varonce = var3;
1204 }
1205 var7 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___33d_61d]))(var2, var3) /* != on <var2:String>*/;
1206 if (!var7) {
1207 fprintf(stderr, "Runtime error: %s", "Assert failed");
1208 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 192);
1209 show_backtrace(1);
1210 }
1211 var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_modelize_property__TextCollectorVisitor__text]))(var_v) /* text on <var_v:TextCollectorVisitor>*/;
1212 var = var8;
1213 goto RET_LABEL;
1214 RET_LABEL:;
1215 return var;
1216 }
1217 /* method modelize_property#Prod#collect_text for (self: Object): String */
1218 val* VIRTUAL_modelize_property__Prod__collect_text(val* self) {
1219 val* var /* : String */;
1220 val* var1 /* : String */;
1221 var1 = modelize_property__Prod__collect_text(self);
1222 var = var1;
1223 RET_LABEL:;
1224 return var;
1225 }
1226 /* method modelize_property#TextCollectorVisitor#text for (self: TextCollectorVisitor): String */
1227 val* modelize_property__TextCollectorVisitor__text(val* self) {
1228 val* var /* : String */;
1229 val* var1 /* : String */;
1230 var1 = self->attrs[COLOR_modelize_property__TextCollectorVisitor___64dtext].val; /* @text on <self:TextCollectorVisitor> */
1231 if (var1 == NULL) {
1232 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @text");
1233 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 199);
1234 show_backtrace(1);
1235 }
1236 var = var1;
1237 RET_LABEL:;
1238 return var;
1239 }
1240 /* method modelize_property#TextCollectorVisitor#text for (self: Object): String */
1241 val* VIRTUAL_modelize_property__TextCollectorVisitor__text(val* self) {
1242 val* var /* : String */;
1243 val* var1 /* : String */;
1244 var1 = modelize_property__TextCollectorVisitor__text(self);
1245 var = var1;
1246 RET_LABEL:;
1247 return var;
1248 }
1249 /* method modelize_property#TextCollectorVisitor#text= for (self: TextCollectorVisitor, String) */
1250 void modelize_property__TextCollectorVisitor__text_61d(val* self, val* p0) {
1251 self->attrs[COLOR_modelize_property__TextCollectorVisitor___64dtext].val = p0; /* @text on <self:TextCollectorVisitor> */
1252 RET_LABEL:;
1253 }
1254 /* method modelize_property#TextCollectorVisitor#text= for (self: Object, String) */
1255 void VIRTUAL_modelize_property__TextCollectorVisitor__text_61d(val* self, val* p0) {
1256 modelize_property__TextCollectorVisitor__text_61d(self, p0);
1257 RET_LABEL:;
1258 }
1259 /* method modelize_property#TextCollectorVisitor#visit for (self: TextCollectorVisitor, ANode) */
1260 void modelize_property__TextCollectorVisitor__visit(val* self, val* p0) {
1261 val* var_n /* var n: ANode */;
1262 short int var /* : Bool */;
1263 int cltype;
1264 int idtype;
1265 val* var_ /* var : TextCollectorVisitor */;
1266 val* var1 /* : String */;
1267 val* var2 /* : String */;
1268 val* var3 /* : String */;
1269 var_n = p0;
1270 /* <var_n:ANode> isa Token */
1271 cltype = type_parser_nodes__Token.color;
1272 idtype = type_parser_nodes__Token.id;
1273 if(cltype >= var_n->type->table_size) {
1274 var = 0;
1275 } else {
1276 var = var_n->type->type_table[cltype] == idtype;
1277 }
1278 if (var){
1279 var_ = self;
1280 var1 = ((val* (*)(val*))(var_->class->vft[COLOR_modelize_property__TextCollectorVisitor__text]))(var_) /* text on <var_:TextCollectorVisitor>*/;
1281 var2 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__Token__text]))(var_n) /* text on <var_n:ANode(Token)>*/;
1282 var3 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_string__String___43d]))(var1, var2) /* + on <var1:String>*/;
1283 ((void (*)(val*, val*))(var_->class->vft[COLOR_modelize_property__TextCollectorVisitor__text_61d]))(var_, var3) /* text= on <var_:TextCollectorVisitor>*/;
1284 } else {
1285 }
1286 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
1287 RET_LABEL:;
1288 }
1289 /* method modelize_property#TextCollectorVisitor#visit for (self: Object, ANode) */
1290 void VIRTUAL_modelize_property__TextCollectorVisitor__visit(val* self, val* p0) {
1291 modelize_property__TextCollectorVisitor__visit(self, p0);
1292 RET_LABEL:;
1293 }
1294 /* method modelize_property#TextCollectorVisitor#init for (self: TextCollectorVisitor) */
1295 void modelize_property__TextCollectorVisitor__init(val* self) {
1296 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:TextCollectorVisitor>*/;
1297 RET_LABEL:;
1298 }
1299 /* method modelize_property#TextCollectorVisitor#init for (self: Object) */
1300 void VIRTUAL_modelize_property__TextCollectorVisitor__init(val* self) {
1301 modelize_property__TextCollectorVisitor__init(self);
1302 RET_LABEL:;
1303 }
1304 /* method modelize_property#APropdef#mpropdef for (self: APropdef): nullable MPropDef */
1305 val* modelize_property__APropdef__mpropdef(val* self) {
1306 val* var /* : nullable MPropDef */;
1307 val* var1 /* : nullable MPropDef */;
1308 var1 = self->attrs[COLOR_modelize_property__APropdef___64dmpropdef].val; /* @mpropdef on <self:APropdef> */
1309 var = var1;
1310 RET_LABEL:;
1311 return var;
1312 }
1313 /* method modelize_property#APropdef#mpropdef for (self: Object): nullable MPropDef */
1314 val* VIRTUAL_modelize_property__APropdef__mpropdef(val* self) {
1315 val* var /* : nullable MPropDef */;
1316 val* var1 /* : nullable MPropDef */;
1317 var1 = modelize_property__APropdef__mpropdef(self);
1318 var = var1;
1319 RET_LABEL:;
1320 return var;
1321 }
1322 /* method modelize_property#APropdef#mpropdef= for (self: APropdef, nullable MPropDef) */
1323 void modelize_property__APropdef__mpropdef_61d(val* self, val* p0) {
1324 short int var /* : Bool */;
1325 int cltype;
1326 int idtype;
1327 const struct type* type_struct;
1328 const char* var_class_name;
1329 /* Covariant cast for argument 0 (mpropdef) <p0:nullable MPropDef> isa nullable MPROPDEF */
1330 /* <p0:nullable MPropDef> isa nullable MPROPDEF */
1331 type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
1332 cltype = type_struct->color;
1333 idtype = type_struct->id;
1334 if(p0 == NULL) {
1335 var = 1;
1336 } else {
1337 if(cltype >= p0->type->table_size) {
1338 var = 0;
1339 } else {
1340 var = p0->type->type_table[cltype] == idtype;
1341 }
1342 }
1343 if (!var) {
1344 var_class_name = p0 == NULL ? "null" : p0->type->name;
1345 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name);
1346 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 211);
1347 show_backtrace(1);
1348 }
1349 self->attrs[COLOR_modelize_property__APropdef___64dmpropdef].val = p0; /* @mpropdef on <self:APropdef> */
1350 RET_LABEL:;
1351 }
1352 /* method modelize_property#APropdef#mpropdef= for (self: Object, nullable MPropDef) */
1353 void VIRTUAL_modelize_property__APropdef__mpropdef_61d(val* self, val* p0) {
1354 modelize_property__APropdef__mpropdef_61d(self, p0);
1355 RET_LABEL:;
1356 }
1357 /* method modelize_property#APropdef#build_property for (self: APropdef, ModelBuilder, AClassdef) */
1358 void modelize_property__APropdef__build_property(val* self, val* p0, val* p1) {
1359 const char* var_class_name;
1360 var_class_name = self == NULL ? "null" : self->type->name;
1361 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "build_property", var_class_name);
1362 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 214);
1363 show_backtrace(1);
1364 RET_LABEL:;
1365 }
1366 /* method modelize_property#APropdef#build_property for (self: Object, ModelBuilder, AClassdef) */
1367 void VIRTUAL_modelize_property__APropdef__build_property(val* self, val* p0, val* p1) {
1368 modelize_property__APropdef__build_property(self, p0, p1);
1369 RET_LABEL:;
1370 }
1371 /* method modelize_property#APropdef#build_signature for (self: APropdef, ModelBuilder, AClassdef) */
1372 void modelize_property__APropdef__build_signature(val* self, val* p0, val* p1) {
1373 const char* var_class_name;
1374 var_class_name = self == NULL ? "null" : self->type->name;
1375 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "build_signature", var_class_name);
1376 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 215);
1377 show_backtrace(1);
1378 RET_LABEL:;
1379 }
1380 /* method modelize_property#APropdef#build_signature for (self: Object, ModelBuilder, AClassdef) */
1381 void VIRTUAL_modelize_property__APropdef__build_signature(val* self, val* p0, val* p1) {
1382 modelize_property__APropdef__build_signature(self, p0, p1);
1383 RET_LABEL:;
1384 }
1385 /* method modelize_property#APropdef#check_signature for (self: APropdef, ModelBuilder, AClassdef) */
1386 void modelize_property__APropdef__check_signature(val* self, val* p0, val* p1) {
1387 const char* var_class_name;
1388 var_class_name = self == NULL ? "null" : self->type->name;
1389 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "check_signature", var_class_name);
1390 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 216);
1391 show_backtrace(1);
1392 RET_LABEL:;
1393 }
1394 /* method modelize_property#APropdef#check_signature for (self: Object, ModelBuilder, AClassdef) */
1395 void VIRTUAL_modelize_property__APropdef__check_signature(val* self, val* p0, val* p1) {
1396 modelize_property__APropdef__check_signature(self, p0, p1);
1397 RET_LABEL:;
1398 }
1399 /* method modelize_property#APropdef#new_property_visibility for (self: APropdef, ModelBuilder, AClassdef, nullable AVisibility): MVisibility */
1400 val* modelize_property__APropdef__new_property_visibility(val* self, val* p0, val* p1, val* p2) {
1401 val* var /* : MVisibility */;
1402 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1403 val* var_nclassdef /* var nclassdef: AClassdef */;
1404 val* var_nvisibility /* var nvisibility: nullable AVisibility */;
1405 val* var1 /* : MVisibility */;
1406 val* var_mvisibility /* var mvisibility: MVisibility */;
1407 val* var2 /* : null */;
1408 short int var3 /* : Bool */;
1409 val* var4 /* : MVisibility */;
1410 val* var5 /* : MVisibility */;
1411 short int var6 /* : Bool */;
1412 static val* varonce;
1413 val* var7 /* : String */;
1414 char* var8 /* : NativeString */;
1415 long var9 /* : Int */;
1416 val* var10 /* : String */;
1417 val* var11 /* : MVisibility */;
1418 val* var12 /* : nullable MClassDef */;
1419 val* var13 /* : MClass */;
1420 val* var14 /* : MVisibility */;
1421 val* var15 /* : MVisibility */;
1422 short int var16 /* : Bool */;
1423 val* var17 /* : MVisibility */;
1424 short int var18 /* : Bool */;
1425 val* var19 /* : null */;
1426 short int var20 /* : Bool */;
1427 static val* varonce21;
1428 val* var22 /* : String */;
1429 char* var23 /* : NativeString */;
1430 long var24 /* : Int */;
1431 val* var25 /* : String */;
1432 val* var26 /* : MVisibility */;
1433 short int var27 /* : Bool */;
1434 val* var28 /* : null */;
1435 short int var29 /* : Bool */;
1436 val* var30 /* : MVisibility */;
1437 var_modelbuilder = p0;
1438 var_nclassdef = p1;
1439 var_nvisibility = p2;
1440 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:APropdef>*/;
1441 var_mvisibility = var1;
1442 var2 = NULL;
1443 if (var_nvisibility == NULL) {
1444 var3 = 0; /* is null */
1445 } else {
1446 var3 = 1; /* arg is null and recv is not */
1447 }
1448 if (var3){
1449 var4 = ((val* (*)(val*))(var_nvisibility->class->vft[COLOR_modelbuilder__AVisibility__mvisibility]))(var_nvisibility) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
1450 var_mvisibility = var4;
1451 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:APropdef>*/;
1452 var6 = ((short int (*)(val*, val*))(var_mvisibility->class->vft[COLOR_kernel__Object___61d_61d]))(var_mvisibility, var5) /* == on <var_mvisibility:MVisibility>*/;
1453 if (var6){
1454 if (varonce) {
1455 var7 = varonce;
1456 } else {
1457 var8 = "Error: intrude is not a legal visibility for properties.";
1458 var9 = 56;
1459 var10 = string__NativeString__to_s_with_length(var8, var9);
1460 var7 = var10;
1461 varonce = var7;
1462 }
1463 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nvisibility, var7) /* error on <var_modelbuilder:ModelBuilder>*/;
1464 var11 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:APropdef>*/;
1465 var_mvisibility = var11;
1466 } else {
1467 }
1468 } else {
1469 }
1470 var12 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
1471 if (var12 == NULL) {
1472 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1473 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 227);
1474 show_backtrace(1);
1475 } else {
1476 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClassDef__mclass]))(var12) /* mclass on <var12:nullable MClassDef>*/;
1477 }
1478 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__visibility]))(var13) /* visibility on <var13:MClass>*/;
1479 var15 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:APropdef>*/;
1480 var16 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var15) /* == on <var14:MVisibility>*/;
1481 if (var16){
1482 var17 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__protected_visibility]))(self) /* protected_visibility on <self:APropdef>*/;
1483 var18 = ((short int (*)(val*, val*))(var_mvisibility->class->vft[COLOR_kernel__Object___61d_61d]))(var_mvisibility, var17) /* == on <var_mvisibility:MVisibility>*/;
1484 if (var18){
1485 var19 = NULL;
1486 if (var_nvisibility == NULL) {
1487 var20 = 0; /* is null */
1488 } else {
1489 var20 = 1; /* arg is null and recv is not */
1490 }
1491 if (!var20) {
1492 fprintf(stderr, "Runtime error: %s", "Assert failed");
1493 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 229);
1494 show_backtrace(1);
1495 }
1496 if (varonce21) {
1497 var22 = varonce21;
1498 } else {
1499 var23 = "Error: The only legal visibility for properties in a private class is private.";
1500 var24 = 78;
1501 var25 = string__NativeString__to_s_with_length(var23, var24);
1502 var22 = var25;
1503 varonce21 = var22;
1504 }
1505 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nvisibility, var22) /* error on <var_modelbuilder:ModelBuilder>*/;
1506 } else {
1507 var26 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:APropdef>*/;
1508 var27 = ((short int (*)(val*, val*))(var_mvisibility->class->vft[COLOR_kernel__Object___61d_61d]))(var_mvisibility, var26) /* == on <var_mvisibility:MVisibility>*/;
1509 if (var27){
1510 var28 = NULL;
1511 if (var_nvisibility == NULL) {
1512 var29 = 0; /* is null */
1513 } else {
1514 var29 = 1; /* arg is null and recv is not */
1515 }
1516 if (!var29) {
1517 fprintf(stderr, "Runtime error: %s", "Assert failed");
1518 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 232);
1519 show_backtrace(1);
1520 }
1521 } else {
1522 }
1523 }
1524 var30 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:APropdef>*/;
1525 var_mvisibility = var30;
1526 } else {
1527 }
1528 var = var_mvisibility;
1529 goto RET_LABEL;
1530 RET_LABEL:;
1531 return var;
1532 }
1533 /* method modelize_property#APropdef#new_property_visibility for (self: Object, ModelBuilder, AClassdef, nullable AVisibility): MVisibility */
1534 val* VIRTUAL_modelize_property__APropdef__new_property_visibility(val* self, val* p0, val* p1, val* p2) {
1535 val* var /* : MVisibility */;
1536 val* var1 /* : MVisibility */;
1537 var1 = modelize_property__APropdef__new_property_visibility(self, p0, p1, p2);
1538 var = var1;
1539 RET_LABEL:;
1540 return var;
1541 }
1542 /* method modelize_property#APropdef#check_redef_property_visibility for (self: APropdef, ModelBuilder, AClassdef, nullable AVisibility, MProperty) */
1543 void modelize_property__APropdef__check_redef_property_visibility(val* self, val* p0, val* p1, val* p2, val* p3) {
1544 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1545 val* var_nclassdef /* var nclassdef: AClassdef */;
1546 val* var_nvisibility /* var nvisibility: nullable AVisibility */;
1547 val* var_mprop /* var mprop: MProperty */;
1548 val* var /* : null */;
1549 short int var1 /* : Bool */;
1550 val* var2 /* : MVisibility */;
1551 val* var_mvisibility /* var mvisibility: MVisibility */;
1552 short int var3 /* : Bool */;
1553 val* var4 /* : MVisibility */;
1554 short int var5 /* : Bool */;
1555 short int var_ /* var : Bool */;
1556 val* var6 /* : MVisibility */;
1557 short int var7 /* : Bool */;
1558 static val* varonce;
1559 val* var8 /* : String */;
1560 char* var9 /* : NativeString */;
1561 long var10 /* : Int */;
1562 val* var11 /* : String */;
1563 val* var12 /* : MVisibility */;
1564 static val* varonce13;
1565 val* var14 /* : String */;
1566 char* var15 /* : NativeString */;
1567 long var16 /* : Int */;
1568 val* var17 /* : String */;
1569 val* var18 /* : Array[Object] */;
1570 long var19 /* : Int */;
1571 val* var20 /* : NativeArray[Object] */;
1572 val* var21 /* : String */;
1573 var_modelbuilder = p0;
1574 var_nclassdef = p1;
1575 var_nvisibility = p2;
1576 var_mprop = p3;
1577 var = NULL;
1578 if (var_nvisibility == NULL) {
1579 var1 = 1; /* is null */
1580 } else {
1581 var1 = 0; /* arg is null but recv is not */
1582 }
1583 if (var1){
1584 goto RET_LABEL;
1585 } else {
1586 }
1587 var2 = ((val* (*)(val*))(var_nvisibility->class->vft[COLOR_modelbuilder__AVisibility__mvisibility]))(var_nvisibility) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
1588 var_mvisibility = var2;
1589 var4 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__visibility]))(var_mprop) /* visibility on <var_mprop:MProperty>*/;
1590 var5 = ((short int (*)(val*, val*))(var_mvisibility->class->vft[COLOR_kernel__Object___33d_61d]))(var_mvisibility, var4) /* != on <var_mvisibility:MVisibility>*/;
1591 var_ = var5;
1592 if (var5){
1593 var6 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:APropdef>*/;
1594 var7 = ((short int (*)(val*, val*))(var_mvisibility->class->vft[COLOR_kernel__Object___33d_61d]))(var_mvisibility, var6) /* != on <var_mvisibility:MVisibility>*/;
1595 var3 = var7;
1596 } else {
1597 var3 = var_;
1598 }
1599 if (var3){
1600 if (varonce) {
1601 var8 = varonce;
1602 } else {
1603 var9 = "Error: redefinition changed the visibility from a ";
1604 var10 = 50;
1605 var11 = string__NativeString__to_s_with_length(var9, var10);
1606 var8 = var11;
1607 varonce = var8;
1608 }
1609 var12 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__visibility]))(var_mprop) /* visibility on <var_mprop:MProperty>*/;
1610 if (varonce13) {
1611 var14 = varonce13;
1612 } else {
1613 var15 = " to a ";
1614 var16 = 6;
1615 var17 = string__NativeString__to_s_with_length(var15, var16);
1616 var14 = var17;
1617 varonce13 = var14;
1618 }
1619 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
1620 { /* var18 = array_instance Array[Object] */
1621 var19 = 4;
1622 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
1623 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var8;
1624 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var12;
1625 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var14;
1626 ((struct instance_array__NativeArray*)var20)->values[3] = (val*) var_mvisibility;
1627 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
1628 }
1629 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
1630 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nvisibility, var21) /* error on <var_modelbuilder:ModelBuilder>*/;
1631 } else {
1632 }
1633 RET_LABEL:;
1634 }
1635 /* method modelize_property#APropdef#check_redef_property_visibility for (self: Object, ModelBuilder, AClassdef, nullable AVisibility, MProperty) */
1636 void VIRTUAL_modelize_property__APropdef__check_redef_property_visibility(val* self, val* p0, val* p1, val* p2, val* p3) {
1637 modelize_property__APropdef__check_redef_property_visibility(self, p0, p1, p2, p3);
1638 RET_LABEL:;
1639 }
1640 /* method modelize_property#APropdef#check_redef_keyword for (self: APropdef, ModelBuilder, AClassdef, nullable Token, Bool, MProperty): Bool */
1641 short int modelize_property__APropdef__check_redef_keyword(val* self, val* p0, val* p1, val* p2, short int p3, val* p4) {
1642 short int var /* : Bool */;
1643 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1644 val* var_nclassdef /* var nclassdef: AClassdef */;
1645 val* var_kwredef /* var kwredef: nullable Token */;
1646 short int var_need_redef /* var need_redef: Bool */;
1647 val* var_mprop /* var mprop: MProperty */;
1648 val* var1 /* : Map[MProperty, APropdef] */;
1649 short int var2 /* : Bool */;
1650 static val* varonce;
1651 val* var3 /* : String */;
1652 char* var4 /* : NativeString */;
1653 long var5 /* : Int */;
1654 val* var6 /* : String */;
1655 static val* varonce7;
1656 val* var8 /* : String */;
1657 char* var9 /* : NativeString */;
1658 long var10 /* : Int */;
1659 val* var11 /* : String */;
1660 val* var12 /* : nullable MClassDef */;
1661 val* var13 /* : MClass */;
1662 static val* varonce14;
1663 val* var15 /* : String */;
1664 char* var16 /* : NativeString */;
1665 long var17 /* : Int */;
1666 val* var18 /* : String */;
1667 val* var19 /* : Array[Object] */;
1668 long var20 /* : Int */;
1669 val* var21 /* : NativeArray[Object] */;
1670 val* var22 /* : String */;
1671 short int var23 /* : Bool */;
1672 val* var24 /* : null */;
1673 short int var25 /* : Bool */;
1674 static val* varonce26;
1675 val* var27 /* : String */;
1676 char* var28 /* : NativeString */;
1677 long var29 /* : Int */;
1678 val* var30 /* : String */;
1679 val* var31 /* : nullable MClassDef */;
1680 val* var32 /* : MClass */;
1681 static val* varonce33;
1682 val* var34 /* : String */;
1683 char* var35 /* : NativeString */;
1684 long var36 /* : Int */;
1685 val* var37 /* : String */;
1686 val* var38 /* : String */;
1687 static val* varonce39;
1688 val* var40 /* : String */;
1689 char* var41 /* : NativeString */;
1690 long var42 /* : Int */;
1691 val* var43 /* : String */;
1692 val* var44 /* : Array[Object] */;
1693 long var45 /* : Int */;
1694 val* var46 /* : NativeArray[Object] */;
1695 val* var47 /* : String */;
1696 short int var48 /* : Bool */;
1697 short int var49 /* : Bool */;
1698 static val* varonce50;
1699 val* var51 /* : String */;
1700 char* var52 /* : NativeString */;
1701 long var53 /* : Int */;
1702 val* var54 /* : String */;
1703 val* var55 /* : nullable MClassDef */;
1704 val* var56 /* : MClass */;
1705 static val* varonce57;
1706 val* var58 /* : String */;
1707 char* var59 /* : NativeString */;
1708 long var60 /* : Int */;
1709 val* var61 /* : String */;
1710 val* var62 /* : String */;
1711 static val* varonce63;
1712 val* var64 /* : String */;
1713 char* var65 /* : NativeString */;
1714 long var66 /* : Int */;
1715 val* var67 /* : String */;
1716 val* var68 /* : Array[Object] */;
1717 long var69 /* : Int */;
1718 val* var70 /* : NativeArray[Object] */;
1719 val* var71 /* : String */;
1720 short int var72 /* : Bool */;
1721 short int var73 /* : Bool */;
1722 var_modelbuilder = p0;
1723 var_nclassdef = p1;
1724 var_kwredef = p2;
1725 var_need_redef = p3;
1726 var_mprop = p4;
1727 var1 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
1728 var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var1, var_mprop) /* has_key on <var1:Map[MProperty, APropdef]>*/;
1729 if (var2){
1730 if (varonce) {
1731 var3 = varonce;
1732 } else {
1733 var4 = "Error: A property ";
1734 var5 = 18;
1735 var6 = string__NativeString__to_s_with_length(var4, var5);
1736 var3 = var6;
1737 varonce = var3;
1738 }
1739 if (varonce7) {
1740 var8 = varonce7;
1741 } else {
1742 var9 = " is already defined in class ";
1743 var10 = 29;
1744 var11 = string__NativeString__to_s_with_length(var9, var10);
1745 var8 = var11;
1746 varonce7 = var8;
1747 }
1748 var12 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
1749 if (var12 == NULL) {
1750 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1751 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 253);
1752 show_backtrace(1);
1753 } else {
1754 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClassDef__mclass]))(var12) /* mclass on <var12:nullable MClassDef>*/;
1755 }
1756 if (varonce14) {
1757 var15 = varonce14;
1758 } else {
1759 var16 = ".";
1760 var17 = 1;
1761 var18 = string__NativeString__to_s_with_length(var16, var17);
1762 var15 = var18;
1763 varonce14 = var15;
1764 }
1765 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
1766 { /* var19 = array_instance Array[Object] */
1767 var20 = 5;
1768 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
1769 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var3;
1770 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_mprop;
1771 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var8;
1772 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13;
1773 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
1774 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
1775 }
1776 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
1777 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var22) /* error on <var_modelbuilder:ModelBuilder>*/;
1778 var23 = 0;
1779 var = var23;
1780 goto RET_LABEL;
1781 } else {
1782 }
1783 var24 = NULL;
1784 if (var_kwredef == NULL) {
1785 var25 = 1; /* is null */
1786 } else {
1787 var25 = 0; /* arg is null but recv is not */
1788 }
1789 if (var25){
1790 if (var_need_redef){
1791 if (varonce26) {
1792 var27 = varonce26;
1793 } else {
1794 var28 = "Redef error: ";
1795 var29 = 13;
1796 var30 = string__NativeString__to_s_with_length(var28, var29);
1797 var27 = var30;
1798 varonce26 = var27;
1799 }
1800 var31 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
1801 if (var31 == NULL) {
1802 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1803 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 258);
1804 show_backtrace(1);
1805 } else {
1806 var32 = ((val* (*)(val*))(var31->class->vft[COLOR_model__MClassDef__mclass]))(var31) /* mclass on <var31:nullable MClassDef>*/;
1807 }
1808 if (varonce33) {
1809 var34 = varonce33;
1810 } else {
1811 var35 = "::";
1812 var36 = 2;
1813 var37 = string__NativeString__to_s_with_length(var35, var36);
1814 var34 = var37;
1815 varonce33 = var34;
1816 }
1817 var38 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__name]))(var_mprop) /* name on <var_mprop:MProperty>*/;
1818 if (varonce39) {
1819 var40 = varonce39;
1820 } else {
1821 var41 = " is an inherited property. To redefine it, add the redef keyword.";
1822 var42 = 65;
1823 var43 = string__NativeString__to_s_with_length(var41, var42);
1824 var40 = var43;
1825 varonce39 = var40;
1826 }
1827 var44 = NEW_array__Array(&type_array__Arraykernel__Object);
1828 { /* var44 = array_instance Array[Object] */
1829 var45 = 5;
1830 var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
1831 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var27;
1832 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var32;
1833 ((struct instance_array__NativeArray*)var46)->values[2] = (val*) var34;
1834 ((struct instance_array__NativeArray*)var46)->values[3] = (val*) var38;
1835 ((struct instance_array__NativeArray*)var46)->values[4] = (val*) var40;
1836 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
1837 }
1838 var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
1839 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var47) /* error on <var_modelbuilder:ModelBuilder>*/;
1840 var48 = 0;
1841 var = var48;
1842 goto RET_LABEL;
1843 } else {
1844 }
1845 } else {
1846 var49 = !var_need_redef;
1847 if (var49){
1848 if (varonce50) {
1849 var51 = varonce50;
1850 } else {
1851 var52 = "Error: No property ";
1852 var53 = 19;
1853 var54 = string__NativeString__to_s_with_length(var52, var53);
1854 var51 = var54;
1855 varonce50 = var51;
1856 }
1857 var55 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
1858 if (var55 == NULL) {
1859 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1860 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 263);
1861 show_backtrace(1);
1862 } else {
1863 var56 = ((val* (*)(val*))(var55->class->vft[COLOR_model__MClassDef__mclass]))(var55) /* mclass on <var55:nullable MClassDef>*/;
1864 }
1865 if (varonce57) {
1866 var58 = varonce57;
1867 } else {
1868 var59 = "::";
1869 var60 = 2;
1870 var61 = string__NativeString__to_s_with_length(var59, var60);
1871 var58 = var61;
1872 varonce57 = var58;
1873 }
1874 var62 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__name]))(var_mprop) /* name on <var_mprop:MProperty>*/;
1875 if (varonce63) {
1876 var64 = varonce63;
1877 } else {
1878 var65 = " is inherited. Remove the redef keyword to define a new property.";
1879 var66 = 65;
1880 var67 = string__NativeString__to_s_with_length(var65, var66);
1881 var64 = var67;
1882 varonce63 = var64;
1883 }
1884 var68 = NEW_array__Array(&type_array__Arraykernel__Object);
1885 { /* var68 = array_instance Array[Object] */
1886 var69 = 5;
1887 var70 = NEW_array__NativeArray(var69, &type_array__NativeArraykernel__Object);
1888 ((struct instance_array__NativeArray*)var70)->values[0] = (val*) var51;
1889 ((struct instance_array__NativeArray*)var70)->values[1] = (val*) var56;
1890 ((struct instance_array__NativeArray*)var70)->values[2] = (val*) var58;
1891 ((struct instance_array__NativeArray*)var70)->values[3] = (val*) var62;
1892 ((struct instance_array__NativeArray*)var70)->values[4] = (val*) var64;
1893 ((void (*)(val*, val*, long))(var68->class->vft[COLOR_array__Array__with_native]))(var68, var70, var69) /* with_native on <var68:Array[Object]>*/;
1894 }
1895 var71 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on <var68:Array[Object]>*/;
1896 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var71) /* error on <var_modelbuilder:ModelBuilder>*/;
1897 var72 = 0;
1898 var = var72;
1899 goto RET_LABEL;
1900 } else {
1901 }
1902 }
1903 var73 = 1;
1904 var = var73;
1905 goto RET_LABEL;
1906 RET_LABEL:;
1907 return var;
1908 }
1909 /* method modelize_property#APropdef#check_redef_keyword for (self: Object, ModelBuilder, AClassdef, nullable Token, Bool, MProperty): Bool */
1910 short int VIRTUAL_modelize_property__APropdef__check_redef_keyword(val* self, val* p0, val* p1, val* p2, short int p3, val* p4) {
1911 short int var /* : Bool */;
1912 short int var1 /* : Bool */;
1913 var1 = modelize_property__APropdef__check_redef_keyword(self, p0, p1, p2, p3, p4);
1914 var = var1;
1915 RET_LABEL:;
1916 return var;
1917 }
1918 /* method modelize_property#ASignature#is_visited for (self: ASignature): Bool */
1919 short int modelize_property__ASignature__is_visited(val* self) {
1920 short int var /* : Bool */;
1921 short int var1 /* : Bool */;
1922 var1 = self->attrs[COLOR_modelize_property__ASignature___64dis_visited].s; /* @is_visited on <self:ASignature> */
1923 var = var1;
1924 RET_LABEL:;
1925 return var;
1926 }
1927 /* method modelize_property#ASignature#is_visited for (self: Object): Bool */
1928 short int VIRTUAL_modelize_property__ASignature__is_visited(val* self) {
1929 short int var /* : Bool */;
1930 short int var1 /* : Bool */;
1931 var1 = modelize_property__ASignature__is_visited(self);
1932 var = var1;
1933 RET_LABEL:;
1934 return var;
1935 }
1936 /* method modelize_property#ASignature#is_visited= for (self: ASignature, Bool) */
1937 void modelize_property__ASignature__is_visited_61d(val* self, short int p0) {
1938 self->attrs[COLOR_modelize_property__ASignature___64dis_visited].s = p0; /* @is_visited on <self:ASignature> */
1939 RET_LABEL:;
1940 }
1941 /* method modelize_property#ASignature#is_visited= for (self: Object, Bool) */
1942 void VIRTUAL_modelize_property__ASignature__is_visited_61d(val* self, short int p0) {
1943 modelize_property__ASignature__is_visited_61d(self, p0);
1944 RET_LABEL:;
1945 }
1946 /* method modelize_property#ASignature#param_names for (self: ASignature): Array[String] */
1947 val* modelize_property__ASignature__param_names(val* self) {
1948 val* var /* : Array[String] */;
1949 val* var1 /* : Array[String] */;
1950 var1 = self->attrs[COLOR_modelize_property__ASignature___64dparam_names].val; /* @param_names on <self:ASignature> */
1951 if (var1 == NULL) {
1952 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @param_names");
1953 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 275);
1954 show_backtrace(1);
1955 }
1956 var = var1;
1957 RET_LABEL:;
1958 return var;
1959 }
1960 /* method modelize_property#ASignature#param_names for (self: Object): Array[String] */
1961 val* VIRTUAL_modelize_property__ASignature__param_names(val* self) {
1962 val* var /* : Array[String] */;
1963 val* var1 /* : Array[String] */;
1964 var1 = modelize_property__ASignature__param_names(self);
1965 var = var1;
1966 RET_LABEL:;
1967 return var;
1968 }
1969 /* method modelize_property#ASignature#param_names= for (self: ASignature, Array[String]) */
1970 void modelize_property__ASignature__param_names_61d(val* self, val* p0) {
1971 self->attrs[COLOR_modelize_property__ASignature___64dparam_names].val = p0; /* @param_names on <self:ASignature> */
1972 RET_LABEL:;
1973 }
1974 /* method modelize_property#ASignature#param_names= for (self: Object, Array[String]) */
1975 void VIRTUAL_modelize_property__ASignature__param_names_61d(val* self, val* p0) {
1976 modelize_property__ASignature__param_names_61d(self, p0);
1977 RET_LABEL:;
1978 }
1979 /* method modelize_property#ASignature#param_types for (self: ASignature): Array[MType] */
1980 val* modelize_property__ASignature__param_types(val* self) {
1981 val* var /* : Array[MType] */;
1982 val* var1 /* : Array[MType] */;
1983 var1 = self->attrs[COLOR_modelize_property__ASignature___64dparam_types].val; /* @param_types on <self:ASignature> */
1984 if (var1 == NULL) {
1985 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @param_types");
1986 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 278);
1987 show_backtrace(1);
1988 }
1989 var = var1;
1990 RET_LABEL:;
1991 return var;
1992 }
1993 /* method modelize_property#ASignature#param_types for (self: Object): Array[MType] */
1994 val* VIRTUAL_modelize_property__ASignature__param_types(val* self) {
1995 val* var /* : Array[MType] */;
1996 val* var1 /* : Array[MType] */;
1997 var1 = modelize_property__ASignature__param_types(self);
1998 var = var1;
1999 RET_LABEL:;
2000 return var;
2001 }
2002 /* method modelize_property#ASignature#param_types= for (self: ASignature, Array[MType]) */
2003 void modelize_property__ASignature__param_types_61d(val* self, val* p0) {
2004 self->attrs[COLOR_modelize_property__ASignature___64dparam_types].val = p0; /* @param_types on <self:ASignature> */
2005 RET_LABEL:;
2006 }
2007 /* method modelize_property#ASignature#param_types= for (self: Object, Array[MType]) */
2008 void VIRTUAL_modelize_property__ASignature__param_types_61d(val* self, val* p0) {
2009 modelize_property__ASignature__param_types_61d(self, p0);
2010 RET_LABEL:;
2011 }
2012 /* method modelize_property#ASignature#vararg_rank for (self: ASignature): Int */
2013 long modelize_property__ASignature__vararg_rank(val* self) {
2014 long var /* : Int */;
2015 long var1 /* : Int */;
2016 var1 = self->attrs[COLOR_modelize_property__ASignature___64dvararg_rank].l; /* @vararg_rank on <self:ASignature> */
2017 var = var1;
2018 RET_LABEL:;
2019 return var;
2020 }
2021 /* method modelize_property#ASignature#vararg_rank for (self: Object): Int */
2022 long VIRTUAL_modelize_property__ASignature__vararg_rank(val* self) {
2023 long var /* : Int */;
2024 long var1 /* : Int */;
2025 var1 = modelize_property__ASignature__vararg_rank(self);
2026 var = var1;
2027 RET_LABEL:;
2028 return var;
2029 }
2030 /* method modelize_property#ASignature#vararg_rank= for (self: ASignature, Int) */
2031 void modelize_property__ASignature__vararg_rank_61d(val* self, long p0) {
2032 self->attrs[COLOR_modelize_property__ASignature___64dvararg_rank].l = p0; /* @vararg_rank on <self:ASignature> */
2033 RET_LABEL:;
2034 }
2035 /* method modelize_property#ASignature#vararg_rank= for (self: Object, Int) */
2036 void VIRTUAL_modelize_property__ASignature__vararg_rank_61d(val* self, long p0) {
2037 modelize_property__ASignature__vararg_rank_61d(self, p0);
2038 RET_LABEL:;
2039 }
2040 /* method modelize_property#ASignature#ret_type for (self: ASignature): nullable MType */
2041 val* modelize_property__ASignature__ret_type(val* self) {
2042 val* var /* : nullable MType */;
2043 val* var1 /* : nullable MType */;
2044 var1 = self->attrs[COLOR_modelize_property__ASignature___64dret_type].val; /* @ret_type on <self:ASignature> */
2045 var = var1;
2046 RET_LABEL:;
2047 return var;
2048 }
2049 /* method modelize_property#ASignature#ret_type for (self: Object): nullable MType */
2050 val* VIRTUAL_modelize_property__ASignature__ret_type(val* self) {
2051 val* var /* : nullable MType */;
2052 val* var1 /* : nullable MType */;
2053 var1 = modelize_property__ASignature__ret_type(self);
2054 var = var1;
2055 RET_LABEL:;
2056 return var;
2057 }
2058 /* method modelize_property#ASignature#ret_type= for (self: ASignature, nullable MType) */
2059 void modelize_property__ASignature__ret_type_61d(val* self, val* p0) {
2060 self->attrs[COLOR_modelize_property__ASignature___64dret_type].val = p0; /* @ret_type on <self:ASignature> */
2061 RET_LABEL:;
2062 }
2063 /* method modelize_property#ASignature#ret_type= for (self: Object, nullable MType) */
2064 void VIRTUAL_modelize_property__ASignature__ret_type_61d(val* self, val* p0) {
2065 modelize_property__ASignature__ret_type_61d(self, p0);
2066 RET_LABEL:;
2067 }
2068 /* method modelize_property#ASignature#visit_signature for (self: ASignature, ModelBuilder, AClassdef): Bool */
2069 short int modelize_property__ASignature__visit_signature(val* self, val* p0, val* p1) {
2070 short int var /* : Bool */;
2071 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2072 val* var_nclassdef /* var nclassdef: AClassdef */;
2073 val* var1 /* : Array[String] */;
2074 val* var_param_names /* var param_names: Array[String] */;
2075 val* var2 /* : Array[MType] */;
2076 val* var_param_types /* var param_types: Array[MType] */;
2077 val* var3 /* : ANodes[AParam] */;
2078 val* var4 /* : Iterator[nullable Object] */;
2079 short int var5 /* : Bool */;
2080 val* var6 /* : nullable Object */;
2081 val* var_np /* var np: AParam */;
2082 val* var7 /* : TId */;
2083 val* var8 /* : String */;
2084 val* var9 /* : nullable AType */;
2085 val* var_ntype /* var ntype: nullable AType */;
2086 val* var10 /* : null */;
2087 short int var11 /* : Bool */;
2088 val* var12 /* : nullable MType */;
2089 val* var_mtype /* var mtype: nullable MType */;
2090 val* var13 /* : null */;
2091 short int var14 /* : Bool */;
2092 short int var15 /* : Bool */;
2093 val* var16 /* : Range[Int] */;
2094 long var17 /* : Int */;
2095 long var18 /* : Int */;
2096 long var19 /* : Int */;
2097 long var20 /* : Int */;
2098 long var22 /* : Int */;
2099 val* var23 /* : Discrete */;
2100 val* var24 /* : Discrete */;
2101 val* var25 /* : Iterator[nullable Object] */;
2102 short int var26 /* : Bool */;
2103 val* var27 /* : nullable Object */;
2104 long var_i /* var i: Int */;
2105 long var28 /* : Int */;
2106 val* var29 /* : nullable TDotdotdot */;
2107 val* var30 /* : null */;
2108 short int var31 /* : Bool */;
2109 long var32 /* : Int */;
2110 long var33 /* : Int */;
2111 long var34 /* : Int */;
2112 long var36 /* : Int */;
2113 short int var37 /* : Bool */;
2114 short int var39 /* : Bool */;
2115 short int var40 /* : Bool */;
2116 static val* varonce;
2117 val* var41 /* : String */;
2118 char* var42 /* : NativeString */;
2119 long var43 /* : Int */;
2120 val* var44 /* : String */;
2121 long var45 /* : Int */;
2122 val* var46 /* : nullable Object */;
2123 static val* varonce47;
2124 val* var48 /* : String */;
2125 char* var49 /* : NativeString */;
2126 long var50 /* : Int */;
2127 val* var51 /* : String */;
2128 val* var52 /* : Array[Object] */;
2129 long var53 /* : Int */;
2130 val* var54 /* : NativeArray[Object] */;
2131 val* var55 /* : String */;
2132 short int var56 /* : Bool */;
2133 long var57 /* : Int */;
2134 long var58 /* : Int */;
2135 long var59 /* : Int */;
2136 long var61 /* : Int */;
2137 val* var63 /* : nullable AType */;
2138 val* var_ntype64 /* var ntype: nullable AType */;
2139 val* var65 /* : null */;
2140 short int var66 /* : Bool */;
2141 val* var67 /* : nullable MType */;
2142 val* var68 /* : nullable MType */;
2143 val* var69 /* : null */;
2144 short int var70 /* : Bool */;
2145 short int var71 /* : Bool */;
2146 short int var72 /* : Bool */;
2147 short int var73 /* : Bool */;
2148 var_modelbuilder = p0;
2149 var_nclassdef = p1;
2150 var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_names]))(self) /* param_names on <self:ASignature>*/;
2151 var_param_names = var1;
2152 var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_types]))(self) /* param_types on <self:ASignature>*/;
2153 var_param_types = var2;
2154 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_params]))(self) /* n_params on <self:ASignature>*/;
2155 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:ANodes[AParam]>*/;
2156 for(;;) {
2157 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
2158 if(!var5) break;
2159 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
2160 var_np = var6;
2161 var7 = ((val* (*)(val*))(var_np->class->vft[COLOR_parser_nodes__AParam__n_id]))(var_np) /* n_id on <var_np:AParam>*/;
2162 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_parser_nodes__Token__text]))(var7) /* text on <var7:TId>*/;
2163 ((void (*)(val*, val*))(var_param_names->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_param_names, var8) /* add on <var_param_names:Array[String]>*/;
2164 var9 = ((val* (*)(val*))(var_np->class->vft[COLOR_parser_nodes__AParam__n_type]))(var_np) /* n_type on <var_np:AParam>*/;
2165 var_ntype = var9;
2166 var10 = NULL;
2167 if (var_ntype == NULL) {
2168 var11 = 0; /* is null */
2169 } else {
2170 var11 = 1; /* arg is null and recv is not */
2171 }
2172 if (var11){
2173 var12 = ((val* (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var_modelbuilder, var_nclassdef, var_ntype) /* resolve_mtype on <var_modelbuilder:ModelBuilder>*/;
2174 var_mtype = var12;
2175 var13 = NULL;
2176 if (var_mtype == NULL) {
2177 var14 = 1; /* is null */
2178 } else {
2179 var14 = 0; /* arg is null but recv is not */
2180 }
2181 if (var14){
2182 var15 = 0;
2183 var = var15;
2184 goto RET_LABEL;
2185 } else {
2186 }
2187 var16 = NEW_range__Range(&type_range__Rangekernel__Int);
2188 var17 = 0;
2189 var18 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
2190 var19 = ((long (*)(val*))(var_param_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_types) /* length on <var_param_types:Array[MType]>*/;
2191 { /* Inline kernel#Int#- (var18,var19) */
2192 var22 = var18 - var19;
2193 var20 = var22;
2194 goto RET_LABEL21;
2195 RET_LABEL21:(void)0;
2196 }
2197 var23 = BOX_kernel__Int(var17); /* autobox from Int to Discrete */
2198 var24 = BOX_kernel__Int(var20); /* autobox from Int to Discrete */
2199 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_range__Range__without_last]))(var16, var23, var24) /* without_last on <var16:Range[Int]>*/;
2200 var25 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:Range[Int]>*/;
2201 for(;;) {
2202 var26 = ((short int (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var25) /* is_ok on <var25:Iterator[nullable Object]>*/;
2203 if(!var26) break;
2204 var27 = ((val* (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__item]))(var25) /* item on <var25:Iterator[nullable Object]>*/;
2205 var28 = ((struct instance_kernel__Int*)var27)->value; /* autounbox from nullable Object to Int */;
2206 var_i = var28;
2207 ((void (*)(val*, val*))(var_param_types->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_param_types, var_mtype) /* add on <var_param_types:Array[MType]>*/;
2208 CONTINUE_label: (void)0;
2209 ((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__next]))(var25) /* next on <var25:Iterator[nullable Object]>*/;
2210 }
2211 BREAK_label: (void)0;
2212 var29 = ((val* (*)(val*))(var_np->class->vft[COLOR_parser_nodes__AParam__n_dotdotdot]))(var_np) /* n_dotdotdot on <var_np:AParam>*/;
2213 var30 = NULL;
2214 if (var29 == NULL) {
2215 var31 = 0; /* is null */
2216 } else {
2217 var31 = 1; /* arg is null and recv is not */
2218 }
2219 if (var31){
2220 var32 = ((long (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__vararg_rank]))(self) /* vararg_rank on <self:ASignature>*/;
2221 var33 = 1;
2222 { /* Inline kernel#Int#unary - (var33) */
2223 var36 = -var33;
2224 var34 = var36;
2225 goto RET_LABEL35;
2226 RET_LABEL35:(void)0;
2227 }
2228 { /* Inline kernel#Int#!= (var32,var34) */
2229 var39 = var32 == var34;
2230 var40 = !var39;
2231 var37 = var40;
2232 goto RET_LABEL38;
2233 RET_LABEL38:(void)0;
2234 }
2235 if (var37){
2236 if (varonce) {
2237 var41 = varonce;
2238 } else {
2239 var42 = "Error: ";
2240 var43 = 7;
2241 var44 = string__NativeString__to_s_with_length(var42, var43);
2242 var41 = var44;
2243 varonce = var41;
2244 }
2245 var45 = ((long (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__vararg_rank]))(self) /* vararg_rank on <self:ASignature>*/;
2246 var46 = ((val* (*)(val*, long))(var_param_names->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_param_names, var45) /* [] on <var_param_names:Array[String]>*/;
2247 if (varonce47) {
2248 var48 = varonce47;
2249 } else {
2250 var49 = " is already a vararg";
2251 var50 = 20;
2252 var51 = string__NativeString__to_s_with_length(var49, var50);
2253 var48 = var51;
2254 varonce47 = var48;
2255 }
2256 var52 = NEW_array__Array(&type_array__Arraykernel__Object);
2257 { /* var52 = array_instance Array[Object] */
2258 var53 = 3;
2259 var54 = NEW_array__NativeArray(var53, &type_array__NativeArraykernel__Object);
2260 ((struct instance_array__NativeArray*)var54)->values[0] = (val*) var41;
2261 ((struct instance_array__NativeArray*)var54)->values[1] = (val*) var46;
2262 ((struct instance_array__NativeArray*)var54)->values[2] = (val*) var48;
2263 ((void (*)(val*, val*, long))(var52->class->vft[COLOR_array__Array__with_native]))(var52, var54, var53) /* with_native on <var52:Array[Object]>*/;
2264 }
2265 var55 = ((val* (*)(val*))(var52->class->vft[COLOR_string__Object__to_s]))(var52) /* to_s on <var52:Array[Object]>*/;
2266 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_np, var55) /* error on <var_modelbuilder:ModelBuilder>*/;
2267 var56 = 0;
2268 var = var56;
2269 goto RET_LABEL;
2270 } else {
2271 var57 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
2272 var58 = 1;
2273 { /* Inline kernel#Int#- (var57,var58) */
2274 var61 = var57 - var58;
2275 var59 = var61;
2276 goto RET_LABEL60;
2277 RET_LABEL60:(void)0;
2278 }
2279 ((void (*)(val*, long))(self->class->vft[COLOR_modelize_property__ASignature__vararg_rank_61d]))(self, var59) /* vararg_rank= on <self:ASignature>*/;
2280 }
2281 } else {
2282 }
2283 } else {
2284 }
2285 CONTINUE_label62: (void)0;
2286 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
2287 }
2288 BREAK_label62: (void)0;
2289 var63 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_type]))(self) /* n_type on <self:ASignature>*/;
2290 var_ntype64 = var63;
2291 var65 = NULL;
2292 if (var_ntype64 == NULL) {
2293 var66 = 0; /* is null */
2294 } else {
2295 var66 = 1; /* arg is null and recv is not */
2296 }
2297 if (var66){
2298 var67 = ((val* (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var_modelbuilder, var_nclassdef, var_ntype64) /* resolve_mtype on <var_modelbuilder:ModelBuilder>*/;
2299 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__ASignature__ret_type_61d]))(self, var67) /* ret_type= on <self:ASignature>*/;
2300 var68 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__ret_type]))(self) /* ret_type on <self:ASignature>*/;
2301 var69 = NULL;
2302 if (var68 == NULL) {
2303 var70 = 1; /* is null */
2304 } else {
2305 var70 = 0; /* arg is null but recv is not */
2306 }
2307 if (var70){
2308 var71 = 0;
2309 var = var71;
2310 goto RET_LABEL;
2311 } else {
2312 }
2313 } else {
2314 }
2315 var72 = 1;
2316 ((void (*)(val*, short int))(self->class->vft[COLOR_modelize_property__ASignature__is_visited_61d]))(self, var72) /* is_visited= on <self:ASignature>*/;
2317 var73 = 1;
2318 var = var73;
2319 goto RET_LABEL;
2320 RET_LABEL:;
2321 return var;
2322 }
2323 /* method modelize_property#ASignature#visit_signature for (self: Object, ModelBuilder, AClassdef): Bool */
2324 short int VIRTUAL_modelize_property__ASignature__visit_signature(val* self, val* p0, val* p1) {
2325 short int var /* : Bool */;
2326 short int var1 /* : Bool */;
2327 var1 = modelize_property__ASignature__visit_signature(self, p0, p1);
2328 var = var1;
2329 RET_LABEL:;
2330 return var;
2331 }
2332 /* method modelize_property#ASignature#build_signature for (self: ASignature, ModelBuilder, AClassdef): nullable MSignature */
2333 val* modelize_property__ASignature__build_signature(val* self, val* p0, val* p1) {
2334 val* var /* : nullable MSignature */;
2335 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2336 val* var_nclassdef /* var nclassdef: AClassdef */;
2337 val* var1 /* : Array[String] */;
2338 long var2 /* : Int */;
2339 val* var3 /* : Array[MType] */;
2340 long var4 /* : Int */;
2341 short int var5 /* : Bool */;
2342 short int var7 /* : Bool */;
2343 short int var8 /* : Bool */;
2344 val* var9 /* : ANodes[AParam] */;
2345 val* var10 /* : Array[MType] */;
2346 long var11 /* : Int */;
2347 val* var12 /* : nullable Object */;
2348 static val* varonce;
2349 val* var13 /* : String */;
2350 char* var14 /* : NativeString */;
2351 long var15 /* : Int */;
2352 val* var16 /* : String */;
2353 val* var17 /* : Array[String] */;
2354 val* var18 /* : Array[MType] */;
2355 long var19 /* : Int */;
2356 val* var20 /* : nullable Object */;
2357 static val* varonce21;
2358 val* var22 /* : String */;
2359 char* var23 /* : NativeString */;
2360 long var24 /* : Int */;
2361 val* var25 /* : String */;
2362 val* var26 /* : Array[Object] */;
2363 long var27 /* : Int */;
2364 val* var28 /* : NativeArray[Object] */;
2365 val* var29 /* : String */;
2366 val* var30 /* : null */;
2367 val* var31 /* : Array[MParameter] */;
2368 val* var_mparameters /* var mparameters: Array[MParameter] */;
2369 val* var32 /* : Range[Int] */;
2370 long var33 /* : Int */;
2371 val* var34 /* : Array[String] */;
2372 long var35 /* : Int */;
2373 val* var36 /* : Discrete */;
2374 val* var37 /* : Discrete */;
2375 val* var38 /* : Iterator[nullable Object] */;
2376 short int var39 /* : Bool */;
2377 val* var40 /* : nullable Object */;
2378 long var_i /* var i: Int */;
2379 long var41 /* : Int */;
2380 val* var42 /* : MParameter */;
2381 val* var43 /* : Array[String] */;
2382 val* var44 /* : nullable Object */;
2383 val* var45 /* : Array[MType] */;
2384 val* var46 /* : nullable Object */;
2385 long var47 /* : Int */;
2386 short int var48 /* : Bool */;
2387 short int var50 /* : Bool */;
2388 val* var_mparameter /* var mparameter: MParameter */;
2389 val* var51 /* : ANodes[AParam] */;
2390 val* var52 /* : nullable Object */;
2391 val* var53 /* : MSignature */;
2392 val* var54 /* : nullable MType */;
2393 val* var_msignature /* var msignature: MSignature */;
2394 var_modelbuilder = p0;
2395 var_nclassdef = p1;
2396 var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_names]))(self) /* param_names on <self:ASignature>*/;
2397 var2 = ((long (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__length]))(var1) /* length on <var1:Array[String]>*/;
2398 var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_types]))(self) /* param_types on <self:ASignature>*/;
2399 var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on <var3:Array[MType]>*/;
2400 { /* Inline kernel#Int#!= (var2,var4) */
2401 var7 = var2 == var4;
2402 var8 = !var7;
2403 var5 = var8;
2404 goto RET_LABEL6;
2405 RET_LABEL6:(void)0;
2406 }
2407 if (var5){
2408 var9 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_params]))(self) /* n_params on <self:ASignature>*/;
2409 var10 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_types]))(self) /* param_types on <self:ASignature>*/;
2410 var11 = ((long (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__length]))(var10) /* length on <var10:Array[MType]>*/;
2411 var12 = ((val* (*)(val*, long))(var9->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var9, var11) /* [] on <var9:ANodes[AParam]>*/;
2412 if (varonce) {
2413 var13 = varonce;
2414 } else {
2415 var14 = "Error: Untyped parameter `";
2416 var15 = 26;
2417 var16 = string__NativeString__to_s_with_length(var14, var15);
2418 var13 = var16;
2419 varonce = var13;
2420 }
2421 var17 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_names]))(self) /* param_names on <self:ASignature>*/;
2422 var18 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_types]))(self) /* param_types on <self:ASignature>*/;
2423 var19 = ((long (*)(val*))(var18->class->vft[COLOR_abstract_collection__Collection__length]))(var18) /* length on <var18:Array[MType]>*/;
2424 var20 = ((val* (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var17, var19) /* [] on <var17:Array[String]>*/;
2425 if (varonce21) {
2426 var22 = varonce21;
2427 } else {
2428 var23 = "\'.";
2429 var24 = 2;
2430 var25 = string__NativeString__to_s_with_length(var23, var24);
2431 var22 = var25;
2432 varonce21 = var22;
2433 }
2434 var26 = NEW_array__Array(&type_array__Arraykernel__Object);
2435 { /* var26 = array_instance Array[Object] */
2436 var27 = 3;
2437 var28 = NEW_array__NativeArray(var27, &type_array__NativeArraykernel__Object);
2438 ((struct instance_array__NativeArray*)var28)->values[0] = (val*) var13;
2439 ((struct instance_array__NativeArray*)var28)->values[1] = (val*) var20;
2440 ((struct instance_array__NativeArray*)var28)->values[2] = (val*) var22;
2441 ((void (*)(val*, val*, long))(var26->class->vft[COLOR_array__Array__with_native]))(var26, var28, var27) /* with_native on <var26:Array[Object]>*/;
2442 }
2443 var29 = ((val* (*)(val*))(var26->class->vft[COLOR_string__Object__to_s]))(var26) /* to_s on <var26:Array[Object]>*/;
2444 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var12, var29) /* error on <var_modelbuilder:ModelBuilder>*/;
2445 var30 = NULL;
2446 var = var30;
2447 goto RET_LABEL;
2448 } else {
2449 }
2450 var31 = NEW_array__Array(&type_array__Arraymodel__MParameter);
2451 ((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on <var31:Array[MParameter]>*/;
2452 var_mparameters = var31;
2453 var32 = NEW_range__Range(&type_range__Rangekernel__Int);
2454 var33 = 0;
2455 var34 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_names]))(self) /* param_names on <self:ASignature>*/;
2456 var35 = ((long (*)(val*))(var34->class->vft[COLOR_abstract_collection__Collection__length]))(var34) /* length on <var34:Array[String]>*/;
2457 var36 = BOX_kernel__Int(var33); /* autobox from Int to Discrete */
2458 var37 = BOX_kernel__Int(var35); /* autobox from Int to Discrete */
2459 ((void (*)(val*, val*, val*))(var32->class->vft[COLOR_range__Range__without_last]))(var32, var36, var37) /* without_last on <var32:Range[Int]>*/;
2460 var38 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Collection__iterator]))(var32) /* iterator on <var32:Range[Int]>*/;
2461 for(;;) {
2462 var39 = ((short int (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var38) /* is_ok on <var38:Iterator[nullable Object]>*/;
2463 if(!var39) break;
2464 var40 = ((val* (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__item]))(var38) /* item on <var38:Iterator[nullable Object]>*/;
2465 var41 = ((struct instance_kernel__Int*)var40)->value; /* autounbox from nullable Object to Int */;
2466 var_i = var41;
2467 var42 = NEW_model__MParameter(&type_model__MParameter);
2468 var43 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_names]))(self) /* param_names on <self:ASignature>*/;
2469 var44 = ((val* (*)(val*, long))(var43->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var43, var_i) /* [] on <var43:Array[String]>*/;
2470 var45 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_types]))(self) /* param_types on <self:ASignature>*/;
2471 var46 = ((val* (*)(val*, long))(var45->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var45, var_i) /* [] on <var45:Array[MType]>*/;
2472 var47 = ((long (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__vararg_rank]))(self) /* vararg_rank on <self:ASignature>*/;
2473 { /* Inline kernel#Int#== (var_i,var47) */
2474 var50 = var_i == var47;
2475 var48 = var50;
2476 goto RET_LABEL49;
2477 RET_LABEL49:(void)0;
2478 }
2479 ((void (*)(val*, val*, val*, short int))(var42->class->vft[COLOR_model__MParameter__init]))(var42, var44, var46, var48) /* init on <var42:MParameter>*/;
2480 var_mparameter = var42;
2481 var51 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_params]))(self) /* n_params on <self:ASignature>*/;
2482 var52 = ((val* (*)(val*, long))(var51->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var51, var_i) /* [] on <var51:ANodes[AParam]>*/;
2483 ((void (*)(val*, val*))(var52->class->vft[COLOR_modelize_property__AParam__mparameter_61d]))(var52, var_mparameter) /* mparameter= on <var52:nullable Object(AParam)>*/;
2484 ((void (*)(val*, val*))(var_mparameters->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_mparameters, var_mparameter) /* add on <var_mparameters:Array[MParameter]>*/;
2485 CONTINUE_label: (void)0;
2486 ((void (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__next]))(var38) /* next on <var38:Iterator[nullable Object]>*/;
2487 }
2488 BREAK_label: (void)0;
2489 var53 = NEW_model__MSignature(&type_model__MSignature);
2490 var54 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__ret_type]))(self) /* ret_type on <self:ASignature>*/;
2491 ((void (*)(val*, val*, val*))(var53->class->vft[COLOR_model__MSignature__init]))(var53, var_mparameters, var54) /* init on <var53:MSignature>*/;
2492 var_msignature = var53;
2493 var = var_msignature;
2494 goto RET_LABEL;
2495 RET_LABEL:;
2496 return var;
2497 }
2498 /* method modelize_property#ASignature#build_signature for (self: Object, ModelBuilder, AClassdef): nullable MSignature */
2499 val* VIRTUAL_modelize_property__ASignature__build_signature(val* self, val* p0, val* p1) {
2500 val* var /* : nullable MSignature */;
2501 val* var1 /* : nullable MSignature */;
2502 var1 = modelize_property__ASignature__build_signature(self, p0, p1);
2503 var = var1;
2504 RET_LABEL:;
2505 return var;
2506 }
2507 /* method modelize_property#AParam#mparameter for (self: AParam): nullable MParameter */
2508 val* modelize_property__AParam__mparameter(val* self) {
2509 val* var /* : nullable MParameter */;
2510 val* var1 /* : nullable MParameter */;
2511 var1 = self->attrs[COLOR_modelize_property__AParam___64dmparameter].val; /* @mparameter on <self:AParam> */
2512 var = var1;
2513 RET_LABEL:;
2514 return var;
2515 }
2516 /* method modelize_property#AParam#mparameter for (self: Object): nullable MParameter */
2517 val* VIRTUAL_modelize_property__AParam__mparameter(val* self) {
2518 val* var /* : nullable MParameter */;
2519 val* var1 /* : nullable MParameter */;
2520 var1 = modelize_property__AParam__mparameter(self);
2521 var = var1;
2522 RET_LABEL:;
2523 return var;
2524 }
2525 /* method modelize_property#AParam#mparameter= for (self: AParam, nullable MParameter) */
2526 void modelize_property__AParam__mparameter_61d(val* self, val* p0) {
2527 self->attrs[COLOR_modelize_property__AParam___64dmparameter].val = p0; /* @mparameter on <self:AParam> */
2528 RET_LABEL:;
2529 }
2530 /* method modelize_property#AParam#mparameter= for (self: Object, nullable MParameter) */
2531 void VIRTUAL_modelize_property__AParam__mparameter_61d(val* self, val* p0) {
2532 modelize_property__AParam__mparameter_61d(self, p0);
2533 RET_LABEL:;
2534 }
2535 /* method modelize_property#AMethPropdef#build_property for (self: AMethPropdef, ModelBuilder, AClassdef) */
2536 void modelize_property__AMethPropdef__build_property(val* self, val* p0, val* p1) {
2537 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2538 val* var_nclassdef /* var nclassdef: AClassdef */;
2539 short int var /* : Bool */;
2540 int cltype;
2541 int idtype;
2542 short int var_is_init /* var is_init: Bool */;
2543 val* var1 /* : nullable MClassDef */;
2544 val* var_mclassdef /* var mclassdef: MClassDef */;
2545 val* var2 /* : nullable AMethid */;
2546 val* var_amethodid /* var amethodid: nullable AMethid */;
2547 val* var3 /* : null */;
2548 short int var4 /* : Bool */;
2549 short int var5 /* : Bool */;
2550 int cltype6;
2551 int idtype7;
2552 static val* varonce;
2553 val* var8 /* : String */;
2554 char* var9 /* : NativeString */;
2555 long var10 /* : Int */;
2556 val* var11 /* : String */;
2557 val* var_name /* var name: String */;
2558 val* var_name_node /* var name_node: ANode */;
2559 short int var12 /* : Bool */;
2560 int cltype13;
2561 int idtype14;
2562 static val* varonce15;
2563 val* var16 /* : String */;
2564 char* var17 /* : NativeString */;
2565 long var18 /* : Int */;
2566 val* var19 /* : String */;
2567 val* var20 /* : TKwinit */;
2568 short int var21 /* : Bool */;
2569 int cltype22;
2570 int idtype23;
2571 static val* varonce24;
2572 val* var25 /* : String */;
2573 char* var26 /* : NativeString */;
2574 long var27 /* : Int */;
2575 val* var28 /* : String */;
2576 val* var29 /* : TKwnew */;
2577 short int var30 /* : Bool */;
2578 int cltype31;
2579 int idtype32;
2580 val* var33 /* : TId */;
2581 val* var34 /* : String */;
2582 val* var35 /* : String */;
2583 short int var36 /* : Bool */;
2584 static val* varonce37;
2585 val* var38 /* : String */;
2586 char* var39 /* : NativeString */;
2587 long var40 /* : Int */;
2588 val* var41 /* : String */;
2589 short int var42 /* : Bool */;
2590 val* var43 /* : nullable ASignature */;
2591 val* var44 /* : ANodes[AParam] */;
2592 long var45 /* : Int */;
2593 long var46 /* : Int */;
2594 short int var47 /* : Bool */;
2595 short int var49 /* : Bool */;
2596 static val* varonce50;
2597 val* var51 /* : String */;
2598 char* var52 /* : NativeString */;
2599 long var53 /* : Int */;
2600 val* var54 /* : String */;
2601 val* var55 /* : null */;
2602 val* var_mprop /* var mprop: nullable MMethod */;
2603 short int var56 /* : Bool */;
2604 short int var57 /* : Bool */;
2605 short int var_ /* var : Bool */;
2606 val* var58 /* : nullable TKwredef */;
2607 val* var59 /* : null */;
2608 short int var60 /* : Bool */;
2609 val* var61 /* : nullable MProperty */;
2610 short int var62 /* : Bool */;
2611 int cltype63;
2612 int idtype64;
2613 const char* var_class_name;
2614 val* var65 /* : null */;
2615 short int var66 /* : Bool */;
2616 val* var67 /* : nullable AVisibility */;
2617 val* var68 /* : MVisibility */;
2618 val* var_mvisibility /* var mvisibility: MVisibility */;
2619 val* var69 /* : MMethod */;
2620 short int var70 /* : Bool */;
2621 int cltype71;
2622 int idtype72;
2623 val* var73 /* : nullable TKwredef */;
2624 short int var74 /* : Bool */;
2625 short int var75 /* : Bool */;
2626 short int var76 /* : Bool */;
2627 val* var77 /* : nullable TKwredef */;
2628 val* var78 /* : null */;
2629 short int var79 /* : Bool */;
2630 short int var80 /* : Bool */;
2631 int cltype81;
2632 int idtype82;
2633 val* var83 /* : nullable TKwredef */;
2634 short int var84 /* : Bool */;
2635 short int var85 /* : Bool */;
2636 short int var86 /* : Bool */;
2637 val* var87 /* : nullable AVisibility */;
2638 val* var88 /* : Map[MProperty, APropdef] */;
2639 val* var89 /* : MMethodDef */;
2640 val* var90 /* : Location */;
2641 val* var_mpropdef /* var mpropdef: MMethodDef */;
2642 val* var91 /* : HashSet[String] */;
2643 val* var92 /* : String */;
2644 short int var93 /* : Bool */;
2645 val* var94 /* : null */;
2646 val* var_loc /* var loc: nullable Location */;
2647 val* var95 /* : Array[MPropDef] */;
2648 val* var96 /* : Iterator[nullable Object] */;
2649 short int var97 /* : Bool */;
2650 val* var98 /* : nullable Object */;
2651 val* var_i /* var i: MPropDef */;
2652 val* var99 /* : MProperty */;
2653 val* var100 /* : String */;
2654 val* var101 /* : String */;
2655 short int var102 /* : Bool */;
2656 val* var103 /* : Location */;
2657 val* var104 /* : null */;
2658 short int var105 /* : Bool */;
2659 static val* varonce106;
2660 val* var107 /* : String */;
2661 char* var108 /* : NativeString */;
2662 long var109 /* : Int */;
2663 val* var110 /* : String */;
2664 static val* varonce111;
2665 val* var112 /* : String */;
2666 char* var113 /* : NativeString */;
2667 long var114 /* : Int */;
2668 val* var115 /* : String */;
2669 val* var116 /* : MClass */;
2670 static val* varonce117;
2671 val* var118 /* : String */;
2672 char* var119 /* : NativeString */;
2673 long var120 /* : Int */;
2674 val* var121 /* : String */;
2675 val* var122 /* : Array[Object] */;
2676 long var123 /* : Int */;
2677 val* var124 /* : NativeArray[Object] */;
2678 val* var125 /* : String */;
2679 val* var126 /* : HashSet[String] */;
2680 val* var127 /* : MProperty */;
2681 val* var128 /* : String */;
2682 short int var129 /* : Bool */;
2683 int cltype130;
2684 int idtype131;
2685 const struct type* type_struct;
2686 const char* var_class_name132;
2687 val* var133 /* : HashMap[MPropDef, APropdef] */;
2688 short int var134 /* : Bool */;
2689 val* var135 /* : ToolContext */;
2690 static val* varonce136;
2691 val* var137 /* : String */;
2692 char* var138 /* : NativeString */;
2693 long var139 /* : Int */;
2694 val* var140 /* : String */;
2695 val* var141 /* : String */;
2696 val* var142 /* : Array[Object] */;
2697 long var143 /* : Int */;
2698 val* var144 /* : NativeArray[Object] */;
2699 val* var145 /* : String */;
2700 long var146 /* : Int */;
2701 val* var147 /* : ToolContext */;
2702 static val* varonce148;
2703 val* var149 /* : String */;
2704 char* var150 /* : NativeString */;
2705 long var151 /* : Int */;
2706 val* var152 /* : String */;
2707 val* var153 /* : String */;
2708 val* var154 /* : Array[Object] */;
2709 long var155 /* : Int */;
2710 val* var156 /* : NativeArray[Object] */;
2711 val* var157 /* : String */;
2712 long var158 /* : Int */;
2713 var_modelbuilder = p0;
2714 var_nclassdef = p1;
2715 /* <self:AMethPropdef> isa AInitPropdef */
2716 cltype = type_parser_nodes__AInitPropdef.color;
2717 idtype = type_parser_nodes__AInitPropdef.id;
2718 if(cltype >= self->type->table_size) {
2719 var = 0;
2720 } else {
2721 var = self->type->type_table[cltype] == idtype;
2722 }
2723 var_is_init = var;
2724 var1 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
2725 if (var1 == NULL) {
2726 fprintf(stderr, "Runtime error: %s", "Cast failed");
2727 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 353);
2728 show_backtrace(1);
2729 }
2730 var_mclassdef = var1;
2731 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_methid]))(self) /* n_methid on <self:AMethPropdef>*/;
2732 var_amethodid = var2;
2733 var3 = NULL;
2734 if (var_amethodid == NULL) {
2735 var4 = 1; /* is null */
2736 } else {
2737 var4 = 0; /* arg is null but recv is not */
2738 }
2739 if (var4){
2740 /* <self:AMethPropdef> isa AMainMethPropdef */
2741 cltype6 = type_parser_nodes__AMainMethPropdef.color;
2742 idtype7 = type_parser_nodes__AMainMethPropdef.id;
2743 if(cltype6 >= self->type->table_size) {
2744 var5 = 0;
2745 } else {
2746 var5 = self->type->type_table[cltype6] == idtype7;
2747 }
2748 if (var5){
2749 if (varonce) {
2750 var8 = varonce;
2751 } else {
2752 var9 = "main";
2753 var10 = 4;
2754 var11 = string__NativeString__to_s_with_length(var9, var10);
2755 var8 = var11;
2756 varonce = var8;
2757 }
2758 var_name = var8;
2759 var_name_node = self;
2760 } else {
2761 /* <self:AMethPropdef> isa AConcreteInitPropdef */
2762 cltype13 = type_parser_nodes__AConcreteInitPropdef.color;
2763 idtype14 = type_parser_nodes__AConcreteInitPropdef.id;
2764 if(cltype13 >= self->type->table_size) {
2765 var12 = 0;
2766 } else {
2767 var12 = self->type->type_table[cltype13] == idtype14;
2768 }
2769 if (var12){
2770 if (varonce15) {
2771 var16 = varonce15;
2772 } else {
2773 var17 = "init";
2774 var18 = 4;
2775 var19 = string__NativeString__to_s_with_length(var17, var18);
2776 var16 = var19;
2777 varonce15 = var16;
2778 }
2779 var_name = var16;
2780 var20 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AConcreteInitPropdef__n_kwinit]))(self) /* n_kwinit on <self:AMethPropdef(AConcreteInitPropdef)>*/;
2781 var_name_node = var20;
2782 } else {
2783 /* <self:AMethPropdef> isa AExternInitPropdef */
2784 cltype22 = type_parser_nodes__AExternInitPropdef.color;
2785 idtype23 = type_parser_nodes__AExternInitPropdef.id;
2786 if(cltype22 >= self->type->table_size) {
2787 var21 = 0;
2788 } else {
2789 var21 = self->type->type_table[cltype22] == idtype23;
2790 }
2791 if (var21){
2792 if (varonce24) {
2793 var25 = varonce24;
2794 } else {
2795 var26 = "init";
2796 var27 = 4;
2797 var28 = string__NativeString__to_s_with_length(var26, var27);
2798 var25 = var28;
2799 varonce24 = var25;
2800 }
2801 var_name = var25;
2802 var29 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternInitPropdef__n_kwnew]))(self) /* n_kwnew on <self:AMethPropdef(AExternInitPropdef)>*/;
2803 var_name_node = var29;
2804 } else {
2805 fprintf(stderr, "Runtime error: %s", "Aborted");
2806 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 368);
2807 show_backtrace(1);
2808 }
2809 }
2810 }
2811 } else {
2812 /* <var_amethodid:nullable AMethid(AMethid)> isa AIdMethid */
2813 cltype31 = type_parser_nodes__AIdMethid.color;
2814 idtype32 = type_parser_nodes__AIdMethid.id;
2815 if(cltype31 >= var_amethodid->type->table_size) {
2816 var30 = 0;
2817 } else {
2818 var30 = var_amethodid->type->type_table[cltype31] == idtype32;
2819 }
2820 if (var30){
2821 var33 = ((val* (*)(val*))(var_amethodid->class->vft[COLOR_parser_nodes__AIdMethid__n_id]))(var_amethodid) /* n_id on <var_amethodid:nullable AMethid(AIdMethid)>*/;
2822 var34 = ((val* (*)(val*))(var33->class->vft[COLOR_parser_nodes__Token__text]))(var33) /* text on <var33:TId>*/;
2823 var_name = var34;
2824 var_name_node = var_amethodid;
2825 } else {
2826 var35 = ((val* (*)(val*))(var_amethodid->class->vft[COLOR_modelize_property__Prod__collect_text]))(var_amethodid) /* collect_text on <var_amethodid:nullable AMethid(AMethid)>*/;
2827 var_name = var35;
2828 var_name_node = var_amethodid;
2829 if (varonce37) {
2830 var38 = varonce37;
2831 } else {
2832 var39 = "-";
2833 var40 = 1;
2834 var41 = string__NativeString__to_s_with_length(var39, var40);
2835 var38 = var41;
2836 varonce37 = var38;
2837 }
2838 var42 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var38) /* == on <var_name:String>*/;
2839 if (!var42) {
2840 var36 = 0;
2841 } else {
2842 var43 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature]))(self) /* n_signature on <self:AMethPropdef>*/;
2843 if (var43 == NULL) {
2844 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2845 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 378);
2846 show_backtrace(1);
2847 } else {
2848 var44 = ((val* (*)(val*))(var43->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var43) /* n_params on <var43:nullable ASignature>*/;
2849 }
2850 var45 = ((long (*)(val*))(var44->class->vft[COLOR_abstract_collection__Collection__length]))(var44) /* length on <var44:ANodes[AParam]>*/;
2851 var46 = 0;
2852 { /* Inline kernel#Int#== (var45,var46) */
2853 var49 = var45 == var46;
2854 var47 = var49;
2855 goto RET_LABEL48;
2856 RET_LABEL48:(void)0;
2857 }
2858 var36 = var47;
2859 }
2860 if (var36){
2861 if (varonce50) {
2862 var51 = varonce50;
2863 } else {
2864 var52 = "unary -";
2865 var53 = 7;
2866 var54 = string__NativeString__to_s_with_length(var52, var53);
2867 var51 = var54;
2868 varonce50 = var51;
2869 }
2870 var_name = var51;
2871 } else {
2872 }
2873 }
2874 }
2875 var55 = NULL;
2876 var_mprop = var55;
2877 var57 = !var_is_init;
2878 var_ = var57;
2879 if (var57){
2880 var56 = var_;
2881 } else {
2882 var58 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_kwredef]))(self) /* n_kwredef on <self:AMethPropdef>*/;
2883 var59 = NULL;
2884 if (var58 == NULL) {
2885 var60 = 0; /* is null */
2886 } else {
2887 var60 = 1; /* arg is null and recv is not */
2888 }
2889 var56 = var60;
2890 }
2891 if (var56){
2892 var61 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_name_node, var_mclassdef, var_name) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
2893 /* <var61:nullable MProperty> isa nullable MMethod */
2894 cltype63 = type_nullable_model__MMethod.color;
2895 idtype64 = type_nullable_model__MMethod.id;
2896 if(var61 == NULL) {
2897 var62 = 1;
2898 } else {
2899 if(cltype63 >= var61->type->table_size) {
2900 var62 = 0;
2901 } else {
2902 var62 = var61->type->type_table[cltype63] == idtype64;
2903 }
2904 }
2905 if (!var62) {
2906 var_class_name = var61 == NULL ? "null" : var61->type->name;
2907 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name);
2908 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 384);
2909 show_backtrace(1);
2910 }
2911 var_mprop = var61;
2912 } else {
2913 }
2914 var65 = NULL;
2915 if (var_mprop == NULL) {
2916 var66 = 1; /* is null */
2917 } else {
2918 var66 = 0; /* arg is null but recv is not */
2919 }
2920 if (var66){
2921 var67 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_visibility]))(self) /* n_visibility on <self:AMethPropdef>*/;
2922 var68 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var67) /* new_property_visibility on <self:AMethPropdef>*/;
2923 var_mvisibility = var68;
2924 var69 = NEW_model__MMethod(&type_model__MMethod);
2925 ((void (*)(val*, val*, val*, val*))(var69->class->vft[COLOR_model__MMethod__init]))(var69, var_mclassdef, var_name, var_mvisibility) /* init on <var69:MMethod>*/;
2926 var_mprop = var69;
2927 ((void (*)(val*, short int))(var_mprop->class->vft[COLOR_model__MMethod__is_init_61d]))(var_mprop, var_is_init) /* is_init= on <var_mprop:nullable MMethod(MMethod)>*/;
2928 /* <self:AMethPropdef> isa AExternInitPropdef */
2929 cltype71 = type_parser_nodes__AExternInitPropdef.color;
2930 idtype72 = type_parser_nodes__AExternInitPropdef.id;
2931 if(cltype71 >= self->type->table_size) {
2932 var70 = 0;
2933 } else {
2934 var70 = self->type->type_table[cltype71] == idtype72;
2935 }
2936 ((void (*)(val*, short int))(var_mprop->class->vft[COLOR_model__MMethod__is_new_61d]))(var_mprop, var70) /* is_new= on <var_mprop:nullable MMethod(MMethod)>*/;
2937 var73 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_kwredef]))(self) /* n_kwredef on <self:AMethPropdef>*/;
2938 var74 = 0;
2939 var75 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var73, var74, var_mprop) /* check_redef_keyword on <self:AMethPropdef>*/;
2940 var76 = !var75;
2941 if (var76){
2942 goto RET_LABEL;
2943 } else {
2944 }
2945 } else {
2946 var77 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_kwredef]))(self) /* n_kwredef on <self:AMethPropdef>*/;
2947 var78 = NULL;
2948 if (var77 == NULL) {
2949 var79 = 1; /* is null */
2950 } else {
2951 var79 = 0; /* arg is null but recv is not */
2952 }
2953 if (var79){
2954 /* <self:AMethPropdef> isa AMainMethPropdef */
2955 cltype81 = type_parser_nodes__AMainMethPropdef.color;
2956 idtype82 = type_parser_nodes__AMainMethPropdef.id;
2957 if(cltype81 >= self->type->table_size) {
2958 var80 = 0;
2959 } else {
2960 var80 = self->type->type_table[cltype81] == idtype82;
2961 }
2962 if (var80){
2963 } else {
2964 var83 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_kwredef]))(self) /* n_kwredef on <self:AMethPropdef>*/;
2965 var84 = 1;
2966 var85 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var83, var84, var_mprop) /* check_redef_keyword on <self:AMethPropdef>*/;
2967 var86 = !var85;
2968 if (var86){
2969 goto RET_LABEL;
2970 } else {
2971 }
2972 }
2973 } else {
2974 }
2975 var87 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_visibility]))(self) /* n_visibility on <self:AMethPropdef>*/;
2976 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var87, var_mprop) /* check_redef_property_visibility on <self:AMethPropdef>*/;
2977 }
2978 var88 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
2979 ((void (*)(val*, val*, val*))(var88->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var88, var_mprop, self) /* []= on <var88:Map[MProperty, APropdef]>*/;
2980 var89 = NEW_model__MMethodDef(&type_model__MMethodDef);
2981 var90 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AMethPropdef>*/;
2982 ((void (*)(val*, val*, val*, val*))(var89->class->vft[COLOR_model__MMethodDef__init]))(var89, var_mclassdef, var_mprop, var90) /* init on <var89:MMethodDef>*/;
2983 var_mpropdef = var89;
2984 var91 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_modelize_property__MClassDef__propdef_names]))(var_mclassdef) /* propdef_names on <var_mclassdef:MClassDef>*/;
2985 var92 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__name]))(var_mprop) /* name on <var_mprop:nullable MMethod(MMethod)>*/;
2986 var93 = ((short int (*)(val*, val*))(var91->class->vft[COLOR_abstract_collection__Collection__has]))(var91, var92) /* has on <var91:HashSet[String]>*/;
2987 if (var93){
2988 var94 = NULL;
2989 var_loc = var94;
2990 var95 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mpropdefs]))(var_mclassdef) /* mpropdefs on <var_mclassdef:MClassDef>*/;
2991 var96 = ((val* (*)(val*))(var95->class->vft[COLOR_abstract_collection__Collection__iterator]))(var95) /* iterator on <var95:Array[MPropDef]>*/;
2992 for(;;) {
2993 var97 = ((short int (*)(val*))(var96->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var96) /* is_ok on <var96:Iterator[nullable Object]>*/;
2994 if(!var97) break;
2995 var98 = ((val* (*)(val*))(var96->class->vft[COLOR_abstract_collection__Iterator__item]))(var96) /* item on <var96:Iterator[nullable Object]>*/;
2996 var_i = var98;
2997 var99 = ((val* (*)(val*))(var_i->class->vft[COLOR_model__MPropDef__mproperty]))(var_i) /* mproperty on <var_i:MPropDef>*/;
2998 var100 = ((val* (*)(val*))(var99->class->vft[COLOR_model__MProperty__name]))(var99) /* name on <var99:MProperty>*/;
2999 var101 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__name]))(var_mprop) /* name on <var_mprop:nullable MMethod(MMethod)>*/;
3000 var102 = ((short int (*)(val*, val*))(var100->class->vft[COLOR_kernel__Object___61d_61d]))(var100, var101) /* == on <var100:String>*/;
3001 if (var102){
3002 var103 = ((val* (*)(val*))(var_i->class->vft[COLOR_model__MPropDef__location]))(var_i) /* location on <var_i:MPropDef>*/;
3003 var_loc = var103;
3004 goto BREAK_label;
3005 } else {
3006 }
3007 CONTINUE_label: (void)0;
3008 ((void (*)(val*))(var96->class->vft[COLOR_abstract_collection__Iterator__next]))(var96) /* next on <var96:Iterator[nullable Object]>*/;
3009 }
3010 BREAK_label: (void)0;
3011 var104 = NULL;
3012 if (var_loc == NULL) {
3013 var105 = 1; /* is null */
3014 } else {
3015 var105 = 0; /* arg is null but recv is not */
3016 }
3017 if (var105){
3018 fprintf(stderr, "Runtime error: %s", "Aborted");
3019 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 413);
3020 show_backtrace(1);
3021 } else {
3022 }
3023 if (varonce106) {
3024 var107 = varonce106;
3025 } else {
3026 var108 = "Error: a property ";
3027 var109 = 18;
3028 var110 = string__NativeString__to_s_with_length(var108, var109);
3029 var107 = var110;
3030 varonce106 = var107;
3031 }
3032 if (varonce111) {
3033 var112 = varonce111;
3034 } else {
3035 var113 = " is already defined in class ";
3036 var114 = 29;
3037 var115 = string__NativeString__to_s_with_length(var113, var114);
3038 var112 = var115;
3039 varonce111 = var112;
3040 }
3041 var116 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
3042 if (varonce117) {
3043 var118 = varonce117;
3044 } else {
3045 var119 = " at ";
3046 var120 = 4;
3047 var121 = string__NativeString__to_s_with_length(var119, var120);
3048 var118 = var121;
3049 varonce117 = var118;
3050 }
3051 var122 = NEW_array__Array(&type_array__Arraykernel__Object);
3052 { /* var122 = array_instance Array[Object] */
3053 var123 = 6;
3054 var124 = NEW_array__NativeArray(var123, &type_array__NativeArraykernel__Object);
3055 ((struct instance_array__NativeArray*)var124)->values[0] = (val*) var107;
3056 ((struct instance_array__NativeArray*)var124)->values[1] = (val*) var_mprop;
3057 ((struct instance_array__NativeArray*)var124)->values[2] = (val*) var112;
3058 ((struct instance_array__NativeArray*)var124)->values[3] = (val*) var116;
3059 ((struct instance_array__NativeArray*)var124)->values[4] = (val*) var118;
3060 ((struct instance_array__NativeArray*)var124)->values[5] = (val*) var_loc;
3061 ((void (*)(val*, val*, long))(var122->class->vft[COLOR_array__Array__with_native]))(var122, var124, var123) /* with_native on <var122:Array[Object]>*/;
3062 }
3063 var125 = ((val* (*)(val*))(var122->class->vft[COLOR_string__Object__to_s]))(var122) /* to_s on <var122:Array[Object]>*/;
3064 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var125) /* error on <var_modelbuilder:ModelBuilder>*/;
3065 } else {
3066 }
3067 var126 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_modelize_property__MClassDef__propdef_names]))(var_mclassdef) /* propdef_names on <var_mclassdef:MClassDef>*/;
3068 var127 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
3069 var128 = ((val* (*)(val*))(var127->class->vft[COLOR_model__MProperty__name]))(var127) /* name on <var127:MProperty(MMethod)>*/;
3070 ((void (*)(val*, val*))(var126->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var126, var128) /* add on <var126:HashSet[String]>*/;
3071 /* <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
3072 type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
3073 cltype130 = type_struct->color;
3074 idtype131 = type_struct->id;
3075 if(cltype130 >= var_mpropdef->type->table_size) {
3076 var129 = 0;
3077 } else {
3078 var129 = var_mpropdef->type->type_table[cltype130] == idtype131;
3079 }
3080 if (!var129) {
3081 var_class_name132 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
3082 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name132);
3083 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 419);
3084 show_backtrace(1);
3085 }
3086 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on <self:AMethPropdef>*/;
3087 var133 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
3088 ((void (*)(val*, val*, val*))(var133->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var133, var_mpropdef, self) /* []= on <var133:HashMap[MPropDef, APropdef]>*/;
3089 var134 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on <var_mpropdef:MMethodDef>*/;
3090 if (var134){
3091 var135 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on <var_modelbuilder:ModelBuilder>*/;
3092 if (varonce136) {
3093 var137 = varonce136;
3094 } else {
3095 var138 = " introduces new method ";
3096 var139 = 23;
3097 var140 = string__NativeString__to_s_with_length(var138, var139);
3098 var137 = var140;
3099 varonce136 = var137;
3100 }
3101 var141 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__full_name]))(var_mprop) /* full_name on <var_mprop:nullable MMethod(MMethod)>*/;
3102 var142 = NEW_array__Array(&type_array__Arraykernel__Object);
3103 { /* var142 = array_instance Array[Object] */
3104 var143 = 3;
3105 var144 = NEW_array__NativeArray(var143, &type_array__NativeArraykernel__Object);
3106 ((struct instance_array__NativeArray*)var144)->values[0] = (val*) var_mpropdef;
3107 ((struct instance_array__NativeArray*)var144)->values[1] = (val*) var137;
3108 ((struct instance_array__NativeArray*)var144)->values[2] = (val*) var141;
3109 ((void (*)(val*, val*, long))(var142->class->vft[COLOR_array__Array__with_native]))(var142, var144, var143) /* with_native on <var142:Array[Object]>*/;
3110 }
3111 var145 = ((val* (*)(val*))(var142->class->vft[COLOR_string__Object__to_s]))(var142) /* to_s on <var142:Array[Object]>*/;
3112 var146 = 3;
3113 ((void (*)(val*, val*, long))(var135->class->vft[COLOR_toolcontext__ToolContext__info]))(var135, var145, var146) /* info on <var135:ToolContext>*/;
3114 } else {
3115 var147 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on <var_modelbuilder:ModelBuilder>*/;
3116 if (varonce148) {
3117 var149 = varonce148;
3118 } else {
3119 var150 = " redefines method ";
3120 var151 = 18;
3121 var152 = string__NativeString__to_s_with_length(var150, var151);
3122 var149 = var152;
3123 varonce148 = var149;
3124 }
3125 var153 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__full_name]))(var_mprop) /* full_name on <var_mprop:nullable MMethod(MMethod)>*/;
3126 var154 = NEW_array__Array(&type_array__Arraykernel__Object);
3127 { /* var154 = array_instance Array[Object] */
3128 var155 = 3;
3129 var156 = NEW_array__NativeArray(var155, &type_array__NativeArraykernel__Object);
3130 ((struct instance_array__NativeArray*)var156)->values[0] = (val*) var_mpropdef;
3131 ((struct instance_array__NativeArray*)var156)->values[1] = (val*) var149;
3132 ((struct instance_array__NativeArray*)var156)->values[2] = (val*) var153;
3133 ((void (*)(val*, val*, long))(var154->class->vft[COLOR_array__Array__with_native]))(var154, var156, var155) /* with_native on <var154:Array[Object]>*/;
3134 }
3135 var157 = ((val* (*)(val*))(var154->class->vft[COLOR_string__Object__to_s]))(var154) /* to_s on <var154:Array[Object]>*/;
3136 var158 = 3;
3137 ((void (*)(val*, val*, long))(var147->class->vft[COLOR_toolcontext__ToolContext__info]))(var147, var157, var158) /* info on <var147:ToolContext>*/;
3138 }
3139 RET_LABEL:;
3140 }
3141 /* method modelize_property#AMethPropdef#build_property for (self: Object, ModelBuilder, AClassdef) */
3142 void VIRTUAL_modelize_property__AMethPropdef__build_property(val* self, val* p0, val* p1) {
3143 modelize_property__AMethPropdef__build_property(self, p0, p1);
3144 RET_LABEL:;
3145 }
3146 /* method modelize_property#AMethPropdef#build_signature for (self: AMethPropdef, ModelBuilder, AClassdef) */
3147 void modelize_property__AMethPropdef__build_signature(val* self, val* p0, val* p1) {
3148 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
3149 val* var_nclassdef /* var nclassdef: AClassdef */;
3150 val* var /* : nullable MPropDef */;
3151 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
3152 val* var1 /* : null */;
3153 short int var2 /* : Bool */;
3154 val* var3 /* : MClassDef */;
3155 val* var4 /* : MModule */;
3156 val* var_mmodule /* var mmodule: MModule */;
3157 val* var5 /* : nullable ASignature */;
3158 val* var_nsig /* var nsig: nullable ASignature */;
3159 val* var6 /* : Array[String] */;
3160 val* var_param_names /* var param_names: Array[String] */;
3161 val* var7 /* : Array[MType] */;
3162 val* var_param_types /* var param_types: Array[MType] */;
3163 long var8 /* : Int */;
3164 long var9 /* : Int */;
3165 long var11 /* : Int */;
3166 long var_vararg_rank /* var vararg_rank: Int */;
3167 val* var12 /* : null */;
3168 val* var_ret_type /* var ret_type: nullable MType */;
3169 val* var13 /* : null */;
3170 short int var14 /* : Bool */;
3171 short int var15 /* : Bool */;
3172 short int var16 /* : Bool */;
3173 val* var17 /* : Array[String] */;
3174 val* var18 /* : Array[MType] */;
3175 long var19 /* : Int */;
3176 val* var20 /* : nullable MType */;
3177 val* var21 /* : null */;
3178 val* var_msignature /* var msignature: nullable MSignature */;
3179 short int var22 /* : Bool */;
3180 short int var23 /* : Bool */;
3181 val* var24 /* : MProperty */;
3182 val* var25 /* : MPropDef */;
3183 val* var26 /* : nullable MSignature */;
3184 val* var27 /* : null */;
3185 short int var28 /* : Bool */;
3186 long var29 /* : Int */;
3187 long var30 /* : Int */;
3188 short int var31 /* : Bool */;
3189 short int var33 /* : Bool */;
3190 short int var34 /* : Bool */;
3191 val* var35 /* : null */;
3192 short int var36 /* : Bool */;
3193 val* var_node /* var node: ANode */;
3194 static val* varonce;
3195 val* var37 /* : String */;
3196 char* var38 /* : NativeString */;
3197 long var39 /* : Int */;
3198 val* var40 /* : String */;
3199 static val* varonce41;
3200 val* var42 /* : String */;
3201 char* var43 /* : NativeString */;
3202 long var44 /* : Int */;
3203 val* var45 /* : String */;
3204 val* var46 /* : MProperty */;
3205 val* var47 /* : MPropDef */;
3206 static val* varonce48;
3207 val* var49 /* : String */;
3208 char* var50 /* : NativeString */;
3209 long var51 /* : Int */;
3210 val* var52 /* : String */;
3211 long var53 /* : Int */;
3212 static val* varonce54;
3213 val* var55 /* : String */;
3214 char* var56 /* : NativeString */;
3215 long var57 /* : Int */;
3216 val* var58 /* : String */;
3217 long var59 /* : Int */;
3218 static val* varonce60;
3219 val* var61 /* : String */;
3220 char* var62 /* : NativeString */;
3221 long var63 /* : Int */;
3222 val* var64 /* : String */;
3223 val* var65 /* : Array[Object] */;
3224 long var66 /* : Int */;
3225 val* var67 /* : NativeArray[Object] */;
3226 val* var68 /* : Object */;
3227 val* var69 /* : Object */;
3228 val* var70 /* : String */;
3229 val* var71 /* : MProperty */;
3230 short int var72 /* : Bool */;
3231 val* var73 /* : nullable MClassDef */;
3232 val* var74 /* : Array[MClassType] */;
3233 val* var75 /* : Iterator[nullable Object] */;
3234 short int var76 /* : Bool */;
3235 val* var77 /* : nullable Object */;
3236 val* var_msupertype /* var msupertype: MClassType */;
3237 val* var78 /* : nullable MClassDef */;
3238 val* var79 /* : MClassType */;
3239 val* var80 /* : MType */;
3240 val* var81 /* : MProperty */;
3241 val* var82 /* : String */;
3242 val* var83 /* : nullable MProperty */;
3243 val* var_candidate /* var candidate: nullable MProperty */;
3244 val* var84 /* : null */;
3245 short int var85 /* : Bool */;
3246 val* var86 /* : null */;
3247 short int var87 /* : Bool */;
3248 val* var88 /* : MPropDef */;
3249 short int var89 /* : Bool */;
3250 int cltype;
3251 int idtype;
3252 const char* var_class_name;
3253 val* var90 /* : nullable MSignature */;
3254 short int var91 /* : Bool */;
3255 short int var92 /* : Bool */;
3256 short int var93 /* : Bool */;
3257 val* var94 /* : null */;
3258 short int var95 /* : Bool */;
3259 short int var_ /* var : Bool */;
3260 long var96 /* : Int */;
3261 long var97 /* : Int */;
3262 short int var98 /* : Bool */;
3263 short int var100 /* : Bool */;
3264 short int var101 /* : Bool */;
3265 short int var_102 /* var : Bool */;
3266 long var103 /* : Int */;
3267 long var104 /* : Int */;
3268 short int var105 /* : Bool */;
3269 short int var107 /* : Bool */;
3270 short int var_108 /* var : Bool */;
3271 long var109 /* : Int */;
3272 long var110 /* : Int */;
3273 short int var111 /* : Bool */;
3274 short int var113 /* : Bool */;
3275 val* var114 /* : Array[MType] */;
3276 val* var115 /* : Array[MParameter] */;
3277 val* var116 /* : Iterator[nullable Object] */;
3278 short int var117 /* : Bool */;
3279 val* var118 /* : nullable Object */;
3280 val* var_mparameter /* var mparameter: MParameter */;
3281 val* var119 /* : MType */;
3282 long var121 /* : Int */;
3283 short int var122 /* : Bool */;
3284 val* var123 /* : null */;
3285 short int var124 /* : Bool */;
3286 short int var_125 /* var : Bool */;
3287 val* var126 /* : null */;
3288 short int var127 /* : Bool */;
3289 val* var128 /* : nullable MType */;
3290 long var129 /* : Int */;
3291 long var130 /* : Int */;
3292 short int var131 /* : Bool */;
3293 short int var133 /* : Bool */;
3294 short int var134 /* : Bool */;
3295 val* var135 /* : ANodes[AParam] */;
3296 long var136 /* : Int */;
3297 val* var137 /* : nullable Object */;
3298 static val* varonce138;
3299 val* var139 /* : String */;
3300 char* var140 /* : NativeString */;
3301 long var141 /* : Int */;
3302 val* var142 /* : String */;
3303 long var143 /* : Int */;
3304 val* var144 /* : nullable Object */;
3305 static val* varonce145;
3306 val* var146 /* : String */;
3307 char* var147 /* : NativeString */;
3308 long var148 /* : Int */;
3309 val* var149 /* : String */;
3310 val* var150 /* : Array[Object] */;
3311 long var151 /* : Int */;
3312 val* var152 /* : NativeArray[Object] */;
3313 val* var153 /* : String */;
3314 val* var154 /* : Array[MParameter] */;
3315 val* var_mparameters /* var mparameters: Array[MParameter] */;
3316 val* var155 /* : Range[Int] */;
3317 long var156 /* : Int */;
3318 long var157 /* : Int */;
3319 val* var158 /* : Discrete */;
3320 val* var159 /* : Discrete */;
3321 val* var160 /* : Iterator[nullable Object] */;
3322 short int var161 /* : Bool */;
3323 val* var162 /* : nullable Object */;
3324 long var_i /* var i: Int */;
3325 long var163 /* : Int */;
3326 val* var164 /* : MParameter */;
3327 val* var165 /* : nullable Object */;
3328 val* var166 /* : nullable Object */;
3329 short int var167 /* : Bool */;
3330 short int var169 /* : Bool */;
3331 val* var_mparameter170 /* var mparameter: MParameter */;
3332 val* var171 /* : null */;
3333 short int var172 /* : Bool */;
3334 val* var173 /* : ANodes[AParam] */;
3335 val* var174 /* : nullable Object */;
3336 val* var176 /* : MSignature */;
3337 short int var177 /* : Bool */;
3338 int cltype178;
3339 int idtype179;
3340 var_modelbuilder = p0;
3341 var_nclassdef = p1;
3342 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AMethPropdef>*/;
3343 var_mpropdef = var;
3344 var1 = NULL;
3345 if (var_mpropdef == NULL) {
3346 var2 = 1; /* is null */
3347 } else {
3348 var2 = 0; /* arg is null but recv is not */
3349 }
3350 if (var2){
3351 goto RET_LABEL;
3352 } else {
3353 }
3354 var3 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3355 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on <var3:MClassDef>*/;
3356 var_mmodule = var4;
3357 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature]))(self) /* n_signature on <self:AMethPropdef>*/;
3358 var_nsig = var5;
3359 var6 = NEW_array__Array(&type_array__Arraystring__String);
3360 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[String]>*/;
3361 var_param_names = var6;
3362 var7 = NEW_array__Array(&type_array__Arraymodel__MType);
3363 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[MType]>*/;
3364 var_param_types = var7;
3365 var8 = 1;
3366 { /* Inline kernel#Int#unary - (var8) */
3367 var11 = -var8;
3368 var9 = var11;
3369 goto RET_LABEL10;
3370 RET_LABEL10:(void)0;
3371 }
3372 var_vararg_rank = var9;
3373 var12 = NULL;
3374 var_ret_type = var12;
3375 var13 = NULL;
3376 if (var_nsig == NULL) {
3377 var14 = 0; /* is null */
3378 } else {
3379 var14 = 1; /* arg is null and recv is not */
3380 }
3381 if (var14){
3382 var15 = ((short int (*)(val*, val*, val*))(var_nsig->class->vft[COLOR_modelize_property__ASignature__visit_signature]))(var_nsig, var_modelbuilder, var_nclassdef) /* visit_signature on <var_nsig:nullable ASignature(ASignature)>*/;
3383 var16 = !var15;
3384 if (var16){
3385 goto RET_LABEL;
3386 } else {
3387 }
3388 var17 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_modelize_property__ASignature__param_names]))(var_nsig) /* param_names on <var_nsig:nullable ASignature(ASignature)>*/;
3389 var_param_names = var17;
3390 var18 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_modelize_property__ASignature__param_types]))(var_nsig) /* param_types on <var_nsig:nullable ASignature(ASignature)>*/;
3391 var_param_types = var18;
3392 var19 = ((long (*)(val*))(var_nsig->class->vft[COLOR_modelize_property__ASignature__vararg_rank]))(var_nsig) /* vararg_rank on <var_nsig:nullable ASignature(ASignature)>*/;
3393 var_vararg_rank = var19;
3394 var20 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_modelize_property__ASignature__ret_type]))(var_nsig) /* ret_type on <var_nsig:nullable ASignature(ASignature)>*/;
3395 var_ret_type = var20;
3396 } else {
3397 }
3398 var21 = NULL;
3399 var_msignature = var21;
3400 var22 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3401 var23 = !var22;
3402 if (var23){
3403 var24 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3404 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_model__MProperty__intro]))(var24) /* intro on <var24:MProperty(MMethod)>*/;
3405 var26 = ((val* (*)(val*))(var25->class->vft[COLOR_model__MMethodDef__msignature]))(var25) /* msignature on <var25:MPropDef(MMethodDef)>*/;
3406 var_msignature = var26;
3407 var27 = NULL;
3408 if (var_msignature == NULL) {
3409 var28 = 1; /* is null */
3410 } else {
3411 var28 = 0; /* arg is null but recv is not */
3412 }
3413 if (var28){
3414 goto RET_LABEL;
3415 } else {
3416 }
3417 var29 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
3418 var30 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__arity]))(var_msignature) /* arity on <var_msignature:nullable MSignature(MSignature)>*/;
3419 { /* Inline kernel#Int#!= (var29,var30) */
3420 var33 = var29 == var30;
3421 var34 = !var33;
3422 var31 = var34;
3423 goto RET_LABEL32;
3424 RET_LABEL32:(void)0;
3425 }
3426 if (var31){
3427 var35 = NULL;
3428 if (var_nsig == NULL) {
3429 var36 = 0; /* is null */
3430 } else {
3431 var36 = 1; /* arg is null and recv is not */
3432 }
3433 if (var36){
3434 var_node = var_nsig;
3435 } else {
3436 var_node = self;
3437 }
3438 if (varonce) {
3439 var37 = varonce;
3440 } else {
3441 var38 = "Redef error: ";
3442 var39 = 13;
3443 var40 = string__NativeString__to_s_with_length(var38, var39);
3444 var37 = var40;
3445 varonce = var37;
3446 }
3447 if (varonce41) {
3448 var42 = varonce41;
3449 } else {
3450 var43 = " redefines ";
3451 var44 = 11;
3452 var45 = string__NativeString__to_s_with_length(var43, var44);
3453 var42 = var45;
3454 varonce41 = var42;
3455 }
3456 var46 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3457 var47 = ((val* (*)(val*))(var46->class->vft[COLOR_model__MProperty__intro]))(var46) /* intro on <var46:MProperty(MMethod)>*/;
3458 if (varonce48) {
3459 var49 = varonce48;
3460 } else {
3461 var50 = " with ";
3462 var51 = 6;
3463 var52 = string__NativeString__to_s_with_length(var50, var51);
3464 var49 = var52;
3465 varonce48 = var49;
3466 }
3467 var53 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
3468 if (varonce54) {
3469 var55 = varonce54;
3470 } else {
3471 var56 = " parameter(s), ";
3472 var57 = 15;
3473 var58 = string__NativeString__to_s_with_length(var56, var57);
3474 var55 = var58;
3475 varonce54 = var55;
3476 }
3477 var59 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__arity]))(var_msignature) /* arity on <var_msignature:nullable MSignature(MSignature)>*/;
3478 if (varonce60) {
3479 var61 = varonce60;
3480 } else {
3481 var62 = " expected. Signature is ";
3482 var63 = 24;
3483 var64 = string__NativeString__to_s_with_length(var62, var63);
3484 var61 = var64;
3485 varonce60 = var61;
3486 }
3487 var65 = NEW_array__Array(&type_array__Arraykernel__Object);
3488 { /* var65 = array_instance Array[Object] */
3489 var66 = 11;
3490 var67 = NEW_array__NativeArray(var66, &type_array__NativeArraykernel__Object);
3491 ((struct instance_array__NativeArray*)var67)->values[0] = (val*) var37;
3492 ((struct instance_array__NativeArray*)var67)->values[1] = (val*) var_mpropdef;
3493 ((struct instance_array__NativeArray*)var67)->values[2] = (val*) var42;
3494 ((struct instance_array__NativeArray*)var67)->values[3] = (val*) var47;
3495 ((struct instance_array__NativeArray*)var67)->values[4] = (val*) var49;
3496 var68 = BOX_kernel__Int(var53); /* autobox from Int to Object */
3497 ((struct instance_array__NativeArray*)var67)->values[5] = (val*) var68;
3498 ((struct instance_array__NativeArray*)var67)->values[6] = (val*) var55;
3499 var69 = BOX_kernel__Int(var59); /* autobox from Int to Object */
3500 ((struct instance_array__NativeArray*)var67)->values[7] = (val*) var69;
3501 ((struct instance_array__NativeArray*)var67)->values[8] = (val*) var61;
3502 ((struct instance_array__NativeArray*)var67)->values[9] = (val*) var_mpropdef;
3503 ((struct instance_array__NativeArray*)var67)->values[10] = (val*) var_msignature;
3504 ((void (*)(val*, val*, long))(var65->class->vft[COLOR_array__Array__with_native]))(var65, var67, var66) /* with_native on <var65:Array[Object]>*/;
3505 }
3506 var70 = ((val* (*)(val*))(var65->class->vft[COLOR_string__Object__to_s]))(var65) /* to_s on <var65:Array[Object]>*/;
3507 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node, var70) /* error on <var_modelbuilder:ModelBuilder>*/;
3508 goto RET_LABEL;
3509 } else {
3510 }
3511 } else {
3512 var71 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3513 var72 = ((short int (*)(val*))(var71->class->vft[COLOR_model__MMethod__is_init]))(var71) /* is_init on <var71:MProperty(MMethod)>*/;
3514 if (var72){
3515 var73 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
3516 if (var73 == NULL) {
3517 fprintf(stderr, "Runtime error: %s", "Receiver is null");
3518 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 464);
3519 show_backtrace(1);
3520 } else {
3521 var74 = ((val* (*)(val*))(var73->class->vft[COLOR_model__MClassDef__supertypes]))(var73) /* supertypes on <var73:nullable MClassDef>*/;
3522 }
3523 var75 = ((val* (*)(val*))(var74->class->vft[COLOR_abstract_collection__Collection__iterator]))(var74) /* iterator on <var74:Array[MClassType]>*/;
3524 for(;;) {
3525 var76 = ((short int (*)(val*))(var75->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var75) /* is_ok on <var75:Iterator[nullable Object]>*/;
3526 if(!var76) break;
3527 var77 = ((val* (*)(val*))(var75->class->vft[COLOR_abstract_collection__Iterator__item]))(var75) /* item on <var75:Iterator[nullable Object]>*/;
3528 var_msupertype = var77;
3529 var78 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
3530 if (var78 == NULL) {
3531 fprintf(stderr, "Runtime error: %s", "Receiver is null");
3532 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 465);
3533 show_backtrace(1);
3534 } else {
3535 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MClassDef__bound_mtype]))(var78) /* bound_mtype on <var78:nullable MClassDef>*/;
3536 }
3537 var80 = ((val* (*)(val*, val*, val*))(var_msupertype->class->vft[COLOR_model__MType__anchor_to]))(var_msupertype, var_mmodule, var79) /* anchor_to on <var_msupertype:MClassType>*/;
3538 var_msupertype = var80;
3539 var81 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3540 var82 = ((val* (*)(val*))(var81->class->vft[COLOR_model__MProperty__name]))(var81) /* name on <var81:MProperty(MMethod)>*/;
3541 var83 = ((val* (*)(val*, val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(var_modelbuilder, self, var_mmodule, var_msupertype, var82) /* try_get_mproperty_by_name2 on <var_modelbuilder:ModelBuilder>*/;
3542 var_candidate = var83;
3543 var84 = NULL;
3544 if (var_candidate == NULL) {
3545 var85 = 0; /* is null */
3546 } else {
3547 var85 = 1; /* arg is null and recv is not */
3548 }
3549 if (var85){
3550 var86 = NULL;
3551 if (var_msignature == NULL) {
3552 var87 = 1; /* is null */
3553 } else {
3554 var87 = 0; /* arg is null but recv is not */
3555 }
3556 if (var87){
3557 var88 = ((val* (*)(val*))(var_candidate->class->vft[COLOR_model__MProperty__intro]))(var_candidate) /* intro on <var_candidate:nullable MProperty(MProperty)>*/;
3558 /* <var88:MPropDef> isa MMethodDef */
3559 cltype = type_model__MMethodDef.color;
3560 idtype = type_model__MMethodDef.id;
3561 if(cltype >= var88->type->table_size) {
3562 var89 = 0;
3563 } else {
3564 var89 = var88->type->type_table[cltype] == idtype;
3565 }
3566 if (!var89) {
3567 var_class_name = var88 == NULL ? "null" : var88->type->name;
3568 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name);
3569 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 469);
3570 show_backtrace(1);
3571 }
3572 var90 = ((val* (*)(val*))(var88->class->vft[COLOR_model__MMethodDef__msignature]))(var88) /* msignature on <var88:MPropDef(MMethodDef)>*/;
3573 var_msignature = var90;
3574 } else {
3575 }
3576 } else {
3577 }
3578 CONTINUE_label: (void)0;
3579 ((void (*)(val*))(var75->class->vft[COLOR_abstract_collection__Iterator__next]))(var75) /* next on <var75:Iterator[nullable Object]>*/;
3580 }
3581 BREAK_label: (void)0;
3582 } else {
3583 }
3584 }
3585 var94 = NULL;
3586 if (var_msignature == NULL) {
3587 var95 = 0; /* is null */
3588 } else {
3589 var95 = 1; /* arg is null and recv is not */
3590 }
3591 var_ = var95;
3592 if (var95){
3593 var96 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
3594 var97 = ((long (*)(val*))(var_param_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_types) /* length on <var_param_types:Array[MType]>*/;
3595 { /* Inline kernel#Int#!= (var96,var97) */
3596 var100 = var96 == var97;
3597 var101 = !var100;
3598 var98 = var101;
3599 goto RET_LABEL99;
3600 RET_LABEL99:(void)0;
3601 }
3602 var93 = var98;
3603 } else {
3604 var93 = var_;
3605 }
3606 var_102 = var93;
3607 if (var93){
3608 var103 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
3609 var104 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__arity]))(var_msignature) /* arity on <var_msignature:nullable MSignature(MSignature)>*/;
3610 { /* Inline kernel#Int#== (var103,var104) */
3611 var107 = var103 == var104;
3612 var105 = var107;
3613 goto RET_LABEL106;
3614 RET_LABEL106:(void)0;
3615 }
3616 var92 = var105;
3617 } else {
3618 var92 = var_102;
3619 }
3620 var_108 = var92;
3621 if (var92){
3622 var109 = ((long (*)(val*))(var_param_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_types) /* length on <var_param_types:Array[MType]>*/;
3623 var110 = 0;
3624 { /* Inline kernel#Int#== (var109,var110) */
3625 var113 = var109 == var110;
3626 var111 = var113;
3627 goto RET_LABEL112;
3628 RET_LABEL112:(void)0;
3629 }
3630 var91 = var111;
3631 } else {
3632 var91 = var_108;
3633 }
3634 if (var91){
3635 var114 = NEW_array__Array(&type_array__Arraymodel__MType);
3636 ((void (*)(val*))(var114->class->vft[COLOR_array__Array__init]))(var114) /* init on <var114:Array[MType]>*/;
3637 var_param_types = var114;
3638 var115 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__mparameters]))(var_msignature) /* mparameters on <var_msignature:nullable MSignature(MSignature)>*/;
3639 var116 = ((val* (*)(val*))(var115->class->vft[COLOR_abstract_collection__Collection__iterator]))(var115) /* iterator on <var115:Array[MParameter]>*/;
3640 for(;;) {
3641 var117 = ((short int (*)(val*))(var116->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var116) /* is_ok on <var116:Iterator[nullable Object]>*/;
3642 if(!var117) break;
3643 var118 = ((val* (*)(val*))(var116->class->vft[COLOR_abstract_collection__Iterator__item]))(var116) /* item on <var116:Iterator[nullable Object]>*/;
3644 var_mparameter = var118;
3645 var119 = ((val* (*)(val*))(var_mparameter->class->vft[COLOR_model__MParameter__mtype]))(var_mparameter) /* mtype on <var_mparameter:MParameter>*/;
3646 ((void (*)(val*, val*))(var_param_types->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_param_types, var119) /* add on <var_param_types:Array[MType]>*/;
3647 CONTINUE_label120: (void)0;
3648 ((void (*)(val*))(var116->class->vft[COLOR_abstract_collection__Iterator__next]))(var116) /* next on <var116:Iterator[nullable Object]>*/;
3649 }
3650 BREAK_label120: (void)0;
3651 var121 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__vararg_rank]))(var_msignature) /* vararg_rank on <var_msignature:nullable MSignature(MSignature)>*/;
3652 var_vararg_rank = var121;
3653 } else {
3654 }
3655 var123 = NULL;
3656 if (var_msignature == NULL) {
3657 var124 = 0; /* is null */
3658 } else {
3659 var124 = 1; /* arg is null and recv is not */
3660 }
3661 var_125 = var124;
3662 if (var124){
3663 var126 = NULL;
3664 if (var_ret_type == NULL) {
3665 var127 = 1; /* is null */
3666 } else {
3667 var127 = 0; /* arg is null but recv is not */
3668 }
3669 var122 = var127;
3670 } else {
3671 var122 = var_125;
3672 }
3673 if (var122){
3674 var128 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__return_mtype]))(var_msignature) /* return_mtype on <var_msignature:nullable MSignature(MSignature)>*/;
3675 var_ret_type = var128;
3676 } else {
3677 }
3678 var129 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
3679 var130 = ((long (*)(val*))(var_param_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_types) /* length on <var_param_types:Array[MType]>*/;
3680 { /* Inline kernel#Int#!= (var129,var130) */
3681 var133 = var129 == var130;
3682 var134 = !var133;
3683 var131 = var134;
3684 goto RET_LABEL132;
3685 RET_LABEL132:(void)0;
3686 }
3687 if (var131){
3688 if (var_nsig == NULL) {
3689 fprintf(stderr, "Runtime error: %s", "Receiver is null");
3690 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 491);
3691 show_backtrace(1);
3692 } else {
3693 var135 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var_nsig) /* n_params on <var_nsig:nullable ASignature>*/;
3694 }
3695 var136 = ((long (*)(val*))(var_param_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_types) /* length on <var_param_types:Array[MType]>*/;
3696 var137 = ((val* (*)(val*, long))(var135->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var135, var136) /* [] on <var135:ANodes[AParam]>*/;
3697 if (varonce138) {
3698 var139 = varonce138;
3699 } else {
3700 var140 = "Error: Untyped parameter `";
3701 var141 = 26;
3702 var142 = string__NativeString__to_s_with_length(var140, var141);
3703 var139 = var142;
3704 varonce138 = var139;
3705 }
3706 var143 = ((long (*)(val*))(var_param_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_types) /* length on <var_param_types:Array[MType]>*/;
3707 var144 = ((val* (*)(val*, long))(var_param_names->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_param_names, var143) /* [] on <var_param_names:Array[String]>*/;
3708 if (varonce145) {
3709 var146 = varonce145;
3710 } else {
3711 var147 = "\'.";
3712 var148 = 2;
3713 var149 = string__NativeString__to_s_with_length(var147, var148);
3714 var146 = var149;
3715 varonce145 = var146;
3716 }
3717 var150 = NEW_array__Array(&type_array__Arraykernel__Object);
3718 { /* var150 = array_instance Array[Object] */
3719 var151 = 3;
3720 var152 = NEW_array__NativeArray(var151, &type_array__NativeArraykernel__Object);
3721 ((struct instance_array__NativeArray*)var152)->values[0] = (val*) var139;
3722 ((struct instance_array__NativeArray*)var152)->values[1] = (val*) var144;
3723 ((struct instance_array__NativeArray*)var152)->values[2] = (val*) var146;
3724 ((void (*)(val*, val*, long))(var150->class->vft[COLOR_array__Array__with_native]))(var150, var152, var151) /* with_native on <var150:Array[Object]>*/;
3725 }
3726 var153 = ((val* (*)(val*))(var150->class->vft[COLOR_string__Object__to_s]))(var150) /* to_s on <var150:Array[Object]>*/;
3727 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var137, var153) /* error on <var_modelbuilder:ModelBuilder>*/;
3728 goto RET_LABEL;
3729 } else {
3730 }
3731 var154 = NEW_array__Array(&type_array__Arraymodel__MParameter);
3732 ((void (*)(val*))(var154->class->vft[COLOR_array__Array__init]))(var154) /* init on <var154:Array[MParameter]>*/;
3733 var_mparameters = var154;
3734 var155 = NEW_range__Range(&type_range__Rangekernel__Int);
3735 var156 = 0;
3736 var157 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection__Collection__length]))(var_param_names) /* length on <var_param_names:Array[String]>*/;
3737 var158 = BOX_kernel__Int(var156); /* autobox from Int to Discrete */
3738 var159 = BOX_kernel__Int(var157); /* autobox from Int to Discrete */
3739 ((void (*)(val*, val*, val*))(var155->class->vft[COLOR_range__Range__without_last]))(var155, var158, var159) /* without_last on <var155:Range[Int]>*/;
3740 var160 = ((val* (*)(val*))(var155->class->vft[COLOR_abstract_collection__Collection__iterator]))(var155) /* iterator on <var155:Range[Int]>*/;
3741 for(;;) {
3742 var161 = ((short int (*)(val*))(var160->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var160) /* is_ok on <var160:Iterator[nullable Object]>*/;
3743 if(!var161) break;
3744 var162 = ((val* (*)(val*))(var160->class->vft[COLOR_abstract_collection__Iterator__item]))(var160) /* item on <var160:Iterator[nullable Object]>*/;
3745 var163 = ((struct instance_kernel__Int*)var162)->value; /* autounbox from nullable Object to Int */;
3746 var_i = var163;
3747 var164 = NEW_model__MParameter(&type_model__MParameter);
3748 var165 = ((val* (*)(val*, long))(var_param_names->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_param_names, var_i) /* [] on <var_param_names:Array[String]>*/;
3749 var166 = ((val* (*)(val*, long))(var_param_types->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_param_types, var_i) /* [] on <var_param_types:Array[MType]>*/;
3750 { /* Inline kernel#Int#== (var_i,var_vararg_rank) */
3751 var169 = var_i == var_vararg_rank;
3752 var167 = var169;
3753 goto RET_LABEL168;
3754 RET_LABEL168:(void)0;
3755 }
3756 ((void (*)(val*, val*, val*, short int))(var164->class->vft[COLOR_model__MParameter__init]))(var164, var165, var166, var167) /* init on <var164:MParameter>*/;
3757 var_mparameter170 = var164;
3758 var171 = NULL;
3759 if (var_nsig == NULL) {
3760 var172 = 0; /* is null */
3761 } else {
3762 var172 = 1; /* arg is null and recv is not */
3763 }
3764 if (var172){
3765 var173 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var_nsig) /* n_params on <var_nsig:nullable ASignature(ASignature)>*/;
3766 var174 = ((val* (*)(val*, long))(var173->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var173, var_i) /* [] on <var173:ANodes[AParam]>*/;
3767 ((void (*)(val*, val*))(var174->class->vft[COLOR_modelize_property__AParam__mparameter_61d]))(var174, var_mparameter170) /* mparameter= on <var174:nullable Object(AParam)>*/;
3768 } else {
3769 }
3770 ((void (*)(val*, val*))(var_mparameters->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_mparameters, var_mparameter170) /* add on <var_mparameters:Array[MParameter]>*/;
3771 CONTINUE_label175: (void)0;
3772 ((void (*)(val*))(var160->class->vft[COLOR_abstract_collection__Iterator__next]))(var160) /* next on <var160:Iterator[nullable Object]>*/;
3773 }
3774 BREAK_label175: (void)0;
3775 var176 = NEW_model__MSignature(&type_model__MSignature);
3776 ((void (*)(val*, val*, val*))(var176->class->vft[COLOR_model__MSignature__init]))(var176, var_mparameters, var_ret_type) /* init on <var176:MSignature>*/;
3777 var_msignature = var176;
3778 ((void (*)(val*, val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mpropdef, var_msignature) /* msignature= on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3779 /* <self:AMethPropdef> isa ADeferredMethPropdef */
3780 cltype178 = type_parser_nodes__ADeferredMethPropdef.color;
3781 idtype179 = type_parser_nodes__ADeferredMethPropdef.id;
3782 if(cltype178 >= self->type->table_size) {
3783 var177 = 0;
3784 } else {
3785 var177 = self->type->type_table[cltype178] == idtype179;
3786 }
3787 ((void (*)(val*, short int))(var_mpropdef->class->vft[COLOR_model__MMethodDef__is_abstract_61d]))(var_mpropdef, var177) /* is_abstract= on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3788 RET_LABEL:;
3789 }
3790 /* method modelize_property#AMethPropdef#build_signature for (self: Object, ModelBuilder, AClassdef) */
3791 void VIRTUAL_modelize_property__AMethPropdef__build_signature(val* self, val* p0, val* p1) {
3792 modelize_property__AMethPropdef__build_signature(self, p0, p1);
3793 RET_LABEL:;
3794 }
3795 /* method modelize_property#AMethPropdef#check_signature for (self: AMethPropdef, ModelBuilder, AClassdef) */
3796 void modelize_property__AMethPropdef__check_signature(val* self, val* p0, val* p1) {
3797 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
3798 val* var_nclassdef /* var nclassdef: AClassdef */;
3799 val* var /* : nullable MPropDef */;
3800 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
3801 val* var1 /* : null */;
3802 short int var2 /* : Bool */;
3803 val* var3 /* : MClassDef */;
3804 val* var4 /* : MModule */;
3805 val* var_mmodule /* var mmodule: MModule */;
3806 val* var5 /* : nullable ASignature */;
3807 val* var_nsig /* var nsig: nullable ASignature */;
3808 val* var6 /* : nullable MPropDef */;
3809 val* var7 /* : nullable MSignature */;
3810 val* var_mysignature /* var mysignature: nullable MSignature */;
3811 val* var8 /* : null */;
3812 short int var9 /* : Bool */;
3813 short int var10 /* : Bool */;
3814 short int var11 /* : Bool */;
3815 val* var12 /* : MProperty */;
3816 val* var13 /* : MPropDef */;
3817 val* var14 /* : nullable MSignature */;
3818 val* var_msignature /* var msignature: nullable MSignature */;
3819 val* var15 /* : null */;
3820 short int var16 /* : Bool */;
3821 val* var17 /* : nullable MType */;
3822 val* var_precursor_ret_type /* var precursor_ret_type: nullable MType */;
3823 val* var18 /* : nullable MType */;
3824 val* var_ret_type /* var ret_type: nullable MType */;
3825 short int var19 /* : Bool */;
3826 val* var20 /* : null */;
3827 short int var21 /* : Bool */;
3828 short int var_ /* var : Bool */;
3829 val* var22 /* : null */;
3830 short int var23 /* : Bool */;
3831 val* var24 /* : nullable AType */;
3832 static val* varonce;
3833 val* var25 /* : String */;
3834 char* var26 /* : NativeString */;
3835 long var27 /* : Int */;
3836 val* var28 /* : String */;
3837 val* var29 /* : MProperty */;
3838 static val* varonce30;
3839 val* var31 /* : String */;
3840 char* var32 /* : NativeString */;
3841 long var33 /* : Int */;
3842 val* var34 /* : String */;
3843 val* var35 /* : Array[Object] */;
3844 long var36 /* : Int */;
3845 val* var37 /* : NativeArray[Object] */;
3846 val* var38 /* : String */;
3847 long var39 /* : Int */;
3848 long var40 /* : Int */;
3849 short int var41 /* : Bool */;
3850 short int var43 /* : Bool */;
3851 int cltype;
3852 int idtype;
3853 const char* var_class_name;
3854 short int var44 /* : Bool */;
3855 val* var45 /* : Range[Int] */;
3856 long var46 /* : Int */;
3857 long var47 /* : Int */;
3858 val* var48 /* : Discrete */;
3859 val* var49 /* : Discrete */;
3860 val* var50 /* : Iterator[nullable Object] */;
3861 short int var51 /* : Bool */;
3862 val* var52 /* : nullable Object */;
3863 long var_i /* var i: Int */;
3864 long var53 /* : Int */;
3865 val* var54 /* : Array[MParameter] */;
3866 val* var55 /* : nullable Object */;
3867 val* var56 /* : MType */;
3868 val* var_myt /* var myt: MType */;
3869 val* var57 /* : Array[MParameter] */;
3870 val* var58 /* : nullable Object */;
3871 val* var59 /* : MType */;
3872 val* var_prt /* var prt: MType */;
3873 short int var60 /* : Bool */;
3874 val* var61 /* : nullable MClassDef */;
3875 val* var62 /* : MClassType */;
3876 short int var63 /* : Bool */;
3877 short int var64 /* : Bool */;
3878 short int var_65 /* var : Bool */;
3879 val* var66 /* : nullable MClassDef */;
3880 val* var67 /* : MClassType */;
3881 short int var68 /* : Bool */;
3882 short int var69 /* : Bool */;
3883 val* var70 /* : ANodes[AParam] */;
3884 val* var71 /* : nullable Object */;
3885 static val* varonce72;
3886 val* var73 /* : String */;
3887 char* var74 /* : NativeString */;
3888 long var75 /* : Int */;
3889 val* var76 /* : String */;
3890 val* var77 /* : Array[MParameter] */;
3891 val* var78 /* : nullable Object */;
3892 val* var79 /* : String */;
3893 static val* varonce80;
3894 val* var81 /* : String */;
3895 char* var82 /* : NativeString */;
3896 long var83 /* : Int */;
3897 val* var84 /* : String */;
3898 static val* varonce85;
3899 val* var86 /* : String */;
3900 char* var87 /* : NativeString */;
3901 long var88 /* : Int */;
3902 val* var89 /* : String */;
3903 static val* varonce90;
3904 val* var91 /* : String */;
3905 char* var92 /* : NativeString */;
3906 long var93 /* : Int */;
3907 val* var94 /* : String */;
3908 val* var95 /* : MProperty */;
3909 val* var96 /* : MPropDef */;
3910 static val* varonce97;
3911 val* var98 /* : String */;
3912 char* var99 /* : NativeString */;
3913 long var100 /* : Int */;
3914 val* var101 /* : String */;
3915 val* var102 /* : Array[Object] */;
3916 long var103 /* : Int */;
3917 val* var104 /* : NativeArray[Object] */;
3918 val* var105 /* : String */;
3919 val* var106 /* : null */;
3920 short int var107 /* : Bool */;
3921 val* var108 /* : null */;
3922 short int var109 /* : Bool */;
3923 val* var110 /* : nullable MClassDef */;
3924 val* var111 /* : MClassType */;
3925 short int var112 /* : Bool */;
3926 short int var113 /* : Bool */;
3927 val* var114 /* : nullable AType */;
3928 static val* varonce115;
3929 val* var116 /* : String */;
3930 char* var117 /* : NativeString */;
3931 long var118 /* : Int */;
3932 val* var119 /* : String */;
3933 static val* varonce120;
3934 val* var121 /* : String */;
3935 char* var122 /* : NativeString */;
3936 long var123 /* : Int */;
3937 val* var124 /* : String */;
3938 static val* varonce125;
3939 val* var126 /* : String */;
3940 char* var127 /* : NativeString */;
3941 long var128 /* : Int */;
3942 val* var129 /* : String */;
3943 val* var130 /* : MProperty */;
3944 val* var131 /* : MPropDef */;
3945 static val* varonce132;
3946 val* var133 /* : String */;
3947 char* var134 /* : NativeString */;
3948 long var135 /* : Int */;
3949 val* var136 /* : String */;
3950 val* var137 /* : Array[Object] */;
3951 long var138 /* : Int */;
3952 val* var139 /* : NativeArray[Object] */;
3953 val* var140 /* : String */;
3954 var_modelbuilder = p0;
3955 var_nclassdef = p1;
3956 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AMethPropdef>*/;
3957 var_mpropdef = var;
3958 var1 = NULL;
3959 if (var_mpropdef == NULL) {
3960 var2 = 1; /* is null */
3961 } else {
3962 var2 = 0; /* arg is null but recv is not */
3963 }
3964 if (var2){
3965 goto RET_LABEL;
3966 } else {
3967 }
3968 var3 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3969 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on <var3:MClassDef>*/;
3970 var_mmodule = var4;
3971 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature]))(self) /* n_signature on <self:AMethPropdef>*/;
3972 var_nsig = var5;
3973 var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AMethPropdef>*/;
3974 if (var6 == NULL) {
3975 fprintf(stderr, "Runtime error: %s", "Receiver is null");
3976 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 513);
3977 show_backtrace(1);
3978 } else {
3979 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MMethodDef__msignature]))(var6) /* msignature on <var6:nullable MPropDef(nullable MMethodDef)>*/;
3980 }
3981 var_mysignature = var7;
3982 var8 = NULL;
3983 if (var_mysignature == NULL) {
3984 var9 = 1; /* is null */
3985 } else {
3986 var9 = 0; /* arg is null but recv is not */
3987 }
3988 if (var9){
3989 goto RET_LABEL;
3990 } else {
3991 }
3992 var10 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3993 var11 = !var10;
3994 if (var11){
3995 var12 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
3996 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MProperty__intro]))(var12) /* intro on <var12:MProperty(MMethod)>*/;
3997 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MMethodDef__msignature]))(var13) /* msignature on <var13:MPropDef(MMethodDef)>*/;
3998 var_msignature = var14;
3999 var15 = NULL;
4000 if (var_msignature == NULL) {
4001 var16 = 1; /* is null */
4002 } else {
4003 var16 = 0; /* arg is null but recv is not */
4004 }
4005 if (var16){
4006 goto RET_LABEL;
4007 } else {
4008 }
4009 var17 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__return_mtype]))(var_msignature) /* return_mtype on <var_msignature:nullable MSignature(MSignature)>*/;
4010 var_precursor_ret_type = var17;
4011 var18 = ((val* (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__return_mtype]))(var_mysignature) /* return_mtype on <var_mysignature:nullable MSignature(MSignature)>*/;
4012 var_ret_type = var18;
4013 var20 = NULL;
4014 if (var_ret_type == NULL) {
4015 var21 = 0; /* is null */
4016 } else {
4017 var21 = 1; /* arg is null and recv is not */
4018 }
4019 var_ = var21;
4020 if (var21){
4021 var22 = NULL;
4022 if (var_precursor_ret_type == NULL) {
4023 var23 = 1; /* is null */
4024 } else {
4025 var23 = 0; /* arg is null but recv is not */
4026 }
4027 var19 = var23;
4028 } else {
4029 var19 = var_;
4030 }
4031 if (var19){
4032 if (var_nsig == NULL) {
4033 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4034 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 525);
4035 show_backtrace(1);
4036 } else {
4037 var24 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_type]))(var_nsig) /* n_type on <var_nsig:nullable ASignature>*/;
4038 }
4039 if (var24 == NULL) {
4040 fprintf(stderr, "Runtime error: %s", "Cast failed");
4041 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 525);
4042 show_backtrace(1);
4043 }
4044 if (varonce) {
4045 var25 = varonce;
4046 } else {
4047 var26 = "Redef Error: ";
4048 var27 = 13;
4049 var28 = string__NativeString__to_s_with_length(var26, var27);
4050 var25 = var28;
4051 varonce = var25;
4052 }
4053 var29 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
4054 if (varonce30) {
4055 var31 = varonce30;
4056 } else {
4057 var32 = " is a procedure, not a function.";
4058 var33 = 32;
4059 var34 = string__NativeString__to_s_with_length(var32, var33);
4060 var31 = var34;
4061 varonce30 = var31;
4062 }
4063 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
4064 { /* var35 = array_instance Array[Object] */
4065 var36 = 3;
4066 var37 = NEW_array__NativeArray(var36, &type_array__NativeArraykernel__Object);
4067 ((struct instance_array__NativeArray*)var37)->values[0] = (val*) var25;
4068 ((struct instance_array__NativeArray*)var37)->values[1] = (val*) var29;
4069 ((struct instance_array__NativeArray*)var37)->values[2] = (val*) var31;
4070 ((void (*)(val*, val*, long))(var35->class->vft[COLOR_array__Array__with_native]))(var35, var37, var36) /* with_native on <var35:Array[Object]>*/;
4071 }
4072 var38 = ((val* (*)(val*))(var35->class->vft[COLOR_string__Object__to_s]))(var35) /* to_s on <var35:Array[Object]>*/;
4073 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var24, var38) /* error on <var_modelbuilder:ModelBuilder>*/;
4074 goto RET_LABEL;
4075 } else {
4076 }
4077 var39 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__arity]))(var_mysignature) /* arity on <var_mysignature:nullable MSignature(MSignature)>*/;
4078 var40 = 0;
4079 { /* Inline kernel#Int#> (var39,var40) */
4080 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
4081 /* <var40:Int> isa OTHER */
4082 var43 = 1; /* easy <var40:Int> isa OTHER*/
4083 if (!var43) {
4084 var_class_name = type_kernel__Int.name;
4085 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4086 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
4087 show_backtrace(1);
4088 }
4089 var44 = var39 > var40;
4090 var41 = var44;
4091 goto RET_LABEL42;
4092 RET_LABEL42:(void)0;
4093 }
4094 if (var41){
4095 var45 = NEW_range__Range(&type_range__Rangekernel__Int);
4096 var46 = 0;
4097 var47 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__arity]))(var_mysignature) /* arity on <var_mysignature:nullable MSignature(MSignature)>*/;
4098 var48 = BOX_kernel__Int(var46); /* autobox from Int to Discrete */
4099 var49 = BOX_kernel__Int(var47); /* autobox from Int to Discrete */
4100 ((void (*)(val*, val*, val*))(var45->class->vft[COLOR_range__Range__without_last]))(var45, var48, var49) /* without_last on <var45:Range[Int]>*/;
4101 var50 = ((val* (*)(val*))(var45->class->vft[COLOR_abstract_collection__Collection__iterator]))(var45) /* iterator on <var45:Range[Int]>*/;
4102 for(;;) {
4103 var51 = ((short int (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var50) /* is_ok on <var50:Iterator[nullable Object]>*/;
4104 if(!var51) break;
4105 var52 = ((val* (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__item]))(var50) /* item on <var50:Iterator[nullable Object]>*/;
4106 var53 = ((struct instance_kernel__Int*)var52)->value; /* autounbox from nullable Object to Int */;
4107 var_i = var53;
4108 var54 = ((val* (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__mparameters]))(var_mysignature) /* mparameters on <var_mysignature:nullable MSignature(MSignature)>*/;
4109 var55 = ((val* (*)(val*, long))(var54->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var54, var_i) /* [] on <var54:Array[MParameter]>*/;
4110 var56 = ((val* (*)(val*))(var55->class->vft[COLOR_model__MParameter__mtype]))(var55) /* mtype on <var55:nullable Object(MParameter)>*/;
4111 var_myt = var56;
4112 var57 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__mparameters]))(var_msignature) /* mparameters on <var_msignature:nullable MSignature(MSignature)>*/;
4113 var58 = ((val* (*)(val*, long))(var57->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var57, var_i) /* [] on <var57:Array[MParameter]>*/;
4114 var59 = ((val* (*)(val*))(var58->class->vft[COLOR_model__MParameter__mtype]))(var58) /* mtype on <var58:nullable Object(MParameter)>*/;
4115 var_prt = var59;
4116 var61 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
4117 if (var61 == NULL) {
4118 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4119 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 534);
4120 show_backtrace(1);
4121 } else {
4122 var62 = ((val* (*)(val*))(var61->class->vft[COLOR_model__MClassDef__bound_mtype]))(var61) /* bound_mtype on <var61:nullable MClassDef>*/;
4123 }
4124 var63 = ((short int (*)(val*, val*, val*, val*))(var_myt->class->vft[COLOR_model__MType__is_subtype]))(var_myt, var_mmodule, var62, var_prt) /* is_subtype on <var_myt:MType>*/;
4125 var64 = !var63;
4126 var_65 = var64;
4127 if (var64){
4128 var60 = var_65;
4129 } else {
4130 var66 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
4131 if (var66 == NULL) {
4132 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4133 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 535);
4134 show_backtrace(1);
4135 } else {
4136 var67 = ((val* (*)(val*))(var66->class->vft[COLOR_model__MClassDef__bound_mtype]))(var66) /* bound_mtype on <var66:nullable MClassDef>*/;
4137 }
4138 var68 = ((short int (*)(val*, val*, val*, val*))(var_prt->class->vft[COLOR_model__MType__is_subtype]))(var_prt, var_mmodule, var67, var_myt) /* is_subtype on <var_prt:MType>*/;
4139 var69 = !var68;
4140 var60 = var69;
4141 }
4142 if (var60){
4143 if (var_nsig == NULL) {
4144 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4145 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 536);
4146 show_backtrace(1);
4147 } else {
4148 var70 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var_nsig) /* n_params on <var_nsig:nullable ASignature>*/;
4149 }
4150 var71 = ((val* (*)(val*, long))(var70->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var70, var_i) /* [] on <var70:ANodes[AParam]>*/;
4151 if (varonce72) {
4152 var73 = varonce72;
4153 } else {
4154 var74 = "Redef Error: Wrong type for parameter `";
4155 var75 = 39;
4156 var76 = string__NativeString__to_s_with_length(var74, var75);
4157 var73 = var76;
4158 varonce72 = var73;
4159 }
4160 var77 = ((val* (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__mparameters]))(var_mysignature) /* mparameters on <var_mysignature:nullable MSignature(MSignature)>*/;
4161 var78 = ((val* (*)(val*, long))(var77->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var77, var_i) /* [] on <var77:Array[MParameter]>*/;
4162 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MParameter__name]))(var78) /* name on <var78:nullable Object(MParameter)>*/;
4163 if (varonce80) {
4164 var81 = varonce80;
4165 } else {
4166 var82 = "\'. found ";
4167 var83 = 9;
4168 var84 = string__NativeString__to_s_with_length(var82, var83);
4169 var81 = var84;
4170 varonce80 = var81;
4171 }
4172 if (varonce85) {
4173 var86 = varonce85;
4174 } else {
4175 var87 = ", expected ";
4176 var88 = 11;
4177 var89 = string__NativeString__to_s_with_length(var87, var88);
4178 var86 = var89;
4179 varonce85 = var86;
4180 }
4181 if (varonce90) {
4182 var91 = varonce90;
4183 } else {
4184 var92 = " as in ";
4185 var93 = 7;
4186 var94 = string__NativeString__to_s_with_length(var92, var93);
4187 var91 = var94;
4188 varonce90 = var91;
4189 }
4190 var95 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
4191 var96 = ((val* (*)(val*))(var95->class->vft[COLOR_model__MProperty__intro]))(var95) /* intro on <var95:MProperty(MMethod)>*/;
4192 if (varonce97) {
4193 var98 = varonce97;
4194 } else {
4195 var99 = ".";
4196 var100 = 1;
4197 var101 = string__NativeString__to_s_with_length(var99, var100);
4198 var98 = var101;
4199 varonce97 = var98;
4200 }
4201 var102 = NEW_array__Array(&type_array__Arraykernel__Object);
4202 { /* var102 = array_instance Array[Object] */
4203 var103 = 9;
4204 var104 = NEW_array__NativeArray(var103, &type_array__NativeArraykernel__Object);
4205 ((struct instance_array__NativeArray*)var104)->values[0] = (val*) var73;
4206 ((struct instance_array__NativeArray*)var104)->values[1] = (val*) var79;
4207 ((struct instance_array__NativeArray*)var104)->values[2] = (val*) var81;
4208 ((struct instance_array__NativeArray*)var104)->values[3] = (val*) var_myt;
4209 ((struct instance_array__NativeArray*)var104)->values[4] = (val*) var86;
4210 ((struct instance_array__NativeArray*)var104)->values[5] = (val*) var_prt;
4211 ((struct instance_array__NativeArray*)var104)->values[6] = (val*) var91;
4212 ((struct instance_array__NativeArray*)var104)->values[7] = (val*) var96;
4213 ((struct instance_array__NativeArray*)var104)->values[8] = (val*) var98;
4214 ((void (*)(val*, val*, long))(var102->class->vft[COLOR_array__Array__with_native]))(var102, var104, var103) /* with_native on <var102:Array[Object]>*/;
4215 }
4216 var105 = ((val* (*)(val*))(var102->class->vft[COLOR_string__Object__to_s]))(var102) /* to_s on <var102:Array[Object]>*/;
4217 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var71, var105) /* error on <var_modelbuilder:ModelBuilder>*/;
4218 } else {
4219 }
4220 CONTINUE_label: (void)0;
4221 ((void (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__next]))(var50) /* next on <var50:Iterator[nullable Object]>*/;
4222 }
4223 BREAK_label: (void)0;
4224 } else {
4225 }
4226 var106 = NULL;
4227 if (var_precursor_ret_type == NULL) {
4228 var107 = 0; /* is null */
4229 } else {
4230 var107 = 1; /* arg is null and recv is not */
4231 }
4232 if (var107){
4233 var108 = NULL;
4234 if (var_ret_type == NULL) {
4235 var109 = 1; /* is null */
4236 } else {
4237 var109 = 0; /* arg is null but recv is not */
4238 }
4239 if (var109){
4240 var_ret_type = var_precursor_ret_type;
4241 } else {
4242 var110 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
4243 if (var110 == NULL) {
4244 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4245 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 544);
4246 show_backtrace(1);
4247 } else {
4248 var111 = ((val* (*)(val*))(var110->class->vft[COLOR_model__MClassDef__bound_mtype]))(var110) /* bound_mtype on <var110:nullable MClassDef>*/;
4249 }
4250 var112 = ((short int (*)(val*, val*, val*, val*))(var_ret_type->class->vft[COLOR_model__MType__is_subtype]))(var_ret_type, var_mmodule, var111, var_precursor_ret_type) /* is_subtype on <var_ret_type:nullable MType(MType)>*/;
4251 var113 = !var112;
4252 if (var113){
4253 if (var_nsig == NULL) {
4254 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4255 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 545);
4256 show_backtrace(1);
4257 } else {
4258 var114 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_type]))(var_nsig) /* n_type on <var_nsig:nullable ASignature>*/;
4259 }
4260 if (var114 == NULL) {
4261 fprintf(stderr, "Runtime error: %s", "Cast failed");
4262 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 545);
4263 show_backtrace(1);
4264 }
4265 if (varonce115) {
4266 var116 = varonce115;
4267 } else {
4268 var117 = "Redef Error: Wrong return type. found ";
4269 var118 = 38;
4270 var119 = string__NativeString__to_s_with_length(var117, var118);
4271 var116 = var119;
4272 varonce115 = var116;
4273 }
4274 if (varonce120) {
4275 var121 = varonce120;
4276 } else {
4277 var122 = ", expected ";
4278 var123 = 11;
4279 var124 = string__NativeString__to_s_with_length(var122, var123);
4280 var121 = var124;
4281 varonce120 = var121;
4282 }
4283 if (varonce125) {
4284 var126 = varonce125;
4285 } else {
4286 var127 = " as in ";
4287 var128 = 7;
4288 var129 = string__NativeString__to_s_with_length(var127, var128);
4289 var126 = var129;
4290 varonce125 = var126;
4291 }
4292 var130 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/;
4293 var131 = ((val* (*)(val*))(var130->class->vft[COLOR_model__MProperty__intro]))(var130) /* intro on <var130:MProperty(MMethod)>*/;
4294 if (varonce132) {
4295 var133 = varonce132;
4296 } else {
4297 var134 = ".";
4298 var135 = 1;
4299 var136 = string__NativeString__to_s_with_length(var134, var135);
4300 var133 = var136;
4301 varonce132 = var133;
4302 }
4303 var137 = NEW_array__Array(&type_array__Arraykernel__Object);
4304 { /* var137 = array_instance Array[Object] */
4305 var138 = 7;
4306 var139 = NEW_array__NativeArray(var138, &type_array__NativeArraykernel__Object);
4307 ((struct instance_array__NativeArray*)var139)->values[0] = (val*) var116;
4308 ((struct instance_array__NativeArray*)var139)->values[1] = (val*) var_ret_type;
4309 ((struct instance_array__NativeArray*)var139)->values[2] = (val*) var121;
4310 ((struct instance_array__NativeArray*)var139)->values[3] = (val*) var_precursor_ret_type;
4311 ((struct instance_array__NativeArray*)var139)->values[4] = (val*) var126;
4312 ((struct instance_array__NativeArray*)var139)->values[5] = (val*) var131;
4313 ((struct instance_array__NativeArray*)var139)->values[6] = (val*) var133;
4314 ((void (*)(val*, val*, long))(var137->class->vft[COLOR_array__Array__with_native]))(var137, var139, var138) /* with_native on <var137:Array[Object]>*/;
4315 }
4316 var140 = ((val* (*)(val*))(var137->class->vft[COLOR_string__Object__to_s]))(var137) /* to_s on <var137:Array[Object]>*/;
4317 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var114, var140) /* error on <var_modelbuilder:ModelBuilder>*/;
4318 } else {
4319 }
4320 }
4321 } else {
4322 }
4323 } else {
4324 }
4325 RET_LABEL:;
4326 }
4327 /* method modelize_property#AMethPropdef#check_signature for (self: Object, ModelBuilder, AClassdef) */
4328 void VIRTUAL_modelize_property__AMethPropdef__check_signature(val* self, val* p0, val* p1) {
4329 modelize_property__AMethPropdef__check_signature(self, p0, p1);
4330 RET_LABEL:;
4331 }
4332 /* method modelize_property#AAttrPropdef#mreadpropdef for (self: AAttrPropdef): nullable MMethodDef */
4333 val* modelize_property__AAttrPropdef__mreadpropdef(val* self) {
4334 val* var /* : nullable MMethodDef */;
4335 val* var1 /* : nullable MMethodDef */;
4336 var1 = self->attrs[COLOR_modelize_property__AAttrPropdef___64dmreadpropdef].val; /* @mreadpropdef on <self:AAttrPropdef> */
4337 var = var1;
4338 RET_LABEL:;
4339 return var;
4340 }
4341 /* method modelize_property#AAttrPropdef#mreadpropdef for (self: Object): nullable MMethodDef */
4342 val* VIRTUAL_modelize_property__AAttrPropdef__mreadpropdef(val* self) {
4343 val* var /* : nullable MMethodDef */;
4344 val* var1 /* : nullable MMethodDef */;
4345 var1 = modelize_property__AAttrPropdef__mreadpropdef(self);
4346 var = var1;
4347 RET_LABEL:;
4348 return var;
4349 }
4350 /* method modelize_property#AAttrPropdef#mreadpropdef= for (self: AAttrPropdef, nullable MMethodDef) */
4351 void modelize_property__AAttrPropdef__mreadpropdef_61d(val* self, val* p0) {
4352 self->attrs[COLOR_modelize_property__AAttrPropdef___64dmreadpropdef].val = p0; /* @mreadpropdef on <self:AAttrPropdef> */
4353 RET_LABEL:;
4354 }
4355 /* method modelize_property#AAttrPropdef#mreadpropdef= for (self: Object, nullable MMethodDef) */
4356 void VIRTUAL_modelize_property__AAttrPropdef__mreadpropdef_61d(val* self, val* p0) {
4357 modelize_property__AAttrPropdef__mreadpropdef_61d(self, p0);
4358 RET_LABEL:;
4359 }
4360 /* method modelize_property#AAttrPropdef#mwritepropdef for (self: AAttrPropdef): nullable MMethodDef */
4361 val* modelize_property__AAttrPropdef__mwritepropdef(val* self) {
4362 val* var /* : nullable MMethodDef */;
4363 val* var1 /* : nullable MMethodDef */;
4364 var1 = self->attrs[COLOR_modelize_property__AAttrPropdef___64dmwritepropdef].val; /* @mwritepropdef on <self:AAttrPropdef> */
4365 var = var1;
4366 RET_LABEL:;
4367 return var;
4368 }
4369 /* method modelize_property#AAttrPropdef#mwritepropdef for (self: Object): nullable MMethodDef */
4370 val* VIRTUAL_modelize_property__AAttrPropdef__mwritepropdef(val* self) {
4371 val* var /* : nullable MMethodDef */;
4372 val* var1 /* : nullable MMethodDef */;
4373 var1 = modelize_property__AAttrPropdef__mwritepropdef(self);
4374 var = var1;
4375 RET_LABEL:;
4376 return var;
4377 }
4378 /* method modelize_property#AAttrPropdef#mwritepropdef= for (self: AAttrPropdef, nullable MMethodDef) */
4379 void modelize_property__AAttrPropdef__mwritepropdef_61d(val* self, val* p0) {
4380 self->attrs[COLOR_modelize_property__AAttrPropdef___64dmwritepropdef].val = p0; /* @mwritepropdef on <self:AAttrPropdef> */
4381 RET_LABEL:;
4382 }
4383 /* method modelize_property#AAttrPropdef#mwritepropdef= for (self: Object, nullable MMethodDef) */
4384 void VIRTUAL_modelize_property__AAttrPropdef__mwritepropdef_61d(val* self, val* p0) {
4385 modelize_property__AAttrPropdef__mwritepropdef_61d(self, p0);
4386 RET_LABEL:;
4387 }
4388 /* method modelize_property#AAttrPropdef#build_property for (self: AAttrPropdef, ModelBuilder, AClassdef) */
4389 void modelize_property__AAttrPropdef__build_property(val* self, val* p0, val* p1) {
4390 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4391 val* var_nclassdef /* var nclassdef: AClassdef */;
4392 val* var /* : nullable MClassDef */;
4393 val* var_mclassdef /* var mclassdef: MClassDef */;
4394 val* var1 /* : MClass */;
4395 val* var_mclass /* var mclass: MClass */;
4396 val* var2 /* : nullable TAttrid */;
4397 val* var3 /* : null */;
4398 short int var4 /* : Bool */;
4399 val* var5 /* : nullable TAttrid */;
4400 val* var6 /* : String */;
4401 val* var_name /* var name: String */;
4402 val* var7 /* : nullable TId */;
4403 val* var8 /* : String */;
4404 short int var9 /* : Bool */;
4405 val* var10 /* : MClassKind */;
4406 val* var11 /* : MClassKind */;
4407 short int var12 /* : Bool */;
4408 short int var_ /* var : Bool */;
4409 val* var13 /* : MClass */;
4410 val* var14 /* : MClassKind */;
4411 val* var15 /* : MClassKind */;
4412 short int var16 /* : Bool */;
4413 static val* varonce;
4414 val* var17 /* : String */;
4415 char* var18 /* : NativeString */;
4416 long var19 /* : Int */;
4417 val* var20 /* : String */;
4418 static val* varonce21;
4419 val* var22 /* : String */;
4420 char* var23 /* : NativeString */;
4421 long var24 /* : Int */;
4422 val* var25 /* : String */;
4423 static val* varonce26;
4424 val* var27 /* : String */;
4425 char* var28 /* : NativeString */;
4426 long var29 /* : Int */;
4427 val* var30 /* : String */;
4428 val* var31 /* : Array[Object] */;
4429 long var32 /* : Int */;
4430 val* var33 /* : NativeArray[Object] */;
4431 val* var34 /* : String */;
4432 val* var35 /* : MClassKind */;
4433 val* var36 /* : MClassKind */;
4434 short int var37 /* : Bool */;
4435 static val* varonce38;
4436 val* var39 /* : String */;
4437 char* var40 /* : NativeString */;
4438 long var41 /* : Int */;
4439 val* var42 /* : String */;
4440 static val* varonce43;
4441 val* var44 /* : String */;
4442 char* var45 /* : NativeString */;
4443 long var46 /* : Int */;
4444 val* var47 /* : String */;
4445 static val* varonce48;
4446 val* var49 /* : String */;
4447 char* var50 /* : NativeString */;
4448 long var51 /* : Int */;
4449 val* var52 /* : String */;
4450 val* var53 /* : Array[Object] */;
4451 long var54 /* : Int */;
4452 val* var55 /* : NativeArray[Object] */;
4453 val* var56 /* : String */;
4454 val* var57 /* : MClassKind */;
4455 val* var58 /* : MClassKind */;
4456 short int var59 /* : Bool */;
4457 static val* varonce60;
4458 val* var61 /* : String */;
4459 char* var62 /* : NativeString */;
4460 long var63 /* : Int */;
4461 val* var64 /* : String */;
4462 static val* varonce65;
4463 val* var66 /* : String */;
4464 char* var67 /* : NativeString */;
4465 long var68 /* : Int */;
4466 val* var69 /* : String */;
4467 static val* varonce70;
4468 val* var71 /* : String */;
4469 char* var72 /* : NativeString */;
4470 long var73 /* : Int */;
4471 val* var74 /* : String */;
4472 val* var75 /* : Array[Object] */;
4473 long var76 /* : Int */;
4474 val* var77 /* : NativeArray[Object] */;
4475 val* var78 /* : String */;
4476 val* var79 /* : nullable TAttrid */;
4477 val* var_nid /* var nid: nullable TAttrid */;
4478 val* var80 /* : null */;
4479 short int var81 /* : Bool */;
4480 val* var82 /* : nullable MProperty */;
4481 val* var_mprop /* var mprop: nullable MProperty */;
4482 val* var83 /* : null */;
4483 short int var84 /* : Bool */;
4484 val* var85 /* : AVisibility */;
4485 val* var86 /* : MVisibility */;
4486 val* var_mvisibility /* var mvisibility: MVisibility */;
4487 val* var87 /* : MAttribute */;
4488 val* var88 /* : nullable TKwredef */;
4489 short int var89 /* : Bool */;
4490 short int var90 /* : Bool */;
4491 short int var91 /* : Bool */;
4492 short int var92 /* : Bool */;
4493 int cltype;
4494 int idtype;
4495 val* var93 /* : AVisibility */;
4496 val* var94 /* : nullable TKwredef */;
4497 short int var95 /* : Bool */;
4498 short int var96 /* : Bool */;
4499 short int var97 /* : Bool */;
4500 val* var98 /* : Map[MProperty, APropdef] */;
4501 val* var99 /* : MAttributeDef */;
4502 val* var100 /* : Location */;
4503 val* var_mpropdef /* var mpropdef: MAttributeDef */;
4504 short int var101 /* : Bool */;
4505 int cltype102;
4506 int idtype103;
4507 const struct type* type_struct;
4508 const char* var_class_name;
4509 val* var104 /* : HashMap[MPropDef, APropdef] */;
4510 val* var105 /* : nullable AAble */;
4511 val* var_nreadable /* var nreadable: nullable AAble */;
4512 val* var106 /* : null */;
4513 short int var107 /* : Bool */;
4514 long var108 /* : Int */;
4515 val* var109 /* : String */;
4516 val* var_readname /* var readname: String */;
4517 val* var110 /* : nullable MProperty */;
4518 short int var111 /* : Bool */;
4519 int cltype112;
4520 int idtype113;
4521 const char* var_class_name114;
4522 val* var_mreadprop /* var mreadprop: nullable MMethod */;
4523 val* var115 /* : null */;
4524 short int var116 /* : Bool */;
4525 val* var117 /* : nullable AVisibility */;
4526 val* var118 /* : MVisibility */;
4527 val* var_mvisibility119 /* var mvisibility: MVisibility */;
4528 val* var120 /* : MMethod */;
4529 val* var121 /* : nullable TKwredef */;
4530 short int var122 /* : Bool */;
4531 short int var123 /* : Bool */;
4532 short int var124 /* : Bool */;
4533 val* var125 /* : nullable TKwredef */;
4534 short int var126 /* : Bool */;
4535 short int var127 /* : Bool */;
4536 short int var128 /* : Bool */;
4537 val* var129 /* : nullable AVisibility */;
4538 val* var130 /* : Map[MProperty, APropdef] */;
4539 val* var131 /* : MMethodDef */;
4540 val* var132 /* : Location */;
4541 val* var_mreadpropdef /* var mreadpropdef: MMethodDef */;
4542 val* var133 /* : HashMap[MPropDef, APropdef] */;
4543 val* var134 /* : nullable AAble */;
4544 val* var_nwritable /* var nwritable: nullable AAble */;
4545 val* var135 /* : null */;
4546 short int var136 /* : Bool */;
4547 long var137 /* : Int */;
4548 val* var138 /* : String */;
4549 static val* varonce139;
4550 val* var140 /* : String */;
4551 char* var141 /* : NativeString */;
4552 long var142 /* : Int */;
4553 val* var143 /* : String */;
4554 val* var144 /* : String */;
4555 val* var_writename /* var writename: String */;
4556 val* var145 /* : nullable MProperty */;
4557 short int var146 /* : Bool */;
4558 int cltype147;
4559 int idtype148;
4560 const char* var_class_name149;
4561 val* var_mwriteprop /* var mwriteprop: nullable MMethod */;
4562 val* var150 /* : null */;
4563 short int var151 /* : Bool */;
4564 val* var152 /* : nullable AVisibility */;
4565 val* var153 /* : MVisibility */;
4566 val* var_mvisibility154 /* var mvisibility: MVisibility */;
4567 val* var155 /* : MMethod */;
4568 val* var156 /* : nullable TKwredef */;
4569 short int var157 /* : Bool */;
4570 short int var158 /* : Bool */;
4571 short int var159 /* : Bool */;
4572 val* var160 /* : nullable TKwredef */;
4573 short int var161 /* : Bool */;
4574 short int var162 /* : Bool */;
4575 short int var163 /* : Bool */;
4576 val* var164 /* : nullable AVisibility */;
4577 val* var165 /* : Map[MProperty, APropdef] */;
4578 val* var166 /* : MMethodDef */;
4579 val* var167 /* : Location */;
4580 val* var_mwritepropdef /* var mwritepropdef: MMethodDef */;
4581 val* var168 /* : HashMap[MPropDef, APropdef] */;
4582 val* var169 /* : nullable TId */;
4583 val* var_nid2 /* var nid2: TId */;
4584 val* var170 /* : MAttribute */;
4585 static val* varonce171;
4586 val* var172 /* : String */;
4587 char* var173 /* : NativeString */;
4588 long var174 /* : Int */;
4589 val* var175 /* : String */;
4590 val* var176 /* : String */;
4591 val* var177 /* : MVisibility */;
4592 val* var_mprop178 /* var mprop: MAttribute */;
4593 val* var179 /* : MAttributeDef */;
4594 val* var180 /* : Location */;
4595 val* var_mpropdef181 /* var mpropdef: MAttributeDef */;
4596 short int var182 /* : Bool */;
4597 int cltype183;
4598 int idtype184;
4599 const struct type* type_struct185;
4600 const char* var_class_name186;
4601 val* var187 /* : HashMap[MPropDef, APropdef] */;
4602 val* var_readname188 /* var readname: String */;
4603 val* var189 /* : nullable MProperty */;
4604 short int var190 /* : Bool */;
4605 int cltype191;
4606 int idtype192;
4607 const char* var_class_name193;
4608 val* var_mreadprop194 /* var mreadprop: nullable MMethod */;
4609 val* var195 /* : null */;
4610 short int var196 /* : Bool */;
4611 val* var197 /* : AVisibility */;
4612 val* var198 /* : MVisibility */;
4613 val* var_mvisibility199 /* var mvisibility: MVisibility */;
4614 val* var200 /* : MMethod */;
4615 val* var201 /* : nullable TKwredef */;
4616 short int var202 /* : Bool */;
4617 short int var203 /* : Bool */;
4618 short int var204 /* : Bool */;
4619 val* var205 /* : nullable TKwredef */;
4620 short int var206 /* : Bool */;
4621 short int var207 /* : Bool */;
4622 short int var208 /* : Bool */;
4623 val* var209 /* : AVisibility */;
4624 val* var210 /* : Map[MProperty, APropdef] */;
4625 val* var211 /* : MMethodDef */;
4626 val* var212 /* : Location */;
4627 val* var_mreadpropdef213 /* var mreadpropdef: MMethodDef */;
4628 val* var214 /* : HashMap[MPropDef, APropdef] */;
4629 static val* varonce215;
4630 val* var216 /* : String */;
4631 char* var217 /* : NativeString */;
4632 long var218 /* : Int */;
4633 val* var219 /* : String */;
4634 val* var220 /* : String */;
4635 val* var_writename221 /* var writename: String */;
4636 val* var222 /* : nullable AAble */;
4637 val* var_nwritable223 /* var nwritable: nullable AAble */;
4638 val* var224 /* : nullable MProperty */;
4639 short int var225 /* : Bool */;
4640 int cltype226;
4641 int idtype227;
4642 const char* var_class_name228;
4643 val* var_mwriteprop229 /* var mwriteprop: nullable MMethod */;
4644 val* var230 /* : null */;
4645 val* var_nwkwredef /* var nwkwredef: nullable Token */;
4646 val* var231 /* : null */;
4647 short int var232 /* : Bool */;
4648 val* var233 /* : nullable TKwredef */;
4649 val* var234 /* : null */;
4650 short int var235 /* : Bool */;
4651 val* var236 /* : null */;
4652 short int var237 /* : Bool */;
4653 val* var238 /* : nullable AVisibility */;
4654 val* var239 /* : MVisibility */;
4655 val* var_mvisibility240 /* var mvisibility: nullable Object */;
4656 val* var241 /* : MVisibility */;
4657 val* var242 /* : MMethod */;
4658 short int var243 /* : Bool */;
4659 short int var244 /* : Bool */;
4660 short int var245 /* : Bool */;
4661 short int var246 /* : Bool */;
4662 short int var247 /* : Bool */;
4663 short int var248 /* : Bool */;
4664 val* var249 /* : null */;
4665 short int var250 /* : Bool */;
4666 val* var251 /* : nullable AVisibility */;
4667 val* var252 /* : Map[MProperty, APropdef] */;
4668 val* var253 /* : MMethodDef */;
4669 val* var254 /* : Location */;
4670 val* var_mwritepropdef255 /* var mwritepropdef: MMethodDef */;
4671 val* var256 /* : HashMap[MPropDef, APropdef] */;
4672 var_modelbuilder = p0;
4673 var_nclassdef = p1;
4674 var = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
4675 if (var == NULL) {
4676 fprintf(stderr, "Runtime error: %s", "Cast failed");
4677 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 561);
4678 show_backtrace(1);
4679 }
4680 var_mclassdef = var;
4681 var1 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
4682 var_mclass = var1;
4683 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on <self:AAttrPropdef>*/;
4684 var3 = NULL;
4685 if (var2 == NULL) {
4686 var4 = 0; /* is null */
4687 } else {
4688 var4 = 1; /* arg is null and recv is not */
4689 }
4690 if (var4){
4691 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on <self:AAttrPropdef>*/;
4692 if (var5 == NULL) {
4693 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4694 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 566);
4695 show_backtrace(1);
4696 } else {
4697 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_parser_nodes__Token__text]))(var5) /* text on <var5:nullable TAttrid>*/;
4698 }
4699 var_name = var6;
4700 } else {
4701 var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on <self:AAttrPropdef>*/;
4702 if (var7 == NULL) {
4703 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4704 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 568);
4705 show_backtrace(1);
4706 } else {
4707 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_parser_nodes__Token__text]))(var7) /* text on <var7:nullable TId>*/;
4708 }
4709 var_name = var8;
4710 }
4711 var10 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__kind]))(var_mclass) /* kind on <var_mclass:MClass>*/;
4712 var11 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__interface_kind]))(self) /* interface_kind on <self:AAttrPropdef>*/;
4713 var12 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Object___61d_61d]))(var10, var11) /* == on <var10:MClassKind>*/;
4714 var_ = var12;
4715 if (var12){
4716 var9 = var_;
4717 } else {
4718 var13 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on <var_mclassdef:MClassDef>*/;
4719 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__kind]))(var13) /* kind on <var13:MClass>*/;
4720 var15 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__enum_kind]))(self) /* enum_kind on <self:AAttrPropdef>*/;
4721 var16 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var15) /* == on <var14:MClassKind>*/;
4722 var9 = var16;
4723 }
4724 if (var9){
4725 if (varonce) {
4726 var17 = varonce;
4727 } else {
4728 var18 = "Error: Attempt to define attribute ";
4729 var19 = 35;
4730 var20 = string__NativeString__to_s_with_length(var18, var19);
4731 var17 = var20;
4732 varonce = var17;
4733 }
4734 if (varonce21) {
4735 var22 = varonce21;
4736 } else {
4737 var23 = " in the interface ";
4738 var24 = 18;
4739 var25 = string__NativeString__to_s_with_length(var23, var24);
4740 var22 = var25;
4741 varonce21 = var22;
4742 }
4743 if (varonce26) {
4744 var27 = varonce26;
4745 } else {
4746 var28 = ".";
4747 var29 = 1;
4748 var30 = string__NativeString__to_s_with_length(var28, var29);
4749 var27 = var30;
4750 varonce26 = var27;
4751 }
4752 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
4753 { /* var31 = array_instance Array[Object] */
4754 var32 = 5;
4755 var33 = NEW_array__NativeArray(var32, &type_array__NativeArraykernel__Object);
4756 ((struct instance_array__NativeArray*)var33)->values[0] = (val*) var17;
4757 ((struct instance_array__NativeArray*)var33)->values[1] = (val*) var_name;
4758 ((struct instance_array__NativeArray*)var33)->values[2] = (val*) var22;
4759 ((struct instance_array__NativeArray*)var33)->values[3] = (val*) var_mclass;
4760 ((struct instance_array__NativeArray*)var33)->values[4] = (val*) var27;
4761 ((void (*)(val*, val*, long))(var31->class->vft[COLOR_array__Array__with_native]))(var31, var33, var32) /* with_native on <var31:Array[Object]>*/;
4762 }
4763 var34 = ((val* (*)(val*))(var31->class->vft[COLOR_string__Object__to_s]))(var31) /* to_s on <var31:Array[Object]>*/;
4764 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var34) /* error on <var_modelbuilder:ModelBuilder>*/;
4765 } else {
4766 var35 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__kind]))(var_mclass) /* kind on <var_mclass:MClass>*/;
4767 var36 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__enum_kind]))(self) /* enum_kind on <self:AAttrPropdef>*/;
4768 var37 = ((short int (*)(val*, val*))(var35->class->vft[COLOR_kernel__Object___61d_61d]))(var35, var36) /* == on <var35:MClassKind>*/;
4769 if (var37){
4770 if (varonce38) {
4771 var39 = varonce38;
4772 } else {
4773 var40 = "Error: Attempt to define attribute ";
4774 var41 = 35;
4775 var42 = string__NativeString__to_s_with_length(var40, var41);
4776 var39 = var42;
4777 varonce38 = var39;
4778 }
4779 if (varonce43) {
4780 var44 = varonce43;
4781 } else {
4782 var45 = " in the enum class ";
4783 var46 = 19;
4784 var47 = string__NativeString__to_s_with_length(var45, var46);
4785 var44 = var47;
4786 varonce43 = var44;
4787 }
4788 if (varonce48) {
4789 var49 = varonce48;
4790 } else {
4791 var50 = ".";
4792 var51 = 1;
4793 var52 = string__NativeString__to_s_with_length(var50, var51);
4794 var49 = var52;
4795 varonce48 = var49;
4796 }
4797 var53 = NEW_array__Array(&type_array__Arraykernel__Object);
4798 { /* var53 = array_instance Array[Object] */
4799 var54 = 5;
4800 var55 = NEW_array__NativeArray(var54, &type_array__NativeArraykernel__Object);
4801 ((struct instance_array__NativeArray*)var55)->values[0] = (val*) var39;
4802 ((struct instance_array__NativeArray*)var55)->values[1] = (val*) var_name;
4803 ((struct instance_array__NativeArray*)var55)->values[2] = (val*) var44;
4804 ((struct instance_array__NativeArray*)var55)->values[3] = (val*) var_mclass;
4805 ((struct instance_array__NativeArray*)var55)->values[4] = (val*) var49;
4806 ((void (*)(val*, val*, long))(var53->class->vft[COLOR_array__Array__with_native]))(var53, var55, var54) /* with_native on <var53:Array[Object]>*/;
4807 }
4808 var56 = ((val* (*)(val*))(var53->class->vft[COLOR_string__Object__to_s]))(var53) /* to_s on <var53:Array[Object]>*/;
4809 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var56) /* error on <var_modelbuilder:ModelBuilder>*/;
4810 } else {
4811 var57 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__kind]))(var_mclass) /* kind on <var_mclass:MClass>*/;
4812 var58 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:AAttrPropdef>*/;
4813 var59 = ((short int (*)(val*, val*))(var57->class->vft[COLOR_kernel__Object___61d_61d]))(var57, var58) /* == on <var57:MClassKind>*/;
4814 if (var59){
4815 if (varonce60) {
4816 var61 = varonce60;
4817 } else {
4818 var62 = "Error: Attempt to define attribute ";
4819 var63 = 35;
4820 var64 = string__NativeString__to_s_with_length(var62, var63);
4821 var61 = var64;
4822 varonce60 = var61;
4823 }
4824 if (varonce65) {
4825 var66 = varonce65;
4826 } else {
4827 var67 = " in the extern class ";
4828 var68 = 21;
4829 var69 = string__NativeString__to_s_with_length(var67, var68);
4830 var66 = var69;
4831 varonce65 = var66;
4832 }
4833 if (varonce70) {
4834 var71 = varonce70;
4835 } else {
4836 var72 = ".";
4837 var73 = 1;
4838 var74 = string__NativeString__to_s_with_length(var72, var73);
4839 var71 = var74;
4840 varonce70 = var71;
4841 }
4842 var75 = NEW_array__Array(&type_array__Arraykernel__Object);
4843 { /* var75 = array_instance Array[Object] */
4844 var76 = 5;
4845 var77 = NEW_array__NativeArray(var76, &type_array__NativeArraykernel__Object);
4846 ((struct instance_array__NativeArray*)var77)->values[0] = (val*) var61;
4847 ((struct instance_array__NativeArray*)var77)->values[1] = (val*) var_name;
4848 ((struct instance_array__NativeArray*)var77)->values[2] = (val*) var66;
4849 ((struct instance_array__NativeArray*)var77)->values[3] = (val*) var_mclass;
4850 ((struct instance_array__NativeArray*)var77)->values[4] = (val*) var71;
4851 ((void (*)(val*, val*, long))(var75->class->vft[COLOR_array__Array__with_native]))(var75, var77, var76) /* with_native on <var75:Array[Object]>*/;
4852 }
4853 var78 = ((val* (*)(val*))(var75->class->vft[COLOR_string__Object__to_s]))(var75) /* to_s on <var75:Array[Object]>*/;
4854 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var78) /* error on <var_modelbuilder:ModelBuilder>*/;
4855 } else {
4856 }
4857 }
4858 }
4859 var79 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on <self:AAttrPropdef>*/;
4860 var_nid = var79;
4861 var80 = NULL;
4862 if (var_nid == NULL) {
4863 var81 = 0; /* is null */
4864 } else {
4865 var81 = 1; /* arg is null and recv is not */
4866 }
4867 if (var81){
4868 var82 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid, var_mclassdef, var_name) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
4869 var_mprop = var82;
4870 var83 = NULL;
4871 if (var_mprop == NULL) {
4872 var84 = 1; /* is null */
4873 } else {
4874 var84 = 0; /* arg is null but recv is not */
4875 }
4876 if (var84){
4877 var85 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on <self:AAttrPropdef>*/;
4878 var86 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var85) /* new_property_visibility on <self:AAttrPropdef>*/;
4879 var_mvisibility = var86;
4880 var87 = NEW_model__MAttribute(&type_model__MAttribute);
4881 ((void (*)(val*, val*, val*, val*))(var87->class->vft[COLOR_model__MAttribute__init]))(var87, var_mclassdef, var_name, var_mvisibility) /* init on <var87:MAttribute>*/;
4882 var_mprop = var87;
4883 var88 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on <self:AAttrPropdef>*/;
4884 var89 = 0;
4885 var90 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var88, var89, var_mprop) /* check_redef_keyword on <self:AAttrPropdef>*/;
4886 var91 = !var90;
4887 if (var91){
4888 goto RET_LABEL;
4889 } else {
4890 }
4891 } else {
4892 /* <var_mprop:nullable MProperty(MProperty)> isa MAttribute */
4893 cltype = type_model__MAttribute.color;
4894 idtype = type_model__MAttribute.id;
4895 if(cltype >= var_mprop->type->table_size) {
4896 var92 = 0;
4897 } else {
4898 var92 = var_mprop->type->type_table[cltype] == idtype;
4899 }
4900 if (!var92) {
4901 fprintf(stderr, "Runtime error: %s", "Assert failed");
4902 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 588);
4903 show_backtrace(1);
4904 }
4905 var93 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on <self:AAttrPropdef>*/;
4906 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var93, var_mprop) /* check_redef_property_visibility on <self:AAttrPropdef>*/;
4907 var94 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on <self:AAttrPropdef>*/;
4908 var95 = 1;
4909 var96 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var94, var95, var_mprop) /* check_redef_keyword on <self:AAttrPropdef>*/;
4910 var97 = !var96;
4911 if (var97){
4912 goto RET_LABEL;
4913 } else {
4914 }
4915 }
4916 var98 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
4917 ((void (*)(val*, val*, val*))(var98->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var98, var_mprop, self) /* []= on <var98:Map[MProperty, APropdef]>*/;
4918 var99 = NEW_model__MAttributeDef(&type_model__MAttributeDef);
4919 var100 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AAttrPropdef>*/;
4920 ((void (*)(val*, val*, val*, val*))(var99->class->vft[COLOR_model__MAttributeDef__init]))(var99, var_mclassdef, var_mprop, var100) /* init on <var99:MAttributeDef>*/;
4921 var_mpropdef = var99;
4922 /* <var_mpropdef:MAttributeDef> isa nullable MPROPDEF */
4923 type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
4924 cltype102 = type_struct->color;
4925 idtype103 = type_struct->id;
4926 if(cltype102 >= var_mpropdef->type->table_size) {
4927 var101 = 0;
4928 } else {
4929 var101 = var_mpropdef->type->type_table[cltype102] == idtype103;
4930 }
4931 if (!var101) {
4932 var_class_name = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
4933 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name);
4934 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 595);
4935 show_backtrace(1);
4936 }
4937 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on <self:AAttrPropdef>*/;
4938 var104 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
4939 ((void (*)(val*, val*, val*))(var104->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var104, var_mpropdef, self) /* []= on <var104:HashMap[MPropDef, APropdef]>*/;
4940 var105 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_readable]))(self) /* n_readable on <self:AAttrPropdef>*/;
4941 var_nreadable = var105;
4942 var106 = NULL;
4943 if (var_nreadable == NULL) {
4944 var107 = 0; /* is null */
4945 } else {
4946 var107 = 1; /* arg is null and recv is not */
4947 }
4948 if (var107){
4949 var108 = 1;
4950 var109 = ((val* (*)(val*, long))(var_name->class->vft[COLOR_string__AbstractString__substring_from]))(var_name, var108) /* substring_from on <var_name:String>*/;
4951 var_readname = var109;
4952 var110 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid, var_mclassdef, var_readname) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
4953 /* <var110:nullable MProperty> isa nullable MMethod */
4954 cltype112 = type_nullable_model__MMethod.color;
4955 idtype113 = type_nullable_model__MMethod.id;
4956 if(var110 == NULL) {
4957 var111 = 1;
4958 } else {
4959 if(cltype112 >= var110->type->table_size) {
4960 var111 = 0;
4961 } else {
4962 var111 = var110->type->type_table[cltype112] == idtype113;
4963 }
4964 }
4965 if (!var111) {
4966 var_class_name114 = var110 == NULL ? "null" : var110->type->name;
4967 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name114);
4968 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 601);
4969 show_backtrace(1);
4970 }
4971 var_mreadprop = var110;
4972 var115 = NULL;
4973 if (var_mreadprop == NULL) {
4974 var116 = 1; /* is null */
4975 } else {
4976 var116 = 0; /* arg is null but recv is not */
4977 }
4978 if (var116){
4979 var117 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nreadable) /* n_visibility on <var_nreadable:nullable AAble(AAble)>*/;
4980 var118 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var117) /* new_property_visibility on <self:AAttrPropdef>*/;
4981 var_mvisibility119 = var118;
4982 var120 = NEW_model__MMethod(&type_model__MMethod);
4983 ((void (*)(val*, val*, val*, val*))(var120->class->vft[COLOR_model__MMethod__init]))(var120, var_mclassdef, var_readname, var_mvisibility119) /* init on <var120:MMethod>*/;
4984 var_mreadprop = var120;
4985 var121 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nreadable) /* n_kwredef on <var_nreadable:nullable AAble(AAble)>*/;
4986 var122 = 0;
4987 var123 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var121, var122, var_mreadprop) /* check_redef_keyword on <self:AAttrPropdef>*/;
4988 var124 = !var123;
4989 if (var124){
4990 goto RET_LABEL;
4991 } else {
4992 }
4993 } else {
4994 var125 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nreadable) /* n_kwredef on <var_nreadable:nullable AAble(AAble)>*/;
4995 var126 = 1;
4996 var127 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var125, var126, var_mreadprop) /* check_redef_keyword on <self:AAttrPropdef>*/;
4997 var128 = !var127;
4998 if (var128){
4999 goto RET_LABEL;
5000 } else {
5001 }
5002 var129 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nreadable) /* n_visibility on <var_nreadable:nullable AAble(AAble)>*/;
5003 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var129, var_mreadprop) /* check_redef_property_visibility on <self:AAttrPropdef>*/;
5004 }
5005 var130 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
5006 ((void (*)(val*, val*, val*))(var130->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var130, var_mreadprop, self) /* []= on <var130:Map[MProperty, APropdef]>*/;
5007 var131 = NEW_model__MMethodDef(&type_model__MMethodDef);
5008 var132 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AAttrPropdef>*/;
5009 ((void (*)(val*, val*, val*, val*))(var131->class->vft[COLOR_model__MMethodDef__init]))(var131, var_mclassdef, var_mreadprop, var132) /* init on <var131:MMethodDef>*/;
5010 var_mreadpropdef = var131;
5011 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef_61d]))(self, var_mreadpropdef) /* mreadpropdef= on <self:AAttrPropdef>*/;
5012 var133 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
5013 ((void (*)(val*, val*, val*))(var133->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var133, var_mreadpropdef, self) /* []= on <var133:HashMap[MPropDef, APropdef]>*/;
5014 } else {
5015 }
5016 var134 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_writable]))(self) /* n_writable on <self:AAttrPropdef>*/;
5017 var_nwritable = var134;
5018 var135 = NULL;
5019 if (var_nwritable == NULL) {
5020 var136 = 0; /* is null */
5021 } else {
5022 var136 = 1; /* arg is null and recv is not */
5023 }
5024 if (var136){
5025 var137 = 1;
5026 var138 = ((val* (*)(val*, long))(var_name->class->vft[COLOR_string__AbstractString__substring_from]))(var_name, var137) /* substring_from on <var_name:String>*/;
5027 if (varonce139) {
5028 var140 = varonce139;
5029 } else {
5030 var141 = "=";
5031 var142 = 1;
5032 var143 = string__NativeString__to_s_with_length(var141, var142);
5033 var140 = var143;
5034 varonce139 = var140;
5035 }
5036 var144 = ((val* (*)(val*, val*))(var138->class->vft[COLOR_string__String___43d]))(var138, var140) /* + on <var138:String>*/;
5037 var_writename = var144;
5038 var145 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid, var_mclassdef, var_writename) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
5039 /* <var145:nullable MProperty> isa nullable MMethod */
5040 cltype147 = type_nullable_model__MMethod.color;
5041 idtype148 = type_nullable_model__MMethod.id;
5042 if(var145 == NULL) {
5043 var146 = 1;
5044 } else {
5045 if(cltype147 >= var145->type->table_size) {
5046 var146 = 0;
5047 } else {
5048 var146 = var145->type->type_table[cltype147] == idtype148;
5049 }
5050 }
5051 if (!var146) {
5052 var_class_name149 = var145 == NULL ? "null" : var145->type->name;
5053 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name149);
5054 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 620);
5055 show_backtrace(1);
5056 }
5057 var_mwriteprop = var145;
5058 var150 = NULL;
5059 if (var_mwriteprop == NULL) {
5060 var151 = 1; /* is null */
5061 } else {
5062 var151 = 0; /* arg is null but recv is not */
5063 }
5064 if (var151){
5065 var152 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable) /* n_visibility on <var_nwritable:nullable AAble(AAble)>*/;
5066 var153 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var152) /* new_property_visibility on <self:AAttrPropdef>*/;
5067 var_mvisibility154 = var153;
5068 var155 = NEW_model__MMethod(&type_model__MMethod);
5069 ((void (*)(val*, val*, val*, val*))(var155->class->vft[COLOR_model__MMethod__init]))(var155, var_mclassdef, var_writename, var_mvisibility154) /* init on <var155:MMethod>*/;
5070 var_mwriteprop = var155;
5071 var156 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable) /* n_kwredef on <var_nwritable:nullable AAble(AAble)>*/;
5072 var157 = 0;
5073 var158 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var156, var157, var_mwriteprop) /* check_redef_keyword on <self:AAttrPropdef>*/;
5074 var159 = !var158;
5075 if (var159){
5076 goto RET_LABEL;
5077 } else {
5078 }
5079 } else {
5080 var160 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable) /* n_kwredef on <var_nwritable:nullable AAble(AAble)>*/;
5081 var161 = 1;
5082 var162 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var160, var161, var_mwriteprop) /* check_redef_keyword on <self:AAttrPropdef>*/;
5083 var163 = !var162;
5084 if (var163){
5085 goto RET_LABEL;
5086 } else {
5087 }
5088 var164 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable) /* n_visibility on <var_nwritable:nullable AAble(AAble)>*/;
5089 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var164, var_mwriteprop) /* check_redef_property_visibility on <self:AAttrPropdef>*/;
5090 }
5091 var165 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
5092 ((void (*)(val*, val*, val*))(var165->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var165, var_mwriteprop, self) /* []= on <var165:Map[MProperty, APropdef]>*/;
5093 var166 = NEW_model__MMethodDef(&type_model__MMethodDef);
5094 var167 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AAttrPropdef>*/;
5095 ((void (*)(val*, val*, val*, val*))(var166->class->vft[COLOR_model__MMethodDef__init]))(var166, var_mclassdef, var_mwriteprop, var167) /* init on <var166:MMethodDef>*/;
5096 var_mwritepropdef = var166;
5097 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef_61d]))(self, var_mwritepropdef) /* mwritepropdef= on <self:AAttrPropdef>*/;
5098 var168 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
5099 ((void (*)(val*, val*, val*))(var168->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var168, var_mwritepropdef, self) /* []= on <var168:HashMap[MPropDef, APropdef]>*/;
5100 } else {
5101 }
5102 } else {
5103 var169 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on <self:AAttrPropdef>*/;
5104 if (var169 == NULL) {
5105 fprintf(stderr, "Runtime error: %s", "Cast failed");
5106 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 637);
5107 show_backtrace(1);
5108 }
5109 var_nid2 = var169;
5110 var170 = NEW_model__MAttribute(&type_model__MAttribute);
5111 if (varonce171) {
5112 var172 = varonce171;
5113 } else {
5114 var173 = "@";
5115 var174 = 1;
5116 var175 = string__NativeString__to_s_with_length(var173, var174);
5117 var172 = var175;
5118 varonce171 = var172;
5119 }
5120 var176 = ((val* (*)(val*, val*))(var172->class->vft[COLOR_string__String___43d]))(var172, var_name) /* + on <var172:String>*/;
5121 var177 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on <self:AAttrPropdef>*/;
5122 ((void (*)(val*, val*, val*, val*))(var170->class->vft[COLOR_model__MAttribute__init]))(var170, var_mclassdef, var176, var177) /* init on <var170:MAttribute>*/;
5123 var_mprop178 = var170;
5124 var179 = NEW_model__MAttributeDef(&type_model__MAttributeDef);
5125 var180 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AAttrPropdef>*/;
5126 ((void (*)(val*, val*, val*, val*))(var179->class->vft[COLOR_model__MAttributeDef__init]))(var179, var_mclassdef, var_mprop178, var180) /* init on <var179:MAttributeDef>*/;
5127 var_mpropdef181 = var179;
5128 /* <var_mpropdef181:MAttributeDef> isa nullable MPROPDEF */
5129 type_struct185 = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
5130 cltype183 = type_struct185->color;
5131 idtype184 = type_struct185->id;
5132 if(cltype183 >= var_mpropdef181->type->table_size) {
5133 var182 = 0;
5134 } else {
5135 var182 = var_mpropdef181->type->type_table[cltype183] == idtype184;
5136 }
5137 if (!var182) {
5138 var_class_name186 = var_mpropdef181 == NULL ? "null" : var_mpropdef181->type->name;
5139 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name186);
5140 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 640);
5141 show_backtrace(1);
5142 }
5143 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef181) /* mpropdef= on <self:AAttrPropdef>*/;
5144 var187 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
5145 ((void (*)(val*, val*, val*))(var187->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var187, var_mpropdef181, self) /* []= on <var187:HashMap[MPropDef, APropdef]>*/;
5146 var_readname188 = var_name;
5147 var189 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid2, var_mclassdef, var_readname188) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
5148 /* <var189:nullable MProperty> isa nullable MMethod */
5149 cltype191 = type_nullable_model__MMethod.color;
5150 idtype192 = type_nullable_model__MMethod.id;
5151 if(var189 == NULL) {
5152 var190 = 1;
5153 } else {
5154 if(cltype191 >= var189->type->table_size) {
5155 var190 = 0;
5156 } else {
5157 var190 = var189->type->type_table[cltype191] == idtype192;
5158 }
5159 }
5160 if (!var190) {
5161 var_class_name193 = var189 == NULL ? "null" : var189->type->name;
5162 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name193);
5163 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 644);
5164 show_backtrace(1);
5165 }
5166 var_mreadprop194 = var189;
5167 var195 = NULL;
5168 if (var_mreadprop194 == NULL) {
5169 var196 = 1; /* is null */
5170 } else {
5171 var196 = 0; /* arg is null but recv is not */
5172 }
5173 if (var196){
5174 var197 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on <self:AAttrPropdef>*/;
5175 var198 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var197) /* new_property_visibility on <self:AAttrPropdef>*/;
5176 var_mvisibility199 = var198;
5177 var200 = NEW_model__MMethod(&type_model__MMethod);
5178 ((void (*)(val*, val*, val*, val*))(var200->class->vft[COLOR_model__MMethod__init]))(var200, var_mclassdef, var_readname188, var_mvisibility199) /* init on <var200:MMethod>*/;
5179 var_mreadprop194 = var200;
5180 var201 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on <self:AAttrPropdef>*/;
5181 var202 = 0;
5182 var203 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var201, var202, var_mreadprop194) /* check_redef_keyword on <self:AAttrPropdef>*/;
5183 var204 = !var203;
5184 if (var204){
5185 goto RET_LABEL;
5186 } else {
5187 }
5188 } else {
5189 var205 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on <self:AAttrPropdef>*/;
5190 var206 = 1;
5191 var207 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var205, var206, var_mreadprop194) /* check_redef_keyword on <self:AAttrPropdef>*/;
5192 var208 = !var207;
5193 if (var208){
5194 goto RET_LABEL;
5195 } else {
5196 }
5197 var209 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on <self:AAttrPropdef>*/;
5198 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var209, var_mreadprop194) /* check_redef_property_visibility on <self:AAttrPropdef>*/;
5199 }
5200 var210 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
5201 ((void (*)(val*, val*, val*))(var210->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var210, var_mreadprop194, self) /* []= on <var210:Map[MProperty, APropdef]>*/;
5202 var211 = NEW_model__MMethodDef(&type_model__MMethodDef);
5203 var212 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AAttrPropdef>*/;
5204 ((void (*)(val*, val*, val*, val*))(var211->class->vft[COLOR_model__MMethodDef__init]))(var211, var_mclassdef, var_mreadprop194, var212) /* init on <var211:MMethodDef>*/;
5205 var_mreadpropdef213 = var211;
5206 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef_61d]))(self, var_mreadpropdef213) /* mreadpropdef= on <self:AAttrPropdef>*/;
5207 var214 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
5208 ((void (*)(val*, val*, val*))(var214->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var214, var_mreadpropdef213, self) /* []= on <var214:HashMap[MPropDef, APropdef]>*/;
5209 if (varonce215) {
5210 var216 = varonce215;
5211 } else {
5212 var217 = "=";
5213 var218 = 1;
5214 var219 = string__NativeString__to_s_with_length(var217, var218);
5215 var216 = var219;
5216 varonce215 = var216;
5217 }
5218 var220 = ((val* (*)(val*, val*))(var_name->class->vft[COLOR_string__String___43d]))(var_name, var216) /* + on <var_name:String>*/;
5219 var_writename221 = var220;
5220 var222 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_writable]))(self) /* n_writable on <self:AAttrPropdef>*/;
5221 var_nwritable223 = var222;
5222 var224 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid2, var_mclassdef, var_writename221) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
5223 /* <var224:nullable MProperty> isa nullable MMethod */
5224 cltype226 = type_nullable_model__MMethod.color;
5225 idtype227 = type_nullable_model__MMethod.id;
5226 if(var224 == NULL) {
5227 var225 = 1;
5228 } else {
5229 if(cltype226 >= var224->type->table_size) {
5230 var225 = 0;
5231 } else {
5232 var225 = var224->type->type_table[cltype226] == idtype227;
5233 }
5234 }
5235 if (!var225) {
5236 var_class_name228 = var224 == NULL ? "null" : var224->type->name;
5237 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name228);
5238 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 661);
5239 show_backtrace(1);
5240 }
5241 var_mwriteprop229 = var224;
5242 var230 = NULL;
5243 var_nwkwredef = var230;
5244 var231 = NULL;
5245 if (var_nwritable223 == NULL) {
5246 var232 = 0; /* is null */
5247 } else {
5248 var232 = 1; /* arg is null and recv is not */
5249 }
5250 if (var232){
5251 var233 = ((val* (*)(val*))(var_nwritable223->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable223) /* n_kwredef on <var_nwritable223:nullable AAble(AAble)>*/;
5252 var_nwkwredef = var233;
5253 } else {
5254 }
5255 var234 = NULL;
5256 if (var_mwriteprop229 == NULL) {
5257 var235 = 1; /* is null */
5258 } else {
5259 var235 = 0; /* arg is null but recv is not */
5260 }
5261 if (var235){
5262 var236 = NULL;
5263 if (var_nwritable223 == NULL) {
5264 var237 = 0; /* is null */
5265 } else {
5266 var237 = 1; /* arg is null and recv is not */
5267 }
5268 if (var237){
5269 var238 = ((val* (*)(val*))(var_nwritable223->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable223) /* n_visibility on <var_nwritable223:nullable AAble(AAble)>*/;
5270 var239 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var238) /* new_property_visibility on <self:AAttrPropdef>*/;
5271 var_mvisibility240 = var239;
5272 } else {
5273 var241 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:AAttrPropdef>*/;
5274 var_mvisibility240 = var241;
5275 }
5276 var242 = NEW_model__MMethod(&type_model__MMethod);
5277 ((void (*)(val*, val*, val*, val*))(var242->class->vft[COLOR_model__MMethod__init]))(var242, var_mclassdef, var_writename221, var_mvisibility240) /* init on <var242:MMethod>*/;
5278 var_mwriteprop229 = var242;
5279 var243 = 0;
5280 var244 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var_nwkwredef, var243, var_mwriteprop229) /* check_redef_keyword on <self:AAttrPropdef>*/;
5281 var245 = !var244;
5282 if (var245){
5283 goto RET_LABEL;
5284 } else {
5285 }
5286 } else {
5287 var246 = 1;
5288 var247 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var_nwkwredef, var246, var_mwriteprop229) /* check_redef_keyword on <self:AAttrPropdef>*/;
5289 var248 = !var247;
5290 if (var248){
5291 goto RET_LABEL;
5292 } else {
5293 }
5294 var249 = NULL;
5295 if (var_nwritable223 == NULL) {
5296 var250 = 0; /* is null */
5297 } else {
5298 var250 = 1; /* arg is null and recv is not */
5299 }
5300 if (var250){
5301 var251 = ((val* (*)(val*))(var_nwritable223->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable223) /* n_visibility on <var_nwritable223:nullable AAble(AAble)>*/;
5302 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var251, var_mwriteprop229) /* check_redef_property_visibility on <self:AAttrPropdef>*/;
5303 } else {
5304 }
5305 }
5306 var252 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
5307 ((void (*)(val*, val*, val*))(var252->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var252, var_mwriteprop229, self) /* []= on <var252:Map[MProperty, APropdef]>*/;
5308 var253 = NEW_model__MMethodDef(&type_model__MMethodDef);
5309 var254 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AAttrPropdef>*/;
5310 ((void (*)(val*, val*, val*, val*))(var253->class->vft[COLOR_model__MMethodDef__init]))(var253, var_mclassdef, var_mwriteprop229, var254) /* init on <var253:MMethodDef>*/;
5311 var_mwritepropdef255 = var253;
5312 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef_61d]))(self, var_mwritepropdef255) /* mwritepropdef= on <self:AAttrPropdef>*/;
5313 var256 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
5314 ((void (*)(val*, val*, val*))(var256->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var256, var_mwritepropdef255, self) /* []= on <var256:HashMap[MPropDef, APropdef]>*/;
5315 }
5316 RET_LABEL:;
5317 }
5318 /* method modelize_property#AAttrPropdef#build_property for (self: Object, ModelBuilder, AClassdef) */
5319 void VIRTUAL_modelize_property__AAttrPropdef__build_property(val* self, val* p0, val* p1) {
5320 modelize_property__AAttrPropdef__build_property(self, p0, p1);
5321 RET_LABEL:;
5322 }
5323 /* method modelize_property#AAttrPropdef#build_signature for (self: AAttrPropdef, ModelBuilder, AClassdef) */
5324 void modelize_property__AAttrPropdef__build_signature(val* self, val* p0, val* p1) {
5325 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
5326 val* var_nclassdef /* var nclassdef: AClassdef */;
5327 val* var /* : nullable MPropDef */;
5328 val* var_mpropdef /* var mpropdef: nullable MAttributeDef */;
5329 val* var1 /* : null */;
5330 short int var2 /* : Bool */;
5331 val* var3 /* : MClassDef */;
5332 val* var4 /* : MModule */;
5333 val* var_mmodule /* var mmodule: MModule */;
5334 val* var5 /* : null */;
5335 val* var_mtype /* var mtype: nullable MType */;
5336 val* var6 /* : nullable AType */;
5337 val* var_ntype /* var ntype: nullable AType */;
5338 val* var7 /* : null */;
5339 short int var8 /* : Bool */;
5340 val* var9 /* : nullable MType */;
5341 val* var10 /* : null */;
5342 short int var11 /* : Bool */;
5343 val* var12 /* : nullable AExpr */;
5344 val* var_nexpr /* var nexpr: nullable AExpr */;
5345 val* var13 /* : null */;
5346 short int var14 /* : Bool */;
5347 val* var15 /* : null */;
5348 short int var16 /* : Bool */;
5349 short int var17 /* : Bool */;
5350 int cltype;
5351 int idtype;
5352 val* var18 /* : AType */;
5353 val* var19 /* : nullable MType */;
5354 short int var20 /* : Bool */;
5355 int cltype21;
5356 int idtype22;
5357 static val* varonce;
5358 val* var23 /* : String */;
5359 char* var24 /* : NativeString */;
5360 long var25 /* : Int */;
5361 val* var26 /* : String */;
5362 val* var27 /* : nullable MClass */;
5363 val* var_cla /* var cla: nullable MClass */;
5364 val* var28 /* : null */;
5365 short int var29 /* : Bool */;
5366 val* var30 /* : MClassType */;
5367 short int var31 /* : Bool */;
5368 int cltype32;
5369 int idtype33;
5370 static val* varonce34;
5371 val* var35 /* : String */;
5372 char* var36 /* : NativeString */;
5373 long var37 /* : Int */;
5374 val* var38 /* : String */;
5375 val* var39 /* : nullable MClass */;
5376 val* var_cla40 /* var cla: nullable MClass */;
5377 val* var41 /* : null */;
5378 short int var42 /* : Bool */;
5379 val* var43 /* : MClassType */;
5380 short int var44 /* : Bool */;
5381 int cltype45;
5382 int idtype46;
5383 static val* varonce47;
5384 val* var48 /* : String */;
5385 char* var49 /* : NativeString */;
5386 long var50 /* : Int */;
5387 val* var51 /* : String */;
5388 val* var52 /* : nullable MClass */;
5389 val* var_cla53 /* var cla: nullable MClass */;
5390 val* var54 /* : null */;
5391 short int var55 /* : Bool */;
5392 val* var56 /* : MClassType */;
5393 short int var57 /* : Bool */;
5394 int cltype58;
5395 int idtype59;
5396 static val* varonce60;
5397 val* var61 /* : String */;
5398 char* var62 /* : NativeString */;
5399 long var63 /* : Int */;
5400 val* var64 /* : String */;
5401 val* var65 /* : nullable MClass */;
5402 val* var_cla66 /* var cla: nullable MClass */;
5403 val* var67 /* : null */;
5404 short int var68 /* : Bool */;
5405 val* var69 /* : MClassType */;
5406 short int var70 /* : Bool */;
5407 int cltype71;
5408 int idtype72;
5409 static val* varonce73;
5410 val* var74 /* : String */;
5411 char* var75 /* : NativeString */;
5412 long var76 /* : Int */;
5413 val* var77 /* : String */;
5414 val* var78 /* : nullable MClass */;
5415 val* var_cla79 /* var cla: nullable MClass */;
5416 val* var80 /* : null */;
5417 short int var81 /* : Bool */;
5418 val* var82 /* : MClassType */;
5419 short int var83 /* : Bool */;
5420 int cltype84;
5421 int idtype85;
5422 static val* varonce86;
5423 val* var87 /* : String */;
5424 char* var88 /* : NativeString */;
5425 long var89 /* : Int */;
5426 val* var90 /* : String */;
5427 val* var91 /* : nullable MClass */;
5428 val* var_cla92 /* var cla: nullable MClass */;
5429 val* var93 /* : null */;
5430 short int var94 /* : Bool */;
5431 val* var95 /* : MClassType */;
5432 static val* varonce96;
5433 val* var97 /* : String */;
5434 char* var98 /* : NativeString */;
5435 long var99 /* : Int */;
5436 val* var100 /* : String */;
5437 static val* varonce101;
5438 val* var102 /* : String */;
5439 char* var103 /* : NativeString */;
5440 long var104 /* : Int */;
5441 val* var105 /* : String */;
5442 val* var106 /* : Array[Object] */;
5443 long var107 /* : Int */;
5444 val* var108 /* : NativeArray[Object] */;
5445 val* var109 /* : String */;
5446 static val* varonce110;
5447 val* var111 /* : String */;
5448 char* var112 /* : NativeString */;
5449 long var113 /* : Int */;
5450 val* var114 /* : String */;
5451 val* var115 /* : Array[Object] */;
5452 long var116 /* : Int */;
5453 val* var117 /* : NativeArray[Object] */;
5454 val* var118 /* : String */;
5455 val* var119 /* : null */;
5456 short int var120 /* : Bool */;
5457 short int var121 /* : Bool */;
5458 int cltype122;
5459 int idtype123;
5460 val* var124 /* : AType */;
5461 val* var125 /* : nullable MType */;
5462 val* var_xmtype /* var xmtype: nullable MType */;
5463 short int var126 /* : Bool */;
5464 short int var127 /* : Bool */;
5465 short int var_ /* var : Bool */;
5466 val* var128 /* : ToolContext */;
5467 val* var129 /* : OptionCount */;
5468 val* var130 /* : nullable Object */;
5469 long var131 /* : Int */;
5470 short int var132 /* : Bool */;
5471 short int var134 /* : Bool */;
5472 int cltype135;
5473 int idtype136;
5474 const char* var_class_name;
5475 long var137 /* : Int */;
5476 short int var138 /* : Bool */;
5477 static val* varonce139;
5478 val* var140 /* : String */;
5479 char* var141 /* : NativeString */;
5480 long var142 /* : Int */;
5481 val* var143 /* : String */;
5482 val* var144 /* : null */;
5483 short int var145 /* : Bool */;
5484 val* var146 /* : nullable MMethodDef */;
5485 val* var_mreadpropdef /* var mreadpropdef: nullable MMethodDef */;
5486 val* var147 /* : null */;
5487 short int var148 /* : Bool */;
5488 val* var149 /* : MSignature */;
5489 val* var150 /* : Array[MParameter] */;
5490 val* var_msignature /* var msignature: MSignature */;
5491 val* var151 /* : nullable MMethodDef */;
5492 val* var_msritepropdef /* var msritepropdef: nullable MMethodDef */;
5493 val* var152 /* : nullable MMethodDef */;
5494 val* var153 /* : null */;
5495 short int var154 /* : Bool */;
5496 val* var155 /* : nullable TAttrid */;
5497 val* var156 /* : null */;
5498 short int var157 /* : Bool */;
5499 val* var158 /* : nullable TAttrid */;
5500 val* var159 /* : String */;
5501 long var160 /* : Int */;
5502 val* var161 /* : String */;
5503 val* var_name /* var name: String */;
5504 val* var162 /* : nullable TId */;
5505 val* var163 /* : String */;
5506 val* var164 /* : MParameter */;
5507 short int var165 /* : Bool */;
5508 val* var_mparameter /* var mparameter: MParameter */;
5509 val* var166 /* : MSignature */;
5510 val* var167 /* : Array[MParameter] */;
5511 long var168 /* : Int */;
5512 val* var_169 /* var : Array[MParameter] */;
5513 val* var170 /* : null */;
5514 val* var_msignature171 /* var msignature: MSignature */;
5515 val* var172 /* : nullable MMethodDef */;
5516 var_modelbuilder = p0;
5517 var_nclassdef = p1;
5518 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5519 var_mpropdef = var;
5520 var1 = NULL;
5521 if (var_mpropdef == NULL) {
5522 var2 = 1; /* is null */
5523 } else {
5524 var2 = 0; /* arg is null but recv is not */
5525 }
5526 if (var2){
5527 goto RET_LABEL;
5528 } else {
5529 }
5530 var3 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:nullable MAttributeDef(MAttributeDef)>*/;
5531 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on <var3:MClassDef>*/;
5532 var_mmodule = var4;
5533 var5 = NULL;
5534 var_mtype = var5;
5535 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_type]))(self) /* n_type on <self:AAttrPropdef>*/;
5536 var_ntype = var6;
5537 var7 = NULL;
5538 if (var_ntype == NULL) {
5539 var8 = 0; /* is null */
5540 } else {
5541 var8 = 1; /* arg is null and recv is not */
5542 }
5543 if (var8){
5544 var9 = ((val* (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var_modelbuilder, var_nclassdef, var_ntype) /* resolve_mtype on <var_modelbuilder:ModelBuilder>*/;
5545 var_mtype = var9;
5546 var10 = NULL;
5547 if (var_mtype == NULL) {
5548 var11 = 1; /* is null */
5549 } else {
5550 var11 = 0; /* arg is null but recv is not */
5551 }
5552 if (var11){
5553 goto RET_LABEL;
5554 } else {
5555 }
5556 } else {
5557 }
5558 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(self) /* n_expr on <self:AAttrPropdef>*/;
5559 var_nexpr = var12;
5560 var13 = NULL;
5561 if (var_mtype == NULL) {
5562 var14 = 1; /* is null */
5563 } else {
5564 var14 = 0; /* arg is null but recv is not */
5565 }
5566 if (var14){
5567 var15 = NULL;
5568 if (var_nexpr == NULL) {
5569 var16 = 0; /* is null */
5570 } else {
5571 var16 = 1; /* arg is null and recv is not */
5572 }
5573 if (var16){
5574 /* <var_nexpr:nullable AExpr(AExpr)> isa ANewExpr */
5575 cltype = type_parser_nodes__ANewExpr.color;
5576 idtype = type_parser_nodes__ANewExpr.id;
5577 if(cltype >= var_nexpr->type->table_size) {
5578 var17 = 0;
5579 } else {
5580 var17 = var_nexpr->type->type_table[cltype] == idtype;
5581 }
5582 if (var17){
5583 var18 = ((val* (*)(val*))(var_nexpr->class->vft[COLOR_parser_nodes__ANewExpr__n_type]))(var_nexpr) /* n_type on <var_nexpr:nullable AExpr(ANewExpr)>*/;
5584 var19 = ((val* (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var_modelbuilder, var_nclassdef, var18) /* resolve_mtype on <var_modelbuilder:ModelBuilder>*/;
5585 var_mtype = var19;
5586 } else {
5587 /* <var_nexpr:nullable AExpr(AExpr)> isa AIntExpr */
5588 cltype21 = type_parser_nodes__AIntExpr.color;
5589 idtype22 = type_parser_nodes__AIntExpr.id;
5590 if(cltype21 >= var_nexpr->type->table_size) {
5591 var20 = 0;
5592 } else {
5593 var20 = var_nexpr->type->type_table[cltype21] == idtype22;
5594 }
5595 if (var20){
5596 if (varonce) {
5597 var23 = varonce;
5598 } else {
5599 var24 = "Int";
5600 var25 = 3;
5601 var26 = string__NativeString__to_s_with_length(var24, var25);
5602 var23 = var26;
5603 varonce = var23;
5604 }
5605 var27 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name]))(var_modelbuilder, var_nexpr, var_mmodule, var23) /* try_get_mclass_by_name on <var_modelbuilder:ModelBuilder>*/;
5606 var_cla = var27;
5607 var28 = NULL;
5608 if (var_cla == NULL) {
5609 var29 = 0; /* is null */
5610 } else {
5611 var29 = 1; /* arg is null and recv is not */
5612 }
5613 if (var29){
5614 var30 = ((val* (*)(val*))(var_cla->class->vft[COLOR_model__MClass__mclass_type]))(var_cla) /* mclass_type on <var_cla:nullable MClass(MClass)>*/;
5615 var_mtype = var30;
5616 } else {
5617 }
5618 } else {
5619 /* <var_nexpr:nullable AExpr(AExpr)> isa AFloatExpr */
5620 cltype32 = type_parser_nodes__AFloatExpr.color;
5621 idtype33 = type_parser_nodes__AFloatExpr.id;
5622 if(cltype32 >= var_nexpr->type->table_size) {
5623 var31 = 0;
5624 } else {
5625 var31 = var_nexpr->type->type_table[cltype32] == idtype33;
5626 }
5627 if (var31){
5628 if (varonce34) {
5629 var35 = varonce34;
5630 } else {
5631 var36 = "Float";
5632 var37 = 5;
5633 var38 = string__NativeString__to_s_with_length(var36, var37);
5634 var35 = var38;
5635 varonce34 = var35;
5636 }
5637 var39 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name]))(var_modelbuilder, var_nexpr, var_mmodule, var35) /* try_get_mclass_by_name on <var_modelbuilder:ModelBuilder>*/;
5638 var_cla40 = var39;
5639 var41 = NULL;
5640 if (var_cla40 == NULL) {
5641 var42 = 0; /* is null */
5642 } else {
5643 var42 = 1; /* arg is null and recv is not */
5644 }
5645 if (var42){
5646 var43 = ((val* (*)(val*))(var_cla40->class->vft[COLOR_model__MClass__mclass_type]))(var_cla40) /* mclass_type on <var_cla40:nullable MClass(MClass)>*/;
5647 var_mtype = var43;
5648 } else {
5649 }
5650 } else {
5651 /* <var_nexpr:nullable AExpr(AExpr)> isa ACharExpr */
5652 cltype45 = type_parser_nodes__ACharExpr.color;
5653 idtype46 = type_parser_nodes__ACharExpr.id;
5654 if(cltype45 >= var_nexpr->type->table_size) {
5655 var44 = 0;
5656 } else {
5657 var44 = var_nexpr->type->type_table[cltype45] == idtype46;
5658 }
5659 if (var44){
5660 if (varonce47) {
5661 var48 = varonce47;
5662 } else {
5663 var49 = "Char";
5664 var50 = 4;
5665 var51 = string__NativeString__to_s_with_length(var49, var50);
5666 var48 = var51;
5667 varonce47 = var48;
5668 }
5669 var52 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name]))(var_modelbuilder, var_nexpr, var_mmodule, var48) /* try_get_mclass_by_name on <var_modelbuilder:ModelBuilder>*/;
5670 var_cla53 = var52;
5671 var54 = NULL;
5672 if (var_cla53 == NULL) {
5673 var55 = 0; /* is null */
5674 } else {
5675 var55 = 1; /* arg is null and recv is not */
5676 }
5677 if (var55){
5678 var56 = ((val* (*)(val*))(var_cla53->class->vft[COLOR_model__MClass__mclass_type]))(var_cla53) /* mclass_type on <var_cla53:nullable MClass(MClass)>*/;
5679 var_mtype = var56;
5680 } else {
5681 }
5682 } else {
5683 /* <var_nexpr:nullable AExpr(AExpr)> isa ABoolExpr */
5684 cltype58 = type_parser_nodes__ABoolExpr.color;
5685 idtype59 = type_parser_nodes__ABoolExpr.id;
5686 if(cltype58 >= var_nexpr->type->table_size) {
5687 var57 = 0;
5688 } else {
5689 var57 = var_nexpr->type->type_table[cltype58] == idtype59;
5690 }
5691 if (var57){
5692 if (varonce60) {
5693 var61 = varonce60;
5694 } else {
5695 var62 = "Bool";
5696 var63 = 4;
5697 var64 = string__NativeString__to_s_with_length(var62, var63);
5698 var61 = var64;
5699 varonce60 = var61;
5700 }
5701 var65 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name]))(var_modelbuilder, var_nexpr, var_mmodule, var61) /* try_get_mclass_by_name on <var_modelbuilder:ModelBuilder>*/;
5702 var_cla66 = var65;
5703 var67 = NULL;
5704 if (var_cla66 == NULL) {
5705 var68 = 0; /* is null */
5706 } else {
5707 var68 = 1; /* arg is null and recv is not */
5708 }
5709 if (var68){
5710 var69 = ((val* (*)(val*))(var_cla66->class->vft[COLOR_model__MClass__mclass_type]))(var_cla66) /* mclass_type on <var_cla66:nullable MClass(MClass)>*/;
5711 var_mtype = var69;
5712 } else {
5713 }
5714 } else {
5715 /* <var_nexpr:nullable AExpr(AExpr)> isa ASuperstringExpr */
5716 cltype71 = type_parser_nodes__ASuperstringExpr.color;
5717 idtype72 = type_parser_nodes__ASuperstringExpr.id;
5718 if(cltype71 >= var_nexpr->type->table_size) {
5719 var70 = 0;
5720 } else {
5721 var70 = var_nexpr->type->type_table[cltype71] == idtype72;
5722 }
5723 if (var70){
5724 if (varonce73) {
5725 var74 = varonce73;
5726 } else {
5727 var75 = "String";
5728 var76 = 6;
5729 var77 = string__NativeString__to_s_with_length(var75, var76);
5730 var74 = var77;
5731 varonce73 = var74;
5732 }
5733 var78 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name]))(var_modelbuilder, var_nexpr, var_mmodule, var74) /* try_get_mclass_by_name on <var_modelbuilder:ModelBuilder>*/;
5734 var_cla79 = var78;
5735 var80 = NULL;
5736 if (var_cla79 == NULL) {
5737 var81 = 0; /* is null */
5738 } else {
5739 var81 = 1; /* arg is null and recv is not */
5740 }
5741 if (var81){
5742 var82 = ((val* (*)(val*))(var_cla79->class->vft[COLOR_model__MClass__mclass_type]))(var_cla79) /* mclass_type on <var_cla79:nullable MClass(MClass)>*/;
5743 var_mtype = var82;
5744 } else {
5745 }
5746 } else {
5747 /* <var_nexpr:nullable AExpr(AExpr)> isa AStringFormExpr */
5748 cltype84 = type_parser_nodes__AStringFormExpr.color;
5749 idtype85 = type_parser_nodes__AStringFormExpr.id;
5750 if(cltype84 >= var_nexpr->type->table_size) {
5751 var83 = 0;
5752 } else {
5753 var83 = var_nexpr->type->type_table[cltype84] == idtype85;
5754 }
5755 if (var83){
5756 if (varonce86) {
5757 var87 = varonce86;
5758 } else {
5759 var88 = "String";
5760 var89 = 6;
5761 var90 = string__NativeString__to_s_with_length(var88, var89);
5762 var87 = var90;
5763 varonce86 = var87;
5764 }
5765 var91 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name]))(var_modelbuilder, var_nexpr, var_mmodule, var87) /* try_get_mclass_by_name on <var_modelbuilder:ModelBuilder>*/;
5766 var_cla92 = var91;
5767 var93 = NULL;
5768 if (var_cla92 == NULL) {
5769 var94 = 0; /* is null */
5770 } else {
5771 var94 = 1; /* arg is null and recv is not */
5772 }
5773 if (var94){
5774 var95 = ((val* (*)(val*))(var_cla92->class->vft[COLOR_model__MClass__mclass_type]))(var_cla92) /* mclass_type on <var_cla92:nullable MClass(MClass)>*/;
5775 var_mtype = var95;
5776 } else {
5777 }
5778 } else {
5779 if (varonce96) {
5780 var97 = varonce96;
5781 } else {
5782 var98 = "Error: Untyped attribute ";
5783 var99 = 25;
5784 var100 = string__NativeString__to_s_with_length(var98, var99);
5785 var97 = var100;
5786 varonce96 = var97;
5787 }
5788 if (varonce101) {
5789 var102 = varonce101;
5790 } else {
5791 var103 = ". Implicit typing allowed only for literals and new.";
5792 var104 = 52;
5793 var105 = string__NativeString__to_s_with_length(var103, var104);
5794 var102 = var105;
5795 varonce101 = var102;
5796 }
5797 var106 = NEW_array__Array(&type_array__Arraykernel__Object);
5798 { /* var106 = array_instance Array[Object] */
5799 var107 = 3;
5800 var108 = NEW_array__NativeArray(var107, &type_array__NativeArraykernel__Object);
5801 ((struct instance_array__NativeArray*)var108)->values[0] = (val*) var97;
5802 ((struct instance_array__NativeArray*)var108)->values[1] = (val*) var_mpropdef;
5803 ((struct instance_array__NativeArray*)var108)->values[2] = (val*) var102;
5804 ((void (*)(val*, val*, long))(var106->class->vft[COLOR_array__Array__with_native]))(var106, var108, var107) /* with_native on <var106:Array[Object]>*/;
5805 }
5806 var109 = ((val* (*)(val*))(var106->class->vft[COLOR_string__Object__to_s]))(var106) /* to_s on <var106:Array[Object]>*/;
5807 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var109) /* error on <var_modelbuilder:ModelBuilder>*/;
5808 }
5809 }
5810 }
5811 }
5812 }
5813 }
5814 }
5815 } else {
5816 if (varonce110) {
5817 var111 = varonce110;
5818 } else {
5819 var112 = "Error: Untyped attribute ";
5820 var113 = 25;
5821 var114 = string__NativeString__to_s_with_length(var112, var113);
5822 var111 = var114;
5823 varonce110 = var111;
5824 }
5825 var115 = NEW_array__Array(&type_array__Arraykernel__Object);
5826 { /* var115 = array_instance Array[Object] */
5827 var116 = 2;
5828 var117 = NEW_array__NativeArray(var116, &type_array__NativeArraykernel__Object);
5829 ((struct instance_array__NativeArray*)var117)->values[0] = (val*) var111;
5830 ((struct instance_array__NativeArray*)var117)->values[1] = (val*) var_mpropdef;
5831 ((void (*)(val*, val*, long))(var115->class->vft[COLOR_array__Array__with_native]))(var115, var117, var116) /* with_native on <var115:Array[Object]>*/;
5832 }
5833 var118 = ((val* (*)(val*))(var115->class->vft[COLOR_string__Object__to_s]))(var115) /* to_s on <var115:Array[Object]>*/;
5834 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var118) /* error on <var_modelbuilder:ModelBuilder>*/;
5835 }
5836 } else {
5837 var119 = NULL;
5838 if (var_ntype == NULL) {
5839 var120 = 0; /* is null */
5840 } else {
5841 var120 = 1; /* arg is null and recv is not */
5842 }
5843 if (!var120) {
5844 fprintf(stderr, "Runtime error: %s", "Assert failed");
5845 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 731);
5846 show_backtrace(1);
5847 }
5848 /* <var_nexpr:nullable AExpr> isa ANewExpr */
5849 cltype122 = type_parser_nodes__ANewExpr.color;
5850 idtype123 = type_parser_nodes__ANewExpr.id;
5851 if(var_nexpr == NULL) {
5852 var121 = 0;
5853 } else {
5854 if(cltype122 >= var_nexpr->type->table_size) {
5855 var121 = 0;
5856 } else {
5857 var121 = var_nexpr->type->type_table[cltype122] == idtype123;
5858 }
5859 }
5860 if (var121){
5861 var124 = ((val* (*)(val*))(var_nexpr->class->vft[COLOR_parser_nodes__ANewExpr__n_type]))(var_nexpr) /* n_type on <var_nexpr:nullable AExpr(ANewExpr)>*/;
5862 var125 = ((val* (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var_modelbuilder, var_nclassdef, var124) /* resolve_mtype on <var_modelbuilder:ModelBuilder>*/;
5863 var_xmtype = var125;
5864 if (var_xmtype == NULL) {
5865 var127 = 0; /* <var_mtype:nullable MType(MType)> cannot be null */
5866 } else {
5867 var127 = ((short int (*)(val*, val*))(var_xmtype->class->vft[COLOR_kernel__Object___61d_61d]))(var_xmtype, var_mtype) /* == on <var_xmtype:nullable MType>*/;
5868 }
5869 var_ = var127;
5870 if (var127){
5871 var128 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on <var_modelbuilder:ModelBuilder>*/;
5872 var129 = ((val* (*)(val*))(var128->class->vft[COLOR_toolcontext__ToolContext__opt_warn]))(var128) /* opt_warn on <var128:ToolContext>*/;
5873 var130 = ((val* (*)(val*))(var129->class->vft[COLOR_opts__Option__value]))(var129) /* value on <var129:OptionCount>*/;
5874 var131 = 2;
5875 { /* Inline kernel#Int#>= (var130,var131) */
5876 /* Covariant cast for argument 0 (i) <var131:Int> isa OTHER */
5877 /* <var131:Int> isa OTHER */
5878 var134 = 1; /* easy <var131:Int> isa OTHER*/
5879 if (!var134) {
5880 var_class_name = type_kernel__Int.name;
5881 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5882 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
5883 show_backtrace(1);
5884 }
5885 var137 = ((struct instance_kernel__Int*)var130)->value; /* autounbox from nullable Object to Int */;
5886 var138 = var137 >= var131;
5887 var132 = var138;
5888 goto RET_LABEL133;
5889 RET_LABEL133:(void)0;
5890 }
5891 var126 = var132;
5892 } else {
5893 var126 = var_;
5894 }
5895 if (var126){
5896 if (varonce139) {
5897 var140 = varonce139;
5898 } else {
5899 var141 = "Warning: useless type definition";
5900 var142 = 32;
5901 var143 = string__NativeString__to_s_with_length(var141, var142);
5902 var140 = var143;
5903 varonce139 = var140;
5904 }
5905 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__warning]))(var_modelbuilder, var_ntype, var140) /* warning on <var_modelbuilder:ModelBuilder>*/;
5906 } else {
5907 }
5908 } else {
5909 }
5910 }
5911 var144 = NULL;
5912 if (var_mtype == NULL) {
5913 var145 = 1; /* is null */
5914 } else {
5915 var145 = 0; /* arg is null but recv is not */
5916 }
5917 if (var145){
5918 goto RET_LABEL;
5919 } else {
5920 }
5921 ((void (*)(val*, val*))(var_mpropdef->class->vft[COLOR_model__MAttributeDef__static_mtype_61d]))(var_mpropdef, var_mtype) /* static_mtype= on <var_mpropdef:nullable MAttributeDef(MAttributeDef)>*/;
5922 var146 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef]))(self) /* mreadpropdef on <self:AAttrPropdef>*/;
5923 var_mreadpropdef = var146;
5924 var147 = NULL;
5925 if (var_mreadpropdef == NULL) {
5926 var148 = 0; /* is null */
5927 } else {
5928 var148 = 1; /* arg is null and recv is not */
5929 }
5930 if (var148){
5931 var149 = NEW_model__MSignature(&type_model__MSignature);
5932 var150 = NEW_array__Array(&type_array__Arraymodel__MParameter);
5933 ((void (*)(val*))(var150->class->vft[COLOR_array__Array__init]))(var150) /* init on <var150:Array[MParameter]>*/;
5934 ((void (*)(val*, val*, val*))(var149->class->vft[COLOR_model__MSignature__init]))(var149, var150, var_mtype) /* init on <var149:MSignature>*/;
5935 var_msignature = var149;
5936 ((void (*)(val*, val*))(var_mreadpropdef->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mreadpropdef, var_msignature) /* msignature= on <var_mreadpropdef:nullable MMethodDef(MMethodDef)>*/;
5937 } else {
5938 }
5939 var151 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef]))(self) /* mwritepropdef on <self:AAttrPropdef>*/;
5940 var_msritepropdef = var151;
5941 var152 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef]))(self) /* mwritepropdef on <self:AAttrPropdef>*/;
5942 var153 = NULL;
5943 if (var152 == NULL) {
5944 var154 = 0; /* is null */
5945 } else {
5946 var154 = 1; /* arg is null and recv is not */
5947 }
5948 if (var154){
5949 var155 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on <self:AAttrPropdef>*/;
5950 var156 = NULL;
5951 if (var155 == NULL) {
5952 var157 = 0; /* is null */
5953 } else {
5954 var157 = 1; /* arg is null and recv is not */
5955 }
5956 if (var157){
5957 var158 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on <self:AAttrPropdef>*/;
5958 if (var158 == NULL) {
5959 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5960 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 754);
5961 show_backtrace(1);
5962 } else {
5963 var159 = ((val* (*)(val*))(var158->class->vft[COLOR_parser_nodes__Token__text]))(var158) /* text on <var158:nullable TAttrid>*/;
5964 }
5965 var160 = 1;
5966 var161 = ((val* (*)(val*, long))(var159->class->vft[COLOR_string__AbstractString__substring_from]))(var159, var160) /* substring_from on <var159:String>*/;
5967 var_name = var161;
5968 } else {
5969 var162 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on <self:AAttrPropdef>*/;
5970 if (var162 == NULL) {
5971 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5972 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 756);
5973 show_backtrace(1);
5974 } else {
5975 var163 = ((val* (*)(val*))(var162->class->vft[COLOR_parser_nodes__Token__text]))(var162) /* text on <var162:nullable TId>*/;
5976 }
5977 var_name = var163;
5978 }
5979 var164 = NEW_model__MParameter(&type_model__MParameter);
5980 var165 = 0;
5981 ((void (*)(val*, val*, val*, short int))(var164->class->vft[COLOR_model__MParameter__init]))(var164, var_name, var_mtype, var165) /* init on <var164:MParameter>*/;
5982 var_mparameter = var164;
5983 var166 = NEW_model__MSignature(&type_model__MSignature);
5984 var167 = NEW_array__Array(&type_array__Arraymodel__MParameter);
5985 var168 = 1;
5986 ((void (*)(val*, long))(var167->class->vft[COLOR_array__Array__with_capacity]))(var167, var168) /* with_capacity on <var167:Array[MParameter]>*/;
5987 var_169 = var167;
5988 ((void (*)(val*, val*))(var_169->class->vft[COLOR_abstract_collection__Sequence__push]))(var_169, var_mparameter) /* push on <var_169:Array[MParameter]>*/;
5989 var170 = NULL;
5990 ((void (*)(val*, val*, val*))(var166->class->vft[COLOR_model__MSignature__init]))(var166, var_169, var170) /* init on <var166:MSignature>*/;
5991 var_msignature171 = var166;
5992 var172 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef]))(self) /* mwritepropdef on <self:AAttrPropdef>*/;
5993 if (var172 == NULL) {
5994 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5995 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 760);
5996 show_backtrace(1);
5997 } else {
5998 ((void (*)(val*, val*))(var172->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var172, var_msignature171) /* msignature= on <var172:nullable MMethodDef>*/;
5999 }
6000 } else {
6001 }
6002 RET_LABEL:;
6003 }
6004 /* method modelize_property#AAttrPropdef#build_signature for (self: Object, ModelBuilder, AClassdef) */
6005 void VIRTUAL_modelize_property__AAttrPropdef__build_signature(val* self, val* p0, val* p1) {
6006 modelize_property__AAttrPropdef__build_signature(self, p0, p1);
6007 RET_LABEL:;
6008 }
6009 /* method modelize_property#AAttrPropdef#check_signature for (self: AAttrPropdef, ModelBuilder, AClassdef) */
6010 void modelize_property__AAttrPropdef__check_signature(val* self, val* p0, val* p1) {
6011 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
6012 val* var_nclassdef /* var nclassdef: AClassdef */;
6013 val* var /* : nullable MPropDef */;
6014 val* var_mpropdef /* var mpropdef: nullable MAttributeDef */;
6015 val* var1 /* : null */;
6016 short int var2 /* : Bool */;
6017 val* var3 /* : MClassDef */;
6018 val* var4 /* : MModule */;
6019 val* var_mmodule /* var mmodule: MModule */;
6020 val* var5 /* : nullable AType */;
6021 val* var_ntype /* var ntype: nullable AType */;
6022 val* var6 /* : nullable MPropDef */;
6023 val* var7 /* : nullable MType */;
6024 val* var_mtype /* var mtype: nullable MType */;
6025 val* var8 /* : null */;
6026 short int var9 /* : Bool */;
6027 short int var10 /* : Bool */;
6028 short int var11 /* : Bool */;
6029 val* var12 /* : MProperty */;
6030 val* var13 /* : MPropDef */;
6031 val* var14 /* : nullable MType */;
6032 val* var_precursor_type /* var precursor_type: nullable MType */;
6033 val* var15 /* : null */;
6034 short int var16 /* : Bool */;
6035 short int var17 /* : Bool */;
6036 static val* varonce;
6037 val* var18 /* : String */;
6038 char* var19 /* : NativeString */;
6039 long var20 /* : Int */;
6040 val* var21 /* : String */;
6041 static val* varonce22;
6042 val* var23 /* : String */;
6043 char* var24 /* : NativeString */;
6044 long var25 /* : Int */;
6045 val* var26 /* : String */;
6046 static val* varonce27;
6047 val* var28 /* : String */;
6048 char* var29 /* : NativeString */;
6049 long var30 /* : Int */;
6050 val* var31 /* : String */;
6051 val* var32 /* : Array[Object] */;
6052 long var33 /* : Int */;
6053 val* var34 /* : NativeArray[Object] */;
6054 val* var35 /* : String */;
6055 val* var36 /* : nullable MMethodDef */;
6056 val* var_meth /* var meth: nullable MMethodDef */;
6057 val* var37 /* : null */;
6058 short int var38 /* : Bool */;
6059 val* var39 /* : nullable MMethodDef */;
6060 val* var40 /* : null */;
6061 short int var41 /* : Bool */;
6062 var_modelbuilder = p0;
6063 var_nclassdef = p1;
6064 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
6065 var_mpropdef = var;
6066 var1 = NULL;
6067 if (var_mpropdef == NULL) {
6068 var2 = 1; /* is null */
6069 } else {
6070 var2 = 0; /* arg is null but recv is not */
6071 }
6072 if (var2){
6073 goto RET_LABEL;
6074 } else {
6075 }
6076 var3 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:nullable MAttributeDef(MAttributeDef)>*/;
6077 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on <var3:MClassDef>*/;
6078 var_mmodule = var4;
6079 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_type]))(self) /* n_type on <self:AAttrPropdef>*/;
6080 var_ntype = var5;
6081 var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
6082 if (var6 == NULL) {
6083 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6084 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 770);
6085 show_backtrace(1);
6086 } else {
6087 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var6) /* static_mtype on <var6:nullable MPropDef(nullable MAttributeDef)>*/;
6088 }
6089 var_mtype = var7;
6090 var8 = NULL;
6091 if (var_mtype == NULL) {
6092 var9 = 1; /* is null */
6093 } else {
6094 var9 = 0; /* arg is null but recv is not */
6095 }
6096 if (var9){
6097 goto RET_LABEL;
6098 } else {
6099 }
6100 var10 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on <var_mpropdef:nullable MAttributeDef(MAttributeDef)>*/;
6101 var11 = !var10;
6102 if (var11){
6103 var12 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:nullable MAttributeDef(MAttributeDef)>*/;
6104 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MProperty__intro]))(var12) /* intro on <var12:MProperty(MAttribute)>*/;
6105 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var13) /* static_mtype on <var13:MPropDef(MAttributeDef)>*/;
6106 var_precursor_type = var14;
6107 var15 = NULL;
6108 if (var_precursor_type == NULL) {
6109 var16 = 1; /* is null */
6110 } else {
6111 var16 = 0; /* arg is null but recv is not */
6112 }
6113 if (var16){
6114 goto RET_LABEL;
6115 } else {
6116 }
6117 var17 = ((short int (*)(val*, val*))(var_mtype->class->vft[COLOR_kernel__Object___33d_61d]))(var_mtype, var_precursor_type) /* != on <var_mtype:nullable MType(MType)>*/;
6118 if (var17){
6119 if (var_ntype == NULL) {
6120 fprintf(stderr, "Runtime error: %s", "Cast failed");
6121 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 780);
6122 show_backtrace(1);
6123 }
6124 if (varonce) {
6125 var18 = varonce;
6126 } else {
6127 var19 = "Redef Error: Wrong static type. found ";
6128 var20 = 38;
6129 var21 = string__NativeString__to_s_with_length(var19, var20);
6130 var18 = var21;
6131 varonce = var18;
6132 }
6133 if (varonce22) {
6134 var23 = varonce22;
6135 } else {
6136 var24 = ", expected ";
6137 var25 = 11;
6138 var26 = string__NativeString__to_s_with_length(var24, var25);
6139 var23 = var26;
6140 varonce22 = var23;
6141 }
6142 if (varonce27) {
6143 var28 = varonce27;
6144 } else {
6145 var29 = ".";
6146 var30 = 1;
6147 var31 = string__NativeString__to_s_with_length(var29, var30);
6148 var28 = var31;
6149 varonce27 = var28;
6150 }
6151 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
6152 { /* var32 = array_instance Array[Object] */
6153 var33 = 5;
6154 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
6155 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) var18;
6156 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var_mtype;
6157 ((struct instance_array__NativeArray*)var34)->values[2] = (val*) var23;
6158 ((struct instance_array__NativeArray*)var34)->values[3] = (val*) var_precursor_type;
6159 ((struct instance_array__NativeArray*)var34)->values[4] = (val*) var28;
6160 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
6161 }
6162 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
6163 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_ntype, var35) /* error on <var_modelbuilder:ModelBuilder>*/;
6164 goto RET_LABEL;
6165 } else {
6166 }
6167 } else {
6168 }
6169 var36 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef]))(self) /* mreadpropdef on <self:AAttrPropdef>*/;
6170 var_meth = var36;
6171 var37 = NULL;
6172 if (var_meth == NULL) {
6173 var38 = 0; /* is null */
6174 } else {
6175 var38 = 1; /* arg is null and recv is not */
6176 }
6177 if (var38){
6178 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__check_method_signature]))(self, var_modelbuilder, var_nclassdef, var_meth) /* check_method_signature on <self:AAttrPropdef>*/;
6179 } else {
6180 }
6181 var39 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef]))(self) /* mwritepropdef on <self:AAttrPropdef>*/;
6182 var_meth = var39;
6183 var40 = NULL;
6184 if (var_meth == NULL) {
6185 var41 = 0; /* is null */
6186 } else {
6187 var41 = 1; /* arg is null and recv is not */
6188 }
6189 if (var41){
6190 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__check_method_signature]))(self, var_modelbuilder, var_nclassdef, var_meth) /* check_method_signature on <self:AAttrPropdef>*/;
6191 } else {
6192 }
6193 RET_LABEL:;
6194 }
6195 /* method modelize_property#AAttrPropdef#check_signature for (self: Object, ModelBuilder, AClassdef) */
6196 void VIRTUAL_modelize_property__AAttrPropdef__check_signature(val* self, val* p0, val* p1) {
6197 modelize_property__AAttrPropdef__check_signature(self, p0, p1);
6198 RET_LABEL:;
6199 }
6200 /* method modelize_property#AAttrPropdef#check_method_signature for (self: AAttrPropdef, ModelBuilder, AClassdef, MMethodDef) */
6201 void modelize_property__AAttrPropdef__check_method_signature(val* self, val* p0, val* p1, val* p2) {
6202 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
6203 val* var_nclassdef /* var nclassdef: AClassdef */;
6204 val* var_mpropdef /* var mpropdef: MMethodDef */;
6205 val* var /* : MClassDef */;
6206 val* var1 /* : MModule */;
6207 val* var_mmodule /* var mmodule: MModule */;
6208 val* var2 /* : nullable AType */;
6209 val* var_nsig /* var nsig: nullable AType */;
6210 val* var3 /* : nullable MSignature */;
6211 val* var_mysignature /* var mysignature: nullable MSignature */;
6212 val* var4 /* : null */;
6213 short int var5 /* : Bool */;
6214 short int var6 /* : Bool */;
6215 short int var7 /* : Bool */;
6216 val* var8 /* : MProperty */;
6217 val* var9 /* : MPropDef */;
6218 val* var10 /* : nullable MSignature */;
6219 val* var_msignature /* var msignature: nullable MSignature */;
6220 val* var11 /* : null */;
6221 short int var12 /* : Bool */;
6222 long var13 /* : Int */;
6223 long var14 /* : Int */;
6224 short int var15 /* : Bool */;
6225 short int var17 /* : Bool */;
6226 short int var18 /* : Bool */;
6227 val* var19 /* : null */;
6228 short int var20 /* : Bool */;
6229 val* var_node /* var node: ANode */;
6230 static val* varonce;
6231 val* var21 /* : String */;
6232 char* var22 /* : NativeString */;
6233 long var23 /* : Int */;
6234 val* var24 /* : String */;
6235 long var25 /* : Int */;
6236 static val* varonce26;
6237 val* var27 /* : String */;
6238 char* var28 /* : NativeString */;
6239 long var29 /* : Int */;
6240 val* var30 /* : String */;
6241 long var31 /* : Int */;
6242 static val* varonce32;
6243 val* var33 /* : String */;
6244 char* var34 /* : NativeString */;
6245 long var35 /* : Int */;
6246 val* var36 /* : String */;
6247 val* var37 /* : Array[Object] */;
6248 long var38 /* : Int */;
6249 val* var39 /* : NativeArray[Object] */;
6250 val* var40 /* : Object */;
6251 val* var41 /* : Object */;
6252 val* var42 /* : String */;
6253 val* var43 /* : nullable MType */;
6254 val* var_precursor_ret_type /* var precursor_ret_type: nullable MType */;
6255 val* var44 /* : nullable MType */;
6256 val* var_ret_type /* var ret_type: nullable MType */;
6257 short int var45 /* : Bool */;
6258 val* var46 /* : null */;
6259 short int var47 /* : Bool */;
6260 short int var_ /* var : Bool */;
6261 val* var48 /* : null */;
6262 short int var49 /* : Bool */;
6263 val* var50 /* : null */;
6264 short int var51 /* : Bool */;
6265 val* var_node52 /* var node: ANode */;
6266 static val* varonce53;
6267 val* var54 /* : String */;
6268 char* var55 /* : NativeString */;
6269 long var56 /* : Int */;
6270 val* var57 /* : String */;
6271 val* var58 /* : MProperty */;
6272 static val* varonce59;
6273 val* var60 /* : String */;
6274 char* var61 /* : NativeString */;
6275 long var62 /* : Int */;
6276 val* var63 /* : String */;
6277 val* var64 /* : Array[Object] */;
6278 long var65 /* : Int */;
6279 val* var66 /* : NativeArray[Object] */;
6280 val* var67 /* : String */;
6281 long var68 /* : Int */;
6282 long var69 /* : Int */;
6283 short int var70 /* : Bool */;
6284 short int var72 /* : Bool */;
6285 int cltype;
6286 int idtype;
6287 const char* var_class_name;
6288 short int var73 /* : Bool */;
6289 val* var74 /* : Range[Int] */;
6290 long var75 /* : Int */;
6291 long var76 /* : Int */;
6292 val* var77 /* : Discrete */;
6293 val* var78 /* : Discrete */;
6294 val* var79 /* : Iterator[nullable Object] */;
6295 short int var80 /* : Bool */;
6296 val* var81 /* : nullable Object */;
6297 long var_i /* var i: Int */;
6298 long var82 /* : Int */;
6299 val* var83 /* : Array[MParameter] */;
6300 val* var84 /* : nullable Object */;
6301 val* var85 /* : MType */;
6302 val* var_myt /* var myt: MType */;
6303 val* var86 /* : Array[MParameter] */;
6304 val* var87 /* : nullable Object */;
6305 val* var88 /* : MType */;
6306 val* var_prt /* var prt: MType */;
6307 short int var89 /* : Bool */;
6308 val* var90 /* : nullable MClassDef */;
6309 val* var91 /* : MClassType */;
6310 short int var92 /* : Bool */;
6311 short int var93 /* : Bool */;
6312 short int var_94 /* var : Bool */;
6313 val* var95 /* : nullable MClassDef */;
6314 val* var96 /* : MClassType */;
6315 short int var97 /* : Bool */;
6316 short int var98 /* : Bool */;
6317 val* var99 /* : null */;
6318 short int var100 /* : Bool */;
6319 val* var_node101 /* var node: ANode */;
6320 static val* varonce102;
6321 val* var103 /* : String */;
6322 char* var104 /* : NativeString */;
6323 long var105 /* : Int */;
6324 val* var106 /* : String */;
6325 val* var107 /* : Array[MParameter] */;
6326 val* var108 /* : nullable Object */;
6327 val* var109 /* : String */;
6328 static val* varonce110;
6329 val* var111 /* : String */;
6330 char* var112 /* : NativeString */;
6331 long var113 /* : Int */;
6332 val* var114 /* : String */;
6333 static val* varonce115;
6334 val* var116 /* : String */;
6335 char* var117 /* : NativeString */;
6336 long var118 /* : Int */;
6337 val* var119 /* : String */;
6338 static val* varonce120;
6339 val* var121 /* : String */;
6340 char* var122 /* : NativeString */;
6341 long var123 /* : Int */;
6342 val* var124 /* : String */;
6343 val* var125 /* : Array[Object] */;
6344 long var126 /* : Int */;
6345 val* var127 /* : NativeArray[Object] */;
6346 val* var128 /* : String */;
6347 val* var129 /* : null */;
6348 short int var130 /* : Bool */;
6349 val* var131 /* : null */;
6350 short int var132 /* : Bool */;
6351 val* var133 /* : nullable MClassDef */;
6352 val* var134 /* : MClassType */;
6353 short int var135 /* : Bool */;
6354 short int var136 /* : Bool */;
6355 val* var137 /* : null */;
6356 short int var138 /* : Bool */;
6357 val* var_node139 /* var node: ANode */;
6358 static val* varonce140;
6359 val* var141 /* : String */;
6360 char* var142 /* : NativeString */;
6361 long var143 /* : Int */;
6362 val* var144 /* : String */;
6363 static val* varonce145;
6364 val* var146 /* : String */;
6365 char* var147 /* : NativeString */;
6366 long var148 /* : Int */;
6367 val* var149 /* : String */;
6368 static val* varonce150;
6369 val* var151 /* : String */;
6370 char* var152 /* : NativeString */;
6371 long var153 /* : Int */;
6372 val* var154 /* : String */;
6373 val* var155 /* : Array[Object] */;
6374 long var156 /* : Int */;
6375 val* var157 /* : NativeArray[Object] */;
6376 val* var158 /* : String */;
6377 var_modelbuilder = p0;
6378 var_nclassdef = p1;
6379 var_mpropdef = p2;
6380 var = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:MMethodDef>*/;
6381 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MClassDef__mmodule]))(var) /* mmodule on <var:MClassDef>*/;
6382 var_mmodule = var1;
6383 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_type]))(self) /* n_type on <self:AAttrPropdef>*/;
6384 var_nsig = var2;
6385 var3 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
6386 var_mysignature = var3;
6387 var4 = NULL;
6388 if (var_mysignature == NULL) {
6389 var5 = 1; /* is null */
6390 } else {
6391 var5 = 0; /* arg is null but recv is not */
6392 }
6393 if (var5){
6394 goto RET_LABEL;
6395 } else {
6396 }
6397 var6 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on <var_mpropdef:MMethodDef>*/;
6398 var7 = !var6;
6399 if (var7){
6400 var8 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
6401 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model__MProperty__intro]))(var8) /* intro on <var8:MProperty(MMethod)>*/;
6402 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MMethodDef__msignature]))(var9) /* msignature on <var9:MPropDef(MMethodDef)>*/;
6403 var_msignature = var10;
6404 var11 = NULL;
6405 if (var_msignature == NULL) {
6406 var12 = 1; /* is null */
6407 } else {
6408 var12 = 0; /* arg is null but recv is not */
6409 }
6410 if (var12){
6411 goto RET_LABEL;
6412 } else {
6413 }
6414 var13 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__arity]))(var_mysignature) /* arity on <var_mysignature:nullable MSignature(MSignature)>*/;
6415 var14 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__arity]))(var_msignature) /* arity on <var_msignature:nullable MSignature(MSignature)>*/;
6416 { /* Inline kernel#Int#!= (var13,var14) */
6417 var17 = var13 == var14;
6418 var18 = !var17;
6419 var15 = var18;
6420 goto RET_LABEL16;
6421 RET_LABEL16:(void)0;
6422 }
6423 if (var15){
6424 var19 = NULL;
6425 if (var_nsig == NULL) {
6426 var20 = 0; /* is null */
6427 } else {
6428 var20 = 1; /* arg is null and recv is not */
6429 }
6430 if (var20){
6431 var_node = var_nsig;
6432 } else {
6433 var_node = self;
6434 }
6435 if (varonce) {
6436 var21 = varonce;
6437 } else {
6438 var22 = "Redef Error: ";
6439 var23 = 13;
6440 var24 = string__NativeString__to_s_with_length(var22, var23);
6441 var21 = var24;
6442 varonce = var21;
6443 }
6444 var25 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__arity]))(var_mysignature) /* arity on <var_mysignature:nullable MSignature(MSignature)>*/;
6445 if (varonce26) {
6446 var27 = varonce26;
6447 } else {
6448 var28 = " parameters found, ";
6449 var29 = 19;
6450 var30 = string__NativeString__to_s_with_length(var28, var29);
6451 var27 = var30;
6452 varonce26 = var27;
6453 }
6454 var31 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__arity]))(var_msignature) /* arity on <var_msignature:nullable MSignature(MSignature)>*/;
6455 if (varonce32) {
6456 var33 = varonce32;
6457 } else {
6458 var34 = " expected. Signature is ";
6459 var35 = 24;
6460 var36 = string__NativeString__to_s_with_length(var34, var35);
6461 var33 = var36;
6462 varonce32 = var33;
6463 }
6464 var37 = NEW_array__Array(&type_array__Arraykernel__Object);
6465 { /* var37 = array_instance Array[Object] */
6466 var38 = 7;
6467 var39 = NEW_array__NativeArray(var38, &type_array__NativeArraykernel__Object);
6468 ((struct instance_array__NativeArray*)var39)->values[0] = (val*) var21;
6469 var40 = BOX_kernel__Int(var25); /* autobox from Int to Object */
6470 ((struct instance_array__NativeArray*)var39)->values[1] = (val*) var40;
6471 ((struct instance_array__NativeArray*)var39)->values[2] = (val*) var27;
6472 var41 = BOX_kernel__Int(var31); /* autobox from Int to Object */
6473 ((struct instance_array__NativeArray*)var39)->values[3] = (val*) var41;
6474 ((struct instance_array__NativeArray*)var39)->values[4] = (val*) var33;
6475 ((struct instance_array__NativeArray*)var39)->values[5] = (val*) var_mpropdef;
6476 ((struct instance_array__NativeArray*)var39)->values[6] = (val*) var_msignature;
6477 ((void (*)(val*, val*, long))(var37->class->vft[COLOR_array__Array__with_native]))(var37, var39, var38) /* with_native on <var37:Array[Object]>*/;
6478 }
6479 var42 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on <var37:Array[Object]>*/;
6480 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node, var42) /* error on <var_modelbuilder:ModelBuilder>*/;
6481 goto RET_LABEL;
6482 } else {
6483 }
6484 var43 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__return_mtype]))(var_msignature) /* return_mtype on <var_msignature:nullable MSignature(MSignature)>*/;
6485 var_precursor_ret_type = var43;
6486 var44 = ((val* (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__return_mtype]))(var_mysignature) /* return_mtype on <var_mysignature:nullable MSignature(MSignature)>*/;
6487 var_ret_type = var44;
6488 var46 = NULL;
6489 if (var_ret_type == NULL) {
6490 var47 = 0; /* is null */
6491 } else {
6492 var47 = 1; /* arg is null and recv is not */
6493 }
6494 var_ = var47;
6495 if (var47){
6496 var48 = NULL;
6497 if (var_precursor_ret_type == NULL) {
6498 var49 = 1; /* is null */
6499 } else {
6500 var49 = 0; /* arg is null but recv is not */
6501 }
6502 var45 = var49;
6503 } else {
6504 var45 = var_;
6505 }
6506 if (var45){
6507 var50 = NULL;
6508 if (var_nsig == NULL) {
6509 var51 = 0; /* is null */
6510 } else {
6511 var51 = 1; /* arg is null and recv is not */
6512 }
6513 if (var51){
6514 var_node52 = var_nsig;
6515 } else {
6516 var_node52 = self;
6517 }
6518 if (varonce53) {
6519 var54 = varonce53;
6520 } else {
6521 var55 = "Redef Error: ";
6522 var56 = 13;
6523 var57 = string__NativeString__to_s_with_length(var55, var56);
6524 var54 = var57;
6525 varonce53 = var54;
6526 }
6527 var58 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
6528 if (varonce59) {
6529 var60 = varonce59;
6530 } else {
6531 var61 = " is a procedure, not a function.";
6532 var62 = 32;
6533 var63 = string__NativeString__to_s_with_length(var61, var62);
6534 var60 = var63;
6535 varonce59 = var60;
6536 }
6537 var64 = NEW_array__Array(&type_array__Arraykernel__Object);
6538 { /* var64 = array_instance Array[Object] */
6539 var65 = 3;
6540 var66 = NEW_array__NativeArray(var65, &type_array__NativeArraykernel__Object);
6541 ((struct instance_array__NativeArray*)var66)->values[0] = (val*) var54;
6542 ((struct instance_array__NativeArray*)var66)->values[1] = (val*) var58;
6543 ((struct instance_array__NativeArray*)var66)->values[2] = (val*) var60;
6544 ((void (*)(val*, val*, long))(var64->class->vft[COLOR_array__Array__with_native]))(var64, var66, var65) /* with_native on <var64:Array[Object]>*/;
6545 }
6546 var67 = ((val* (*)(val*))(var64->class->vft[COLOR_string__Object__to_s]))(var64) /* to_s on <var64:Array[Object]>*/;
6547 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node52, var67) /* error on <var_modelbuilder:ModelBuilder>*/;
6548 goto RET_LABEL;
6549 } else {
6550 }
6551 var68 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__arity]))(var_mysignature) /* arity on <var_mysignature:nullable MSignature(MSignature)>*/;
6552 var69 = 0;
6553 { /* Inline kernel#Int#> (var68,var69) */
6554 /* Covariant cast for argument 0 (i) <var69:Int> isa OTHER */
6555 /* <var69:Int> isa OTHER */
6556 var72 = 1; /* easy <var69:Int> isa OTHER*/
6557 if (!var72) {
6558 var_class_name = type_kernel__Int.name;
6559 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6560 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
6561 show_backtrace(1);
6562 }
6563 var73 = var68 > var69;
6564 var70 = var73;
6565 goto RET_LABEL71;
6566 RET_LABEL71:(void)0;
6567 }
6568 if (var70){
6569 var74 = NEW_range__Range(&type_range__Rangekernel__Int);
6570 var75 = 0;
6571 var76 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__arity]))(var_mysignature) /* arity on <var_mysignature:nullable MSignature(MSignature)>*/;
6572 var77 = BOX_kernel__Int(var75); /* autobox from Int to Discrete */
6573 var78 = BOX_kernel__Int(var76); /* autobox from Int to Discrete */
6574 ((void (*)(val*, val*, val*))(var74->class->vft[COLOR_range__Range__without_last]))(var74, var77, var78) /* without_last on <var74:Range[Int]>*/;
6575 var79 = ((val* (*)(val*))(var74->class->vft[COLOR_abstract_collection__Collection__iterator]))(var74) /* iterator on <var74:Range[Int]>*/;
6576 for(;;) {
6577 var80 = ((short int (*)(val*))(var79->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var79) /* is_ok on <var79:Iterator[nullable Object]>*/;
6578 if(!var80) break;
6579 var81 = ((val* (*)(val*))(var79->class->vft[COLOR_abstract_collection__Iterator__item]))(var79) /* item on <var79:Iterator[nullable Object]>*/;
6580 var82 = ((struct instance_kernel__Int*)var81)->value; /* autounbox from nullable Object to Int */;
6581 var_i = var82;
6582 var83 = ((val* (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__mparameters]))(var_mysignature) /* mparameters on <var_mysignature:nullable MSignature(MSignature)>*/;
6583 var84 = ((val* (*)(val*, long))(var83->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var83, var_i) /* [] on <var83:Array[MParameter]>*/;
6584 var85 = ((val* (*)(val*))(var84->class->vft[COLOR_model__MParameter__mtype]))(var84) /* mtype on <var84:nullable Object(MParameter)>*/;
6585 var_myt = var85;
6586 var86 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__mparameters]))(var_msignature) /* mparameters on <var_msignature:nullable MSignature(MSignature)>*/;
6587 var87 = ((val* (*)(val*, long))(var86->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var86, var_i) /* [] on <var86:Array[MParameter]>*/;
6588 var88 = ((val* (*)(val*))(var87->class->vft[COLOR_model__MParameter__mtype]))(var87) /* mtype on <var87:nullable Object(MParameter)>*/;
6589 var_prt = var88;
6590 var90 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
6591 if (var90 == NULL) {
6592 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6593 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 825);
6594 show_backtrace(1);
6595 } else {
6596 var91 = ((val* (*)(val*))(var90->class->vft[COLOR_model__MClassDef__bound_mtype]))(var90) /* bound_mtype on <var90:nullable MClassDef>*/;
6597 }
6598 var92 = ((short int (*)(val*, val*, val*, val*))(var_myt->class->vft[COLOR_model__MType__is_subtype]))(var_myt, var_mmodule, var91, var_prt) /* is_subtype on <var_myt:MType>*/;
6599 var93 = !var92;
6600 var_94 = var93;
6601 if (var93){
6602 var95 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
6603 if (var95 == NULL) {
6604 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6605 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 826);
6606 show_backtrace(1);
6607 } else {
6608 var96 = ((val* (*)(val*))(var95->class->vft[COLOR_model__MClassDef__bound_mtype]))(var95) /* bound_mtype on <var95:nullable MClassDef>*/;
6609 }
6610 var97 = ((short int (*)(val*, val*, val*, val*))(var_prt->class->vft[COLOR_model__MType__is_subtype]))(var_prt, var_mmodule, var96, var_myt) /* is_subtype on <var_prt:MType>*/;
6611 var98 = !var97;
6612 var89 = var98;
6613 } else {
6614 var89 = var_94;
6615 }
6616 if (var89){
6617 var99 = NULL;
6618 if (var_nsig == NULL) {
6619 var100 = 0; /* is null */
6620 } else {
6621 var100 = 1; /* arg is null and recv is not */
6622 }
6623 if (var100){
6624 var_node101 = var_nsig;
6625 } else {
6626 var_node101 = self;
6627 }
6628 if (varonce102) {
6629 var103 = varonce102;
6630 } else {
6631 var104 = "Redef Error: Wrong type for parameter `";
6632 var105 = 39;
6633 var106 = string__NativeString__to_s_with_length(var104, var105);
6634 var103 = var106;
6635 varonce102 = var103;
6636 }
6637 var107 = ((val* (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__mparameters]))(var_mysignature) /* mparameters on <var_mysignature:nullable MSignature(MSignature)>*/;
6638 var108 = ((val* (*)(val*, long))(var107->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var107, var_i) /* [] on <var107:Array[MParameter]>*/;
6639 var109 = ((val* (*)(val*))(var108->class->vft[COLOR_model__MParameter__name]))(var108) /* name on <var108:nullable Object(MParameter)>*/;
6640 if (varonce110) {
6641 var111 = varonce110;
6642 } else {
6643 var112 = "\'. found ";
6644 var113 = 9;
6645 var114 = string__NativeString__to_s_with_length(var112, var113);
6646 var111 = var114;
6647 varonce110 = var111;
6648 }
6649 if (varonce115) {
6650 var116 = varonce115;
6651 } else {
6652 var117 = ", expected ";
6653 var118 = 11;
6654 var119 = string__NativeString__to_s_with_length(var117, var118);
6655 var116 = var119;
6656 varonce115 = var116;
6657 }
6658 if (varonce120) {
6659 var121 = varonce120;
6660 } else {
6661 var122 = ".";
6662 var123 = 1;
6663 var124 = string__NativeString__to_s_with_length(var122, var123);
6664 var121 = var124;
6665 varonce120 = var121;
6666 }
6667 var125 = NEW_array__Array(&type_array__Arraykernel__Object);
6668 { /* var125 = array_instance Array[Object] */
6669 var126 = 7;
6670 var127 = NEW_array__NativeArray(var126, &type_array__NativeArraykernel__Object);
6671 ((struct instance_array__NativeArray*)var127)->values[0] = (val*) var103;
6672 ((struct instance_array__NativeArray*)var127)->values[1] = (val*) var109;
6673 ((struct instance_array__NativeArray*)var127)->values[2] = (val*) var111;
6674 ((struct instance_array__NativeArray*)var127)->values[3] = (val*) var_myt;
6675 ((struct instance_array__NativeArray*)var127)->values[4] = (val*) var116;
6676 ((struct instance_array__NativeArray*)var127)->values[5] = (val*) var_prt;
6677 ((struct instance_array__NativeArray*)var127)->values[6] = (val*) var121;
6678 ((void (*)(val*, val*, long))(var125->class->vft[COLOR_array__Array__with_native]))(var125, var127, var126) /* with_native on <var125:Array[Object]>*/;
6679 }
6680 var128 = ((val* (*)(val*))(var125->class->vft[COLOR_string__Object__to_s]))(var125) /* to_s on <var125:Array[Object]>*/;
6681 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node101, var128) /* error on <var_modelbuilder:ModelBuilder>*/;
6682 } else {
6683 }
6684 CONTINUE_label: (void)0;
6685 ((void (*)(val*))(var79->class->vft[COLOR_abstract_collection__Iterator__next]))(var79) /* next on <var79:Iterator[nullable Object]>*/;
6686 }
6687 BREAK_label: (void)0;
6688 } else {
6689 }
6690 var129 = NULL;
6691 if (var_precursor_ret_type == NULL) {
6692 var130 = 0; /* is null */
6693 } else {
6694 var130 = 1; /* arg is null and recv is not */
6695 }
6696 if (var130){
6697 var131 = NULL;
6698 if (var_ret_type == NULL) {
6699 var132 = 1; /* is null */
6700 } else {
6701 var132 = 0; /* arg is null but recv is not */
6702 }
6703 if (var132){
6704 var_ret_type = var_precursor_ret_type;
6705 } else {
6706 var133 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
6707 if (var133 == NULL) {
6708 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6709 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 837);
6710 show_backtrace(1);
6711 } else {
6712 var134 = ((val* (*)(val*))(var133->class->vft[COLOR_model__MClassDef__bound_mtype]))(var133) /* bound_mtype on <var133:nullable MClassDef>*/;
6713 }
6714 var135 = ((short int (*)(val*, val*, val*, val*))(var_ret_type->class->vft[COLOR_model__MType__is_subtype]))(var_ret_type, var_mmodule, var134, var_precursor_ret_type) /* is_subtype on <var_ret_type:nullable MType(MType)>*/;
6715 var136 = !var135;
6716 if (var136){
6717 var137 = NULL;
6718 if (var_nsig == NULL) {
6719 var138 = 0; /* is null */
6720 } else {
6721 var138 = 1; /* arg is null and recv is not */
6722 }
6723 if (var138){
6724 var_node139 = var_nsig;
6725 } else {
6726 var_node139 = self;
6727 }
6728 if (varonce140) {
6729 var141 = varonce140;
6730 } else {
6731 var142 = "Redef Error: Wrong return type. found ";
6732 var143 = 38;
6733 var144 = string__NativeString__to_s_with_length(var142, var143);
6734 var141 = var144;
6735 varonce140 = var141;
6736 }
6737 if (varonce145) {
6738 var146 = varonce145;
6739 } else {
6740 var147 = ", expected ";
6741 var148 = 11;
6742 var149 = string__NativeString__to_s_with_length(var147, var148);
6743 var146 = var149;
6744 varonce145 = var146;
6745 }
6746 if (varonce150) {
6747 var151 = varonce150;
6748 } else {
6749 var152 = ".";
6750 var153 = 1;
6751 var154 = string__NativeString__to_s_with_length(var152, var153);
6752 var151 = var154;
6753 varonce150 = var151;
6754 }
6755 var155 = NEW_array__Array(&type_array__Arraykernel__Object);
6756 { /* var155 = array_instance Array[Object] */
6757 var156 = 5;
6758 var157 = NEW_array__NativeArray(var156, &type_array__NativeArraykernel__Object);
6759 ((struct instance_array__NativeArray*)var157)->values[0] = (val*) var141;
6760 ((struct instance_array__NativeArray*)var157)->values[1] = (val*) var_ret_type;
6761 ((struct instance_array__NativeArray*)var157)->values[2] = (val*) var146;
6762 ((struct instance_array__NativeArray*)var157)->values[3] = (val*) var_precursor_ret_type;
6763 ((struct instance_array__NativeArray*)var157)->values[4] = (val*) var151;
6764 ((void (*)(val*, val*, long))(var155->class->vft[COLOR_array__Array__with_native]))(var155, var157, var156) /* with_native on <var155:Array[Object]>*/;
6765 }
6766 var158 = ((val* (*)(val*))(var155->class->vft[COLOR_string__Object__to_s]))(var155) /* to_s on <var155:Array[Object]>*/;
6767 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node139, var158) /* error on <var_modelbuilder:ModelBuilder>*/;
6768 } else {
6769 }
6770 }
6771 } else {
6772 }
6773 } else {
6774 }
6775 RET_LABEL:;
6776 }
6777 /* method modelize_property#AAttrPropdef#check_method_signature for (self: Object, ModelBuilder, AClassdef, MMethodDef) */
6778 void VIRTUAL_modelize_property__AAttrPropdef__check_method_signature(val* self, val* p0, val* p1, val* p2) {
6779 modelize_property__AAttrPropdef__check_method_signature(self, p0, p1, p2);
6780 RET_LABEL:;
6781 }
6782 /* method modelize_property#ATypePropdef#build_property for (self: ATypePropdef, ModelBuilder, AClassdef) */
6783 void modelize_property__ATypePropdef__build_property(val* self, val* p0, val* p1) {
6784 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
6785 val* var_nclassdef /* var nclassdef: AClassdef */;
6786 val* var /* : nullable MClassDef */;
6787 val* var_mclassdef /* var mclassdef: MClassDef */;
6788 val* var1 /* : TClassid */;
6789 val* var2 /* : String */;
6790 val* var_name /* var name: String */;
6791 val* var3 /* : TClassid */;
6792 val* var4 /* : nullable MProperty */;
6793 val* var_mprop /* var mprop: nullable MProperty */;
6794 val* var5 /* : null */;
6795 short int var6 /* : Bool */;
6796 val* var7 /* : AVisibility */;
6797 val* var8 /* : MVisibility */;
6798 val* var_mvisibility /* var mvisibility: MVisibility */;
6799 val* var9 /* : MVirtualTypeProp */;
6800 val* var10 /* : Iterator[nullable Object] */;
6801 short int var11 /* : Bool */;
6802 val* var12 /* : nullable Object */;
6803 char var_c /* var c: Char */;
6804 char var13 /* : Char */;
6805 short int var14 /* : Bool */;
6806 char var15 /* : Char */;
6807 short int var16 /* : Bool */;
6808 short int var18 /* : Bool */;
6809 int cltype;
6810 int idtype;
6811 const char* var_class_name;
6812 short int var19 /* : Bool */;
6813 short int var_ /* var : Bool */;
6814 char var20 /* : Char */;
6815 short int var21 /* : Bool */;
6816 short int var23 /* : Bool */;
6817 int cltype24;
6818 int idtype25;
6819 const char* var_class_name26;
6820 short int var27 /* : Bool */;
6821 val* var28 /* : TClassid */;
6822 static val* varonce;
6823 val* var29 /* : String */;
6824 char* var30 /* : NativeString */;
6825 long var31 /* : Int */;
6826 val* var32 /* : String */;
6827 val* var33 /* : Array[Object] */;
6828 long var34 /* : Int */;
6829 val* var35 /* : NativeArray[Object] */;
6830 val* var36 /* : String */;
6831 val* var37 /* : nullable TKwredef */;
6832 short int var38 /* : Bool */;
6833 short int var39 /* : Bool */;
6834 short int var40 /* : Bool */;
6835 val* var41 /* : nullable TKwredef */;
6836 short int var42 /* : Bool */;
6837 short int var43 /* : Bool */;
6838 short int var44 /* : Bool */;
6839 short int var45 /* : Bool */;
6840 int cltype46;
6841 int idtype47;
6842 val* var48 /* : AVisibility */;
6843 val* var49 /* : Map[MProperty, APropdef] */;
6844 val* var50 /* : MVirtualTypeDef */;
6845 val* var51 /* : Location */;
6846 val* var_mpropdef /* var mpropdef: MVirtualTypeDef */;
6847 short int var52 /* : Bool */;
6848 int cltype53;
6849 int idtype54;
6850 const struct type* type_struct;
6851 const char* var_class_name55;
6852 var_modelbuilder = p0;
6853 var_nclassdef = p1;
6854 var = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
6855 if (var == NULL) {
6856 fprintf(stderr, "Runtime error: %s", "Cast failed");
6857 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 852);
6858 show_backtrace(1);
6859 }
6860 var_mclassdef = var;
6861 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_id]))(self) /* n_id on <self:ATypePropdef>*/;
6862 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_parser_nodes__Token__text]))(var1) /* text on <var1:TClassid>*/;
6863 var_name = var2;
6864 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_id]))(self) /* n_id on <self:ATypePropdef>*/;
6865 var4 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var3, var_mclassdef, var_name) /* try_get_mproperty_by_name on <var_modelbuilder:ModelBuilder>*/;
6866 var_mprop = var4;
6867 var5 = NULL;
6868 if (var_mprop == NULL) {
6869 var6 = 1; /* is null */
6870 } else {
6871 var6 = 0; /* arg is null but recv is not */
6872 }
6873 if (var6){
6874 var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_visibility]))(self) /* n_visibility on <self:ATypePropdef>*/;
6875 var8 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var7) /* new_property_visibility on <self:ATypePropdef>*/;
6876 var_mvisibility = var8;
6877 var9 = NEW_model__MVirtualTypeProp(&type_model__MVirtualTypeProp);
6878 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_model__MVirtualTypeProp__init]))(var9, var_mclassdef, var_name, var_mvisibility) /* init on <var9:MVirtualTypeProp>*/;
6879 var_mprop = var9;
6880 var10 = ((val* (*)(val*))(var_name->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_name) /* iterator on <var_name:String>*/;
6881 for(;;) {
6882 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
6883 if(!var11) break;
6884 var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
6885 var13 = ((struct instance_kernel__Char*)var12)->value; /* autounbox from nullable Object to Char */;
6886 var_c = var13;
6887 var15 = 'a';
6888 { /* Inline kernel#Char#>= (var_c,var15) */
6889 /* Covariant cast for argument 0 (i) <var15:Char> isa OTHER */
6890 /* <var15:Char> isa OTHER */
6891 var18 = 1; /* easy <var15:Char> isa OTHER*/
6892 if (!var18) {
6893 var_class_name = type_kernel__Char.name;
6894 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6895 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
6896 show_backtrace(1);
6897 }
6898 var19 = var_c >= var15;
6899 var16 = var19;
6900 goto RET_LABEL17;
6901 RET_LABEL17:(void)0;
6902 }
6903 var_ = var16;
6904 if (var16){
6905 var20 = 'z';
6906 { /* Inline kernel#Char#<= (var_c,var20) */
6907 /* Covariant cast for argument 0 (i) <var20:Char> isa OTHER */
6908 /* <var20:Char> isa OTHER */
6909 var23 = 1; /* easy <var20:Char> isa OTHER*/
6910 if (!var23) {
6911 var_class_name26 = type_kernel__Char.name;
6912 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
6913 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
6914 show_backtrace(1);
6915 }
6916 var27 = var_c <= var20;
6917 var21 = var27;
6918 goto RET_LABEL22;
6919 RET_LABEL22:(void)0;
6920 }
6921 var14 = var21;
6922 } else {
6923 var14 = var_;
6924 }
6925 if (var14){
6926 var28 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_id]))(self) /* n_id on <self:ATypePropdef>*/;
6927 if (varonce) {
6928 var29 = varonce;
6929 } else {
6930 var30 = "Warning: lowercase in the virtual type ";
6931 var31 = 39;
6932 var32 = string__NativeString__to_s_with_length(var30, var31);
6933 var29 = var32;
6934 varonce = var29;
6935 }
6936 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
6937 { /* var33 = array_instance Array[Object] */
6938 var34 = 2;
6939 var35 = NEW_array__NativeArray(var34, &type_array__NativeArraykernel__Object);
6940 ((struct instance_array__NativeArray*)var35)->values[0] = (val*) var29;
6941 ((struct instance_array__NativeArray*)var35)->values[1] = (val*) var_name;
6942 ((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on <var33:Array[Object]>*/;
6943 }
6944 var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on <var33:Array[Object]>*/;
6945 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__warning]))(var_modelbuilder, var28, var36) /* warning on <var_modelbuilder:ModelBuilder>*/;
6946 goto BREAK_label;
6947 } else {
6948 }
6949 CONTINUE_label: (void)0;
6950 ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
6951 }
6952 BREAK_label: (void)0;
6953 var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_kwredef]))(self) /* n_kwredef on <self:ATypePropdef>*/;
6954 var38 = 0;
6955 var39 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var37, var38, var_mprop) /* check_redef_keyword on <self:ATypePropdef>*/;
6956 var40 = !var39;
6957 if (var40){
6958 goto RET_LABEL;
6959 } else {
6960 }
6961 } else {
6962 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_kwredef]))(self) /* n_kwredef on <self:ATypePropdef>*/;
6963 var42 = 1;
6964 var43 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var41, var42, var_mprop) /* check_redef_keyword on <self:ATypePropdef>*/;
6965 var44 = !var43;
6966 if (var44){
6967 goto RET_LABEL;
6968 } else {
6969 }
6970 /* <var_mprop:nullable MProperty(MProperty)> isa MVirtualTypeProp */
6971 cltype46 = type_model__MVirtualTypeProp.color;
6972 idtype47 = type_model__MVirtualTypeProp.id;
6973 if(cltype46 >= var_mprop->type->table_size) {
6974 var45 = 0;
6975 } else {
6976 var45 = var_mprop->type->type_table[cltype46] == idtype47;
6977 }
6978 if (!var45) {
6979 fprintf(stderr, "Runtime error: %s", "Assert failed");
6980 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 865);
6981 show_backtrace(1);
6982 }
6983 var48 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_visibility]))(self) /* n_visibility on <self:ATypePropdef>*/;
6984 ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var48, var_mprop) /* check_redef_property_visibility on <self:ATypePropdef>*/;
6985 }
6986 var49 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on <var_nclassdef:AClassdef>*/;
6987 ((void (*)(val*, val*, val*))(var49->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var49, var_mprop, self) /* []= on <var49:Map[MProperty, APropdef]>*/;
6988 var50 = NEW_model__MVirtualTypeDef(&type_model__MVirtualTypeDef);
6989 var51 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:ATypePropdef>*/;
6990 ((void (*)(val*, val*, val*, val*))(var50->class->vft[COLOR_model__MVirtualTypeDef__init]))(var50, var_mclassdef, var_mprop, var51) /* init on <var50:MVirtualTypeDef>*/;
6991 var_mpropdef = var50;
6992 /* <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
6993 type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
6994 cltype53 = type_struct->color;
6995 idtype54 = type_struct->id;
6996 if(cltype53 >= var_mpropdef->type->table_size) {
6997 var52 = 0;
6998 } else {
6999 var52 = var_mpropdef->type->type_table[cltype53] == idtype54;
7000 }
7001 if (!var52) {
7002 var_class_name55 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
7003 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name55);
7004 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 871);
7005 show_backtrace(1);
7006 }
7007 ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on <self:ATypePropdef>*/;
7008 RET_LABEL:;
7009 }
7010 /* method modelize_property#ATypePropdef#build_property for (self: Object, ModelBuilder, AClassdef) */
7011 void VIRTUAL_modelize_property__ATypePropdef__build_property(val* self, val* p0, val* p1) {
7012 modelize_property__ATypePropdef__build_property(self, p0, p1);
7013 RET_LABEL:;
7014 }
7015 /* method modelize_property#ATypePropdef#build_signature for (self: ATypePropdef, ModelBuilder, AClassdef) */
7016 void modelize_property__ATypePropdef__build_signature(val* self, val* p0, val* p1) {
7017 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
7018 val* var_nclassdef /* var nclassdef: AClassdef */;
7019 val* var /* : nullable MPropDef */;
7020 val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */;
7021 val* var1 /* : null */;
7022 short int var2 /* : Bool */;
7023 val* var3 /* : MClassDef */;
7024 val* var4 /* : MModule */;
7025 val* var_mmodule /* var mmodule: MModule */;
7026 val* var5 /* : null */;
7027 val* var_mtype /* var mtype: nullable MType */;
7028 val* var6 /* : AType */;
7029 val* var_ntype /* var ntype: AType */;
7030 val* var7 /* : nullable MType */;
7031 val* var8 /* : null */;
7032 short int var9 /* : Bool */;
7033 var_modelbuilder = p0;
7034 var_nclassdef = p1;
7035 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:ATypePropdef>*/;
7036 var_mpropdef = var;
7037 var1 = NULL;
7038 if (var_mpropdef == NULL) {
7039 var2 = 1; /* is null */
7040 } else {
7041 var2 = 0; /* arg is null but recv is not */
7042 }
7043 if (var2){
7044 goto RET_LABEL;
7045 } else {
7046 }
7047 var3 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)>*/;
7048 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on <var3:MClassDef>*/;
7049 var_mmodule = var4;
7050 var5 = NULL;
7051 var_mtype = var5;
7052 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_type]))(self) /* n_type on <self:ATypePropdef>*/;
7053 var_ntype = var6;
7054 var7 = ((val* (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var_modelbuilder, var_nclassdef, var_ntype) /* resolve_mtype on <var_modelbuilder:ModelBuilder>*/;
7055 var_mtype = var7;
7056 var8 = NULL;
7057 if (var_mtype == NULL) {
7058 var9 = 1; /* is null */
7059 } else {
7060 var9 = 0; /* arg is null but recv is not */
7061 }
7062 if (var9){
7063 goto RET_LABEL;
7064 } else {
7065 }
7066 ((void (*)(val*, val*))(var_mpropdef->class->vft[COLOR_model__MVirtualTypeDef__bound_61d]))(var_mpropdef, var_mtype) /* bound= on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)>*/;
7067 RET_LABEL:;
7068 }
7069 /* method modelize_property#ATypePropdef#build_signature for (self: Object, ModelBuilder, AClassdef) */
7070 void VIRTUAL_modelize_property__ATypePropdef__build_signature(val* self, val* p0, val* p1) {
7071 modelize_property__ATypePropdef__build_signature(self, p0, p1);
7072 RET_LABEL:;
7073 }
7074 /* method modelize_property#ATypePropdef#check_signature for (self: ATypePropdef, ModelBuilder, AClassdef) */
7075 void modelize_property__ATypePropdef__check_signature(val* self, val* p0, val* p1) {
7076 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
7077 val* var_nclassdef /* var nclassdef: AClassdef */;
7078 val* var /* : nullable MPropDef */;
7079 val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */;
7080 val* var1 /* : null */;
7081 short int var2 /* : Bool */;
7082 val* var3 /* : nullable MPropDef */;
7083 val* var4 /* : nullable MType */;
7084 val* var_bound /* var bound: nullable MType */;
7085 short int var5 /* : Bool */;
7086 int cltype;
7087 int idtype;
7088 short int var6 /* : Bool */;
7089 val* var7 /* : nullable MClassDef */;
7090 val* var8 /* : MModule */;
7091 val* var_mmodule /* var mmodule: MModule */;
7092 val* var9 /* : nullable MClassDef */;
7093 val* var10 /* : MClassType */;
7094 val* var_anchor /* var anchor: MClassType */;
7095 val* var11 /* : Array[MVirtualType] */;
7096 long var12 /* : Int */;
7097 val* var_ /* var : Array[MVirtualType] */;
7098 val* var13 /* : nullable MPropDef */;
7099 val* var14 /* : MProperty */;
7100 val* var15 /* : MVirtualType */;
7101 val* var_seen /* var seen: Array[MVirtualType] */;
7102 short int var16 /* : Bool */;
7103 static val* varonce;
7104 val* var17 /* : String */;
7105 char* var18 /* : NativeString */;
7106 long var19 /* : Int */;
7107 val* var20 /* : String */;
7108 static val* varonce21;
7109 val* var22 /* : String */;
7110 char* var23 /* : NativeString */;
7111 long var24 /* : Int */;
7112 val* var25 /* : String */;
7113 val* var26 /* : String */;
7114 val* var27 /* : Array[Object] */;
7115 long var28 /* : Int */;
7116 val* var29 /* : NativeArray[Object] */;
7117 val* var30 /* : String */;
7118 val* var31 /* : MType */;
7119 val* var_next /* var next: MType */;
7120 short int var32 /* : Bool */;
7121 int cltype33;
7122 int idtype34;
7123 short int var35 /* : Bool */;
7124 var_modelbuilder = p0;
7125 var_nclassdef = p1;
7126 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:ATypePropdef>*/;
7127 var_mpropdef = var;
7128 var1 = NULL;
7129 if (var_mpropdef == NULL) {
7130 var2 = 1; /* is null */
7131 } else {
7132 var2 = 0; /* arg is null but recv is not */
7133 }
7134 if (var2){
7135 goto RET_LABEL;
7136 } else {
7137 }
7138 var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:ATypePropdef>*/;
7139 if (var3 == NULL) {
7140 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7141 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 894);
7142 show_backtrace(1);
7143 } else {
7144 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MVirtualTypeDef__bound]))(var3) /* bound on <var3:nullable MPropDef(nullable MVirtualTypeDef)>*/;
7145 }
7146 var_bound = var4;
7147 /* <var_bound:nullable MType> isa MVirtualType */
7148 cltype = type_model__MVirtualType.color;
7149 idtype = type_model__MVirtualType.id;
7150 if(var_bound == NULL) {
7151 var5 = 0;
7152 } else {
7153 if(cltype >= var_bound->type->table_size) {
7154 var5 = 0;
7155 } else {
7156 var5 = var_bound->type->type_table[cltype] == idtype;
7157 }
7158 }
7159 var6 = !var5;
7160 if (var6){
7161 goto RET_LABEL;
7162 } else {
7163 }
7164 var7 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
7165 if (var7 == NULL) {
7166 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7167 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 899);
7168 show_backtrace(1);
7169 } else {
7170 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClassDef__mmodule]))(var7) /* mmodule on <var7:nullable MClassDef>*/;
7171 }
7172 var_mmodule = var8;
7173 var9 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef>*/;
7174 if (var9 == NULL) {
7175 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7176 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 900);
7177 show_backtrace(1);
7178 } else {
7179 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MClassDef__bound_mtype]))(var9) /* bound_mtype on <var9:nullable MClassDef>*/;
7180 }
7181 var_anchor = var10;
7182 var11 = NEW_array__Array(&type_array__Arraymodel__MVirtualType);
7183 var12 = 1;
7184 ((void (*)(val*, long))(var11->class->vft[COLOR_array__Array__with_capacity]))(var11, var12) /* with_capacity on <var11:Array[MVirtualType]>*/;
7185 var_ = var11;
7186 var13 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:ATypePropdef>*/;
7187 if (var13 == NULL) {
7188 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7189 fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 903);
7190 show_backtrace(1);
7191 } else {
7192 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MPropDef__mproperty]))(var13) /* mproperty on <var13:nullable MPropDef(nullable MVirtualTypeDef)>*/;
7193 }
7194 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_model__MVirtualTypeProp__mvirtualtype]))(var14) /* mvirtualtype on <var14:MProperty(MVirtualTypeProp)>*/;
7195 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var15) /* push on <var_:Array[MVirtualType]>*/;
7196 var_seen = var_;
7197 for(;;) {
7198 var16 = ((short int (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__Collection__has]))(var_seen, var_bound) /* has on <var_seen:Array[MVirtualType]>*/;
7199 if (var16){
7200 ((void (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_seen, var_bound) /* add on <var_seen:Array[MVirtualType]>*/;
7201 if (varonce) {
7202 var17 = varonce;
7203 } else {
7204 var18 = "Error: circularity of virtual type definition: ";
7205 var19 = 47;
7206 var20 = string__NativeString__to_s_with_length(var18, var19);
7207 var17 = var20;
7208 varonce = var17;
7209 }
7210 if (varonce21) {
7211 var22 = varonce21;
7212 } else {
7213 var23 = " -> ";
7214 var24 = 4;
7215 var25 = string__NativeString__to_s_with_length(var23, var24);
7216 var22 = var25;
7217 varonce21 = var22;
7218 }
7219 var26 = ((val* (*)(val*, val*))(var_seen->class->vft[COLOR_string__Collection__join]))(var_seen, var22) /* join on <var_seen:Array[MVirtualType]>*/;
7220 var27 = NEW_array__Array(&type_array__Arraykernel__Object);
7221 { /* var27 = array_instance Array[Object] */
7222 var28 = 2;
7223 var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object);
7224 ((struct instance_array__NativeArray*)var29)->values[0] = (val*) var17;
7225 ((struct instance_array__NativeArray*)var29)->values[1] = (val*) var26;
7226 ((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on <var27:Array[Object]>*/;
7227 }
7228 var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on <var27:Array[Object]>*/;
7229 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var30) /* error on <var_modelbuilder:ModelBuilder>*/;
7230 goto RET_LABEL;
7231 } else {
7232 }
7233 ((void (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_seen, var_bound) /* add on <var_seen:Array[MVirtualType]>*/;
7234 var31 = ((val* (*)(val*, val*, val*))(var_bound->class->vft[COLOR_model__MVirtualType__lookup_bound]))(var_bound, var_mmodule, var_anchor) /* lookup_bound on <var_bound:nullable MType(MVirtualType)>*/;
7235 var_next = var31;
7236 /* <var_next:MType> isa MVirtualType */
7237 cltype33 = type_model__MVirtualType.color;
7238 idtype34 = type_model__MVirtualType.id;
7239 if(cltype33 >= var_next->type->table_size) {
7240 var32 = 0;
7241 } else {
7242 var32 = var_next->type->type_table[cltype33] == idtype34;
7243 }
7244 var35 = !var32;
7245 if (var35){
7246 goto RET_LABEL;
7247 } else {
7248 }
7249 var_bound = var_next;
7250 CONTINUE_label: (void)0;
7251 }
7252 BREAK_label: (void)0;
7253 RET_LABEL:;
7254 }
7255 /* method modelize_property#ATypePropdef#check_signature for (self: Object, ModelBuilder, AClassdef) */
7256 void VIRTUAL_modelize_property__ATypePropdef__check_signature(val* self, val* p0, val* p1) {
7257 modelize_property__ATypePropdef__check_signature(self, p0, p1);
7258 RET_LABEL:;
7259 }