Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__modelize_property.sep.2.c
1 #include "nitc__modelize_property.sep.0.h"
2 /* method modelize_property$ASignature$visit_signature for (self: ASignature, ModelBuilder, MClassDef): Bool */
3 short int nitc__modelize_property___ASignature___visit_signature(val* self, val* p0, val* p1) {
4 short int var /* : Bool */;
5 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
6 val* var_mclassdef /* var mclassdef: MClassDef */;
7 val* var1 /* : MModule */;
8 val* var3 /* : MModule */;
9 val* var_mmodule /* var mmodule: MModule */;
10 val* var4 /* : Array[String] */;
11 val* var6 /* : Array[String] */;
12 val* var_param_names /* var param_names: Array[String] */;
13 val* var7 /* : Array[MType] */;
14 val* var9 /* : Array[MType] */;
15 val* var_param_types /* var param_types: Array[MType] */;
16 val* var10 /* : ANodes[AParam] */;
17 val* var12 /* : ANodes[AParam] */;
18 val* var_ /* var : ANodes[AParam] */;
19 val* var13 /* : Iterator[ANode] */;
20 val* var_14 /* var : Iterator[AParam] */;
21 short int var15 /* : Bool */;
22 val* var16 /* : nullable Object */;
23 val* var_np /* var np: AParam */;
24 val* var17 /* : TId */;
25 val* var19 /* : TId */;
26 val* var20 /* : String */;
27 val* var21 /* : nullable AType */;
28 val* var23 /* : nullable AType */;
29 val* var_ntype /* var ntype: nullable AType */;
30 short int var24 /* : Bool */;
31 short int var25 /* : Bool */;
32 val* var_other /* var other: nullable Object */;
33 short int var27 /* : Bool */;
34 short int var28 /* : Bool */;
35 val* var29 /* : nullable MType */;
36 val* var_mtype /* var mtype: nullable MType */;
37 short int var30 /* : Bool */;
38 short int var31 /* : Bool */;
39 val* var_other33 /* var other: nullable Object */;
40 short int var34 /* : Bool */;
41 short int var36 /* : Bool */;
42 long var_i /* var i: Int */;
43 long var37 /* : Int */;
44 long var39 /* : Int */;
45 long var40 /* : Int */;
46 long var42 /* : Int */;
47 long var43 /* : Int */;
48 short int var45 /* : Bool */;
49 int cltype;
50 int idtype;
51 const char* var_class_name;
52 long var46 /* : Int */;
53 long var_47 /* var : Int */;
54 short int var48 /* : Bool */;
55 short int var50 /* : Bool */;
56 int cltype51;
57 int idtype52;
58 const char* var_class_name53;
59 short int var54 /* : Bool */;
60 long var56 /* : Int */;
61 val* var57 /* : nullable TDotdotdot */;
62 val* var59 /* : nullable TDotdotdot */;
63 short int var60 /* : Bool */;
64 short int var61 /* : Bool */;
65 short int var63 /* : Bool */;
66 short int var64 /* : Bool */;
67 long var65 /* : Int */;
68 long var67 /* : Int */;
69 long var68 /* : Int */;
70 long var70 /* : Int */;
71 short int var71 /* : Bool */;
72 short int var73 /* : Bool */;
73 short int var74 /* : Bool */;
74 val* var75 /* : NativeArray[String] */;
75 static val* varonce;
76 static val* varonce76;
77 val* var77 /* : String */;
78 char* var78 /* : CString */;
79 val* var79 /* : String */;
80 val* var80 /* : nullable Int */;
81 val* var81 /* : nullable Int */;
82 val* var82 /* : nullable Bool */;
83 val* var83 /* : nullable Bool */;
84 static val* varonce84;
85 val* var85 /* : String */;
86 char* var86 /* : CString */;
87 val* var87 /* : String */;
88 val* var88 /* : nullable Int */;
89 val* var89 /* : nullable Int */;
90 val* var90 /* : nullable Bool */;
91 val* var91 /* : nullable Bool */;
92 long var92 /* : Int */;
93 long var94 /* : Int */;
94 val* var95 /* : nullable Object */;
95 val* var96 /* : String */;
96 long var97 /* : Int */;
97 long var99 /* : Int */;
98 long var100 /* : Int */;
99 short int var102 /* : Bool */;
100 int cltype103;
101 int idtype104;
102 const char* var_class_name105;
103 long var106 /* : Int */;
104 val* var108 /* : nullable AType */;
105 val* var110 /* : nullable AType */;
106 val* var_ntype111 /* var ntype: nullable AType */;
107 short int var112 /* : Bool */;
108 short int var113 /* : Bool */;
109 short int var115 /* : Bool */;
110 short int var116 /* : Bool */;
111 val* var117 /* : nullable MType */;
112 val* var119 /* : nullable MType */;
113 val* var121 /* : nullable MType */;
114 short int var122 /* : Bool */;
115 short int var123 /* : Bool */;
116 short int var125 /* : Bool */;
117 short int var127 /* : Bool */;
118 var_modelbuilder = p0;
119 var_mclassdef = p1;
120 {
121 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
122 var3 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
123 if (unlikely(var3 == NULL)) {
124 if(catchStack.cursor >= 0){
125 longjmp(catchStack.envs[catchStack.cursor], 1);
126 }
127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
128 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
129 fatal_exit(1);
130 }
131 var1 = var3;
132 RET_LABEL2:(void)0;
133 }
134 }
135 var_mmodule = var1;
136 {
137 { /* Inline modelize_property$ASignature$param_names (self) on <self:ASignature> */
138 var6 = self->attrs[COLOR_nitc__modelize_property__ASignature___param_names].val; /* _param_names on <self:ASignature> */
139 if (unlikely(var6 == NULL)) {
140 if(catchStack.cursor >= 0){
141 longjmp(catchStack.envs[catchStack.cursor], 1);
142 }
143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_names");
144 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 659);
145 fatal_exit(1);
146 }
147 var4 = var6;
148 RET_LABEL5:(void)0;
149 }
150 }
151 var_param_names = var4;
152 {
153 { /* Inline modelize_property$ASignature$param_types (self) on <self:ASignature> */
154 var9 = self->attrs[COLOR_nitc__modelize_property__ASignature___param_types].val; /* _param_types on <self:ASignature> */
155 if (unlikely(var9 == NULL)) {
156 if(catchStack.cursor >= 0){
157 longjmp(catchStack.envs[catchStack.cursor], 1);
158 }
159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_types");
160 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 662);
161 fatal_exit(1);
162 }
163 var7 = var9;
164 RET_LABEL8:(void)0;
165 }
166 }
167 var_param_types = var7;
168 {
169 { /* Inline parser_nodes$ASignature$n_params (self) on <self:ASignature> */
170 var12 = self->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
171 if (unlikely(var12 == NULL)) {
172 if(catchStack.cursor >= 0){
173 longjmp(catchStack.envs[catchStack.cursor], 1);
174 }
175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
176 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
177 fatal_exit(1);
178 }
179 var10 = var12;
180 RET_LABEL11:(void)0;
181 }
182 }
183 var_ = var10;
184 {
185 var13 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
186 }
187 var_14 = var13;
188 for(;;) {
189 {
190 var15 = ((short int(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_14); /* is_ok on <var_14:Iterator[AParam]>*/
191 }
192 if (var15){
193 } else {
194 goto BREAK_label;
195 }
196 {
197 var16 = ((val*(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_14); /* item on <var_14:Iterator[AParam]>*/
198 }
199 var_np = var16;
200 {
201 { /* Inline parser_nodes$AParam$n_id (var_np) on <var_np:AParam> */
202 var19 = var_np->attrs[COLOR_nitc__parser_nodes__AParam___n_id].val; /* _n_id on <var_np:AParam> */
203 if (unlikely(var19 == NULL)) {
204 if(catchStack.cursor >= 0){
205 longjmp(catchStack.envs[catchStack.cursor], 1);
206 }
207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1760);
209 fatal_exit(1);
210 }
211 var17 = var19;
212 RET_LABEL18:(void)0;
213 }
214 }
215 {
216 var20 = nitc__lexer_work___Token___text(var17);
217 }
218 {
219 core___core__Array___core__abstract_collection__SimpleCollection__add(var_param_names, var20); /* Direct call array$Array$add on <var_param_names:Array[String]>*/
220 }
221 {
222 { /* Inline parser_nodes$AParam$n_type (var_np) on <var_np:AParam> */
223 var23 = var_np->attrs[COLOR_nitc__parser_nodes__AParam___n_type].val; /* _n_type on <var_np:AParam> */
224 var21 = var23;
225 RET_LABEL22:(void)0;
226 }
227 }
228 var_ntype = var21;
229 if (var_ntype == NULL) {
230 var24 = 0; /* is null */
231 } else {
232 var24 = 1; /* arg is null and recv is not */
233 }
234 if (0) {
235 { /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
236 var_other = ((val*)NULL);
237 {
238 var27 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on <var_ntype:nullable AType(AType)>*/
239 }
240 var28 = !var27;
241 var25 = var28;
242 goto RET_LABEL26;
243 RET_LABEL26:(void)0;
244 }
245 var24 = var25;
246 }
247 if (var24){
248 {
249 var29 = nitc___nitc__ModelBuilder___resolve_mtype_unchecked(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype, 1);
250 }
251 var_mtype = var29;
252 if (var_mtype == NULL) {
253 var30 = 1; /* is null */
254 } else {
255 var30 = 0; /* arg is null but recv is not */
256 }
257 if (0) {
258 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
259 var_other33 = ((val*)NULL);
260 {
261 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other33) on <var_mtype:nullable MType(MType)> */
262 var36 = var_mtype == var_other33;
263 var34 = var36;
264 goto RET_LABEL35;
265 RET_LABEL35:(void)0;
266 }
267 }
268 var31 = var34;
269 goto RET_LABEL32;
270 RET_LABEL32:(void)0;
271 }
272 var30 = var31;
273 }
274 if (var30){
275 var = 0;
276 goto RET_LABEL;
277 } else {
278 }
279 var_i = 0l;
280 {
281 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
282 var39 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
283 var37 = var39;
284 RET_LABEL38:(void)0;
285 }
286 }
287 {
288 { /* Inline array$AbstractArrayRead$length (var_param_types) on <var_param_types:Array[MType]> */
289 var42 = var_param_types->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
290 var40 = var42;
291 RET_LABEL41:(void)0;
292 }
293 }
294 {
295 { /* Inline kernel$Int$- (var37,var40) on <var37:Int> */
296 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
297 /* <var40:Int> isa OTHER */
298 var45 = 1; /* easy <var40:Int> isa OTHER*/
299 if (unlikely(!var45)) {
300 var_class_name = type_core__Int.name;
301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
302 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
303 fatal_exit(1);
304 }
305 var46 = var37 - var40;
306 var43 = var46;
307 goto RET_LABEL44;
308 RET_LABEL44:(void)0;
309 }
310 }
311 var_47 = var43;
312 for(;;) {
313 {
314 { /* Inline kernel$Int$< (var_i,var_47) on <var_i:Int> */
315 /* Covariant cast for argument 0 (i) <var_47:Int> isa OTHER */
316 /* <var_47:Int> isa OTHER */
317 var50 = 1; /* easy <var_47:Int> isa OTHER*/
318 if (unlikely(!var50)) {
319 var_class_name53 = type_core__Int.name;
320 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
321 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
322 fatal_exit(1);
323 }
324 var54 = var_i < var_47;
325 var48 = var54;
326 goto RET_LABEL49;
327 RET_LABEL49:(void)0;
328 }
329 }
330 if (var48){
331 } else {
332 goto BREAK_label55;
333 }
334 {
335 core___core__Array___core__abstract_collection__SimpleCollection__add(var_param_types, var_mtype); /* Direct call array$Array$add on <var_param_types:Array[MType]>*/
336 }
337 {
338 var56 = core___core__Int___Discrete__successor(var_i, 1l);
339 }
340 var_i = var56;
341 }
342 BREAK_label55: (void)0;
343 {
344 { /* Inline parser_nodes$AParam$n_dotdotdot (var_np) on <var_np:AParam> */
345 var59 = var_np->attrs[COLOR_nitc__parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <var_np:AParam> */
346 var57 = var59;
347 RET_LABEL58:(void)0;
348 }
349 }
350 if (var57 == NULL) {
351 var60 = 0; /* is null */
352 } else {
353 var60 = 1; /* arg is null and recv is not */
354 }
355 if (0) {
356 { /* Inline kernel$Object$!= (var57,((val*)NULL)) on <var57:nullable TDotdotdot> */
357 var_other = ((val*)NULL);
358 {
359 var63 = ((short int(*)(val* self, val* p0))(var57->class->vft[COLOR_core__kernel__Object___61d_61d]))(var57, var_other); /* == on <var57:nullable TDotdotdot(TDotdotdot)>*/
360 }
361 var64 = !var63;
362 var61 = var64;
363 goto RET_LABEL62;
364 RET_LABEL62:(void)0;
365 }
366 var60 = var61;
367 }
368 if (var60){
369 {
370 { /* Inline modelize_property$ASignature$vararg_rank (self) on <self:ASignature> */
371 var67 = self->attrs[COLOR_nitc__modelize_property__ASignature___vararg_rank].l; /* _vararg_rank on <self:ASignature> */
372 var65 = var67;
373 RET_LABEL66:(void)0;
374 }
375 }
376 {
377 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
378 var70 = -1l;
379 var68 = var70;
380 goto RET_LABEL69;
381 RET_LABEL69:(void)0;
382 }
383 }
384 {
385 { /* Inline kernel$Int$!= (var65,var68) on <var65:Int> */
386 var73 = var65 == var68;
387 var74 = !var73;
388 var71 = var74;
389 goto RET_LABEL72;
390 RET_LABEL72:(void)0;
391 }
392 }
393 if (var71){
394 if (unlikely(varonce==NULL)) {
395 var75 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
396 if (likely(varonce76!=NULL)) {
397 var77 = varonce76;
398 } else {
399 var78 = "Error: `";
400 var80 = (val*)(8l<<2|1);
401 var81 = (val*)(8l<<2|1);
402 var82 = (val*)((long)(0)<<2|3);
403 var83 = (val*)((long)(0)<<2|3);
404 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
405 var77 = var79;
406 varonce76 = var77;
407 }
408 ((struct instance_core__NativeArray*)var75)->values[0]=var77;
409 if (likely(varonce84!=NULL)) {
410 var85 = varonce84;
411 } else {
412 var86 = "` is already a vararg";
413 var88 = (val*)(21l<<2|1);
414 var89 = (val*)(21l<<2|1);
415 var90 = (val*)((long)(0)<<2|3);
416 var91 = (val*)((long)(0)<<2|3);
417 var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
418 var85 = var87;
419 varonce84 = var85;
420 }
421 ((struct instance_core__NativeArray*)var75)->values[2]=var85;
422 } else {
423 var75 = varonce;
424 varonce = NULL;
425 }
426 {
427 { /* Inline modelize_property$ASignature$vararg_rank (self) on <self:ASignature> */
428 var94 = self->attrs[COLOR_nitc__modelize_property__ASignature___vararg_rank].l; /* _vararg_rank on <self:ASignature> */
429 var92 = var94;
430 RET_LABEL93:(void)0;
431 }
432 }
433 {
434 var95 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_param_names, var92);
435 }
436 ((struct instance_core__NativeArray*)var75)->values[1]=var95;
437 {
438 var96 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on <var75:NativeArray[String]>*/
439 }
440 varonce = var75;
441 {
442 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_np, var96); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
443 }
444 var = 0;
445 goto RET_LABEL;
446 } else {
447 {
448 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
449 var99 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
450 var97 = var99;
451 RET_LABEL98:(void)0;
452 }
453 }
454 {
455 { /* Inline kernel$Int$- (var97,1l) on <var97:Int> */
456 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
457 /* <1l:Int> isa OTHER */
458 var102 = 1; /* easy <1l:Int> isa OTHER*/
459 if (unlikely(!var102)) {
460 var_class_name105 = type_core__Int.name;
461 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name105);
462 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
463 fatal_exit(1);
464 }
465 var106 = var97 - 1l;
466 var100 = var106;
467 goto RET_LABEL101;
468 RET_LABEL101:(void)0;
469 }
470 }
471 {
472 { /* Inline modelize_property$ASignature$vararg_rank= (self,var100) on <self:ASignature> */
473 self->attrs[COLOR_nitc__modelize_property__ASignature___vararg_rank].l = var100; /* _vararg_rank on <self:ASignature> */
474 RET_LABEL107:(void)0;
475 }
476 }
477 }
478 } else {
479 }
480 } else {
481 }
482 {
483 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_14); /* next on <var_14:Iterator[AParam]>*/
484 }
485 }
486 BREAK_label: (void)0;
487 {
488 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_14); /* finish on <var_14:Iterator[AParam]>*/
489 }
490 {
491 { /* Inline parser_nodes$ASignature$n_type (self) on <self:ASignature> */
492 var110 = self->attrs[COLOR_nitc__parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
493 var108 = var110;
494 RET_LABEL109:(void)0;
495 }
496 }
497 var_ntype111 = var108;
498 if (var_ntype111 == NULL) {
499 var112 = 0; /* is null */
500 } else {
501 var112 = 1; /* arg is null and recv is not */
502 }
503 if (0) {
504 { /* Inline kernel$Object$!= (var_ntype111,((val*)NULL)) on <var_ntype111:nullable AType> */
505 var_other = ((val*)NULL);
506 {
507 var115 = ((short int(*)(val* self, val* p0))(var_ntype111->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype111, var_other); /* == on <var_ntype111:nullable AType(AType)>*/
508 }
509 var116 = !var115;
510 var113 = var116;
511 goto RET_LABEL114;
512 RET_LABEL114:(void)0;
513 }
514 var112 = var113;
515 }
516 if (var112){
517 {
518 var117 = nitc___nitc__ModelBuilder___resolve_mtype_unchecked(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype111, 1);
519 }
520 {
521 { /* Inline modelize_property$ASignature$ret_type= (self,var117) on <self:ASignature> */
522 self->attrs[COLOR_nitc__modelize_property__ASignature___ret_type].val = var117; /* _ret_type on <self:ASignature> */
523 RET_LABEL118:(void)0;
524 }
525 }
526 {
527 { /* Inline modelize_property$ASignature$ret_type (self) on <self:ASignature> */
528 var121 = self->attrs[COLOR_nitc__modelize_property__ASignature___ret_type].val; /* _ret_type on <self:ASignature> */
529 var119 = var121;
530 RET_LABEL120:(void)0;
531 }
532 }
533 if (var119 == NULL) {
534 var122 = 1; /* is null */
535 } else {
536 var122 = 0; /* arg is null but recv is not */
537 }
538 if (0) {
539 { /* Inline kernel$Object$== (var119,((val*)NULL)) on <var119:nullable MType> */
540 var_other33 = ((val*)NULL);
541 {
542 { /* Inline kernel$Object$is_same_instance (var119,var_other33) on <var119:nullable MType(MType)> */
543 var127 = var119 == var_other33;
544 var125 = var127;
545 goto RET_LABEL126;
546 RET_LABEL126:(void)0;
547 }
548 }
549 var123 = var125;
550 goto RET_LABEL124;
551 RET_LABEL124:(void)0;
552 }
553 var122 = var123;
554 }
555 if (var122){
556 var = 0;
557 goto RET_LABEL;
558 } else {
559 }
560 } else {
561 }
562 {
563 { /* Inline modelize_property$ASignature$is_visited= (self,1) on <self:ASignature> */
564 self->attrs[COLOR_nitc__modelize_property__ASignature___is_visited].s = 1; /* _is_visited on <self:ASignature> */
565 RET_LABEL128:(void)0;
566 }
567 }
568 var = 1;
569 goto RET_LABEL;
570 RET_LABEL:;
571 return var;
572 }
573 /* method modelize_property$ASignature$check_signature for (self: ASignature, ModelBuilder, MClassDef): Bool */
574 short int nitc__modelize_property___ASignature___check_signature(val* self, val* p0, val* p1) {
575 short int var /* : Bool */;
576 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
577 val* var_mclassdef /* var mclassdef: MClassDef */;
578 short int var_res /* var res: Bool */;
579 val* var1 /* : ANodes[AParam] */;
580 val* var3 /* : ANodes[AParam] */;
581 val* var_ /* var : ANodes[AParam] */;
582 val* var4 /* : Iterator[ANode] */;
583 val* var_5 /* var : Iterator[AParam] */;
584 short int var6 /* : Bool */;
585 val* var7 /* : nullable Object */;
586 val* var_np /* var np: AParam */;
587 val* var8 /* : nullable AType */;
588 val* var10 /* : nullable AType */;
589 val* var_ntype /* var ntype: nullable AType */;
590 short int var11 /* : Bool */;
591 short int var12 /* : Bool */;
592 val* var_other /* var other: nullable Object */;
593 short int var14 /* : Bool */;
594 short int var15 /* : Bool */;
595 val* var16 /* : MModule */;
596 val* var18 /* : MModule */;
597 val* var19 /* : nullable MType */;
598 short int var20 /* : Bool */;
599 short int var21 /* : Bool */;
600 val* var_other23 /* var other: nullable Object */;
601 short int var24 /* : Bool */;
602 short int var26 /* : Bool */;
603 val* var27 /* : nullable AType */;
604 val* var29 /* : nullable AType */;
605 val* var_ntype30 /* var ntype: nullable AType */;
606 short int var31 /* : Bool */;
607 short int var32 /* : Bool */;
608 short int var34 /* : Bool */;
609 short int var35 /* : Bool */;
610 val* var36 /* : MModule */;
611 val* var38 /* : MModule */;
612 val* var39 /* : nullable MType */;
613 short int var40 /* : Bool */;
614 short int var41 /* : Bool */;
615 short int var43 /* : Bool */;
616 short int var45 /* : Bool */;
617 short int var46 /* : Bool */;
618 var_modelbuilder = p0;
619 var_mclassdef = p1;
620 var_res = 1;
621 {
622 { /* Inline parser_nodes$ASignature$n_params (self) on <self:ASignature> */
623 var3 = self->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
624 if (unlikely(var3 == NULL)) {
625 if(catchStack.cursor >= 0){
626 longjmp(catchStack.envs[catchStack.cursor], 1);
627 }
628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
629 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
630 fatal_exit(1);
631 }
632 var1 = var3;
633 RET_LABEL2:(void)0;
634 }
635 }
636 var_ = var1;
637 {
638 var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
639 }
640 var_5 = var4;
641 for(;;) {
642 {
643 var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:Iterator[AParam]>*/
644 }
645 if (var6){
646 } else {
647 goto BREAK_label;
648 }
649 {
650 var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:Iterator[AParam]>*/
651 }
652 var_np = var7;
653 {
654 { /* Inline parser_nodes$AParam$n_type (var_np) on <var_np:AParam> */
655 var10 = var_np->attrs[COLOR_nitc__parser_nodes__AParam___n_type].val; /* _n_type on <var_np:AParam> */
656 var8 = var10;
657 RET_LABEL9:(void)0;
658 }
659 }
660 var_ntype = var8;
661 if (var_ntype == NULL) {
662 var11 = 0; /* is null */
663 } else {
664 var11 = 1; /* arg is null and recv is not */
665 }
666 if (0) {
667 { /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
668 var_other = ((val*)NULL);
669 {
670 var14 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on <var_ntype:nullable AType(AType)>*/
671 }
672 var15 = !var14;
673 var12 = var15;
674 goto RET_LABEL13;
675 RET_LABEL13:(void)0;
676 }
677 var11 = var12;
678 }
679 if (var11){
680 {
681 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
682 var18 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
683 if (unlikely(var18 == NULL)) {
684 if(catchStack.cursor >= 0){
685 longjmp(catchStack.envs[catchStack.cursor], 1);
686 }
687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
688 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
689 fatal_exit(1);
690 }
691 var16 = var18;
692 RET_LABEL17:(void)0;
693 }
694 }
695 {
696 var19 = nitc___nitc__ModelBuilder___resolve_mtype(var_modelbuilder, var16, var_mclassdef, var_ntype);
697 }
698 if (var19 == NULL) {
699 var20 = 1; /* is null */
700 } else {
701 var20 = 0; /* arg is null but recv is not */
702 }
703 if (0) {
704 { /* Inline kernel$Object$== (var19,((val*)NULL)) on <var19:nullable MType> */
705 var_other23 = ((val*)NULL);
706 {
707 { /* Inline kernel$Object$is_same_instance (var19,var_other23) on <var19:nullable MType(MType)> */
708 var26 = var19 == var_other23;
709 var24 = var26;
710 goto RET_LABEL25;
711 RET_LABEL25:(void)0;
712 }
713 }
714 var21 = var24;
715 goto RET_LABEL22;
716 RET_LABEL22:(void)0;
717 }
718 var20 = var21;
719 }
720 if (var20){
721 var_res = 0;
722 } else {
723 }
724 } else {
725 }
726 {
727 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:Iterator[AParam]>*/
728 }
729 }
730 BREAK_label: (void)0;
731 {
732 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:Iterator[AParam]>*/
733 }
734 {
735 { /* Inline parser_nodes$ASignature$n_type (self) on <self:ASignature> */
736 var29 = self->attrs[COLOR_nitc__parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
737 var27 = var29;
738 RET_LABEL28:(void)0;
739 }
740 }
741 var_ntype30 = var27;
742 if (var_ntype30 == NULL) {
743 var31 = 0; /* is null */
744 } else {
745 var31 = 1; /* arg is null and recv is not */
746 }
747 if (0) {
748 { /* Inline kernel$Object$!= (var_ntype30,((val*)NULL)) on <var_ntype30:nullable AType> */
749 var_other = ((val*)NULL);
750 {
751 var34 = ((short int(*)(val* self, val* p0))(var_ntype30->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype30, var_other); /* == on <var_ntype30:nullable AType(AType)>*/
752 }
753 var35 = !var34;
754 var32 = var35;
755 goto RET_LABEL33;
756 RET_LABEL33:(void)0;
757 }
758 var31 = var32;
759 }
760 if (var31){
761 {
762 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
763 var38 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
764 if (unlikely(var38 == NULL)) {
765 if(catchStack.cursor >= 0){
766 longjmp(catchStack.envs[catchStack.cursor], 1);
767 }
768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
769 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
770 fatal_exit(1);
771 }
772 var36 = var38;
773 RET_LABEL37:(void)0;
774 }
775 }
776 {
777 var39 = nitc___nitc__ModelBuilder___resolve_mtype(var_modelbuilder, var36, var_mclassdef, var_ntype30);
778 }
779 if (var39 == NULL) {
780 var40 = 1; /* is null */
781 } else {
782 var40 = 0; /* arg is null but recv is not */
783 }
784 if (0) {
785 { /* Inline kernel$Object$== (var39,((val*)NULL)) on <var39:nullable MType> */
786 var_other23 = ((val*)NULL);
787 {
788 { /* Inline kernel$Object$is_same_instance (var39,var_other23) on <var39:nullable MType(MType)> */
789 var45 = var39 == var_other23;
790 var43 = var45;
791 goto RET_LABEL44;
792 RET_LABEL44:(void)0;
793 }
794 }
795 var41 = var43;
796 goto RET_LABEL42;
797 RET_LABEL42:(void)0;
798 }
799 var40 = var41;
800 }
801 if (var40){
802 var_res = 0;
803 } else {
804 }
805 } else {
806 }
807 var46 = !var_res;
808 if (var46){
809 {
810 { /* Inline modelbuilder_base$ANode$is_broken= (self,1) on <self:ASignature> */
811 self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <self:ASignature> */
812 RET_LABEL47:(void)0;
813 }
814 }
815 } else {
816 }
817 var = var_res;
818 goto RET_LABEL;
819 RET_LABEL:;
820 return var;
821 }
822 /* method modelize_property$AParam$mparameter= for (self: AParam, nullable MParameter) */
823 void nitc__modelize_property___AParam___mparameter_61d(val* self, val* p0) {
824 self->attrs[COLOR_nitc__modelize_property__AParam___mparameter].val = p0; /* _mparameter on <self:AParam> */
825 RET_LABEL:;
826 }
827 /* method modelize_property$AMethPropdef$is_autoinit for (self: AMethPropdef): Bool */
828 short int nitc__modelize_property___AMethPropdef___is_autoinit(val* self) {
829 short int var /* : Bool */;
830 short int var1 /* : Bool */;
831 var1 = self->attrs[COLOR_nitc__modelize_property__AMethPropdef___is_autoinit].s; /* _is_autoinit on <self:AMethPropdef> */
832 var = var1;
833 RET_LABEL:;
834 return var;
835 }
836 /* method modelize_property$AMethPropdef$is_autoinit= for (self: AMethPropdef, Bool) */
837 void nitc__modelize_property___AMethPropdef___is_autoinit_61d(val* self, short int p0) {
838 self->attrs[COLOR_nitc__modelize_property__AMethPropdef___is_autoinit].s = p0; /* _is_autoinit on <self:AMethPropdef> */
839 RET_LABEL:;
840 }
841 /* method modelize_property$AMethPropdef$look_like_a_root_init for (self: AMethPropdef, ModelBuilder, MClassDef): Bool */
842 short int nitc__modelize_property___AMethPropdef___look_like_a_root_init(val* self, val* p0, val* p1) {
843 short int var /* : Bool */;
844 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
845 val* var_mclassdef /* var mclassdef: MClassDef */;
846 val* var1 /* : nullable TKwinit */;
847 val* var3 /* : nullable TKwinit */;
848 short int var4 /* : Bool */;
849 short int var5 /* : Bool */;
850 val* var_other /* var other: nullable Object */;
851 short int var7 /* : Bool */;
852 short int var9 /* : Bool */;
853 val* var10 /* : nullable AMethid */;
854 val* var12 /* : nullable AMethid */;
855 short int var13 /* : Bool */;
856 short int var14 /* : Bool */;
857 val* var_other16 /* var other: nullable Object */;
858 short int var17 /* : Bool */;
859 short int var18 /* : Bool */;
860 static val* varonce;
861 val* var19 /* : String */;
862 char* var20 /* : CString */;
863 val* var21 /* : String */;
864 val* var22 /* : nullable Int */;
865 val* var23 /* : nullable Int */;
866 val* var24 /* : nullable Bool */;
867 val* var25 /* : nullable Bool */;
868 val* var26 /* : nullable AAnnotation */;
869 short int var27 /* : Bool */;
870 short int var28 /* : Bool */;
871 short int var30 /* : Bool */;
872 short int var31 /* : Bool */;
873 val* var32 /* : nullable ANode */;
874 val* var34 /* : nullable ANode */;
875 val* var35 /* : nullable ANode */;
876 val* var37 /* : nullable ANode */;
877 short int var38 /* : Bool */;
878 int cltype;
879 int idtype;
880 const char* var_class_name;
881 val* var_amod /* var amod: AModule */;
882 val* var39 /* : nullable AModuledecl */;
883 val* var41 /* : nullable AModuledecl */;
884 val* var_amoddecl /* var amoddecl: nullable AModuledecl */;
885 short int var42 /* : Bool */;
886 short int var43 /* : Bool */;
887 short int var45 /* : Bool */;
888 short int var46 /* : Bool */;
889 static val* varonce47;
890 val* var48 /* : String */;
891 char* var49 /* : CString */;
892 val* var50 /* : String */;
893 val* var51 /* : nullable Int */;
894 val* var52 /* : nullable Int */;
895 val* var53 /* : nullable Bool */;
896 val* var54 /* : nullable Bool */;
897 val* var55 /* : nullable AAnnotation */;
898 val* var_old /* var old: nullable AAnnotation */;
899 short int var56 /* : Bool */;
900 short int var57 /* : Bool */;
901 short int var59 /* : Bool */;
902 short int var60 /* : Bool */;
903 val* var61 /* : nullable ASignature */;
904 val* var63 /* : nullable ASignature */;
905 val* var64 /* : ANodes[AParam] */;
906 val* var66 /* : ANodes[AParam] */;
907 long var67 /* : Int */;
908 short int var68 /* : Bool */;
909 short int var70 /* : Bool */;
910 int cltype71;
911 int idtype72;
912 const char* var_class_name73;
913 short int var74 /* : Bool */;
914 static val* varonce75;
915 val* var76 /* : String */;
916 char* var77 /* : CString */;
917 val* var78 /* : String */;
918 val* var79 /* : nullable Int */;
919 val* var80 /* : nullable Int */;
920 val* var81 /* : nullable Bool */;
921 val* var82 /* : nullable Bool */;
922 val* var84 /* : NativeArray[String] */;
923 static val* varonce83;
924 static val* varonce85;
925 val* var86 /* : String */;
926 char* var87 /* : CString */;
927 val* var88 /* : String */;
928 val* var89 /* : nullable Int */;
929 val* var90 /* : nullable Int */;
930 val* var91 /* : nullable Bool */;
931 val* var92 /* : nullable Bool */;
932 val* var93 /* : String */;
933 val* var94 /* : String */;
934 val* var95 /* : nullable AVisibility */;
935 val* var97 /* : nullable AVisibility */;
936 short int var98 /* : Bool */;
937 int cltype99;
938 int idtype100;
939 short int var101 /* : Bool */;
940 static val* varonce102;
941 val* var103 /* : String */;
942 char* var104 /* : CString */;
943 val* var105 /* : String */;
944 val* var106 /* : nullable Int */;
945 val* var107 /* : nullable Int */;
946 val* var108 /* : nullable Bool */;
947 val* var109 /* : nullable Bool */;
948 val* var111 /* : NativeArray[String] */;
949 static val* varonce110;
950 static val* varonce112;
951 val* var113 /* : String */;
952 char* var114 /* : CString */;
953 val* var115 /* : String */;
954 val* var116 /* : nullable Int */;
955 val* var117 /* : nullable Int */;
956 val* var118 /* : nullable Bool */;
957 val* var119 /* : nullable Bool */;
958 val* var120 /* : String */;
959 val* var121 /* : String */;
960 var_modelbuilder = p0;
961 var_mclassdef = p1;
962 {
963 { /* Inline parser_nodes$AMethPropdef$n_kwinit (self) on <self:AMethPropdef> */
964 var3 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AMethPropdef> */
965 var1 = var3;
966 RET_LABEL2:(void)0;
967 }
968 }
969 if (var1 == NULL) {
970 var4 = 1; /* is null */
971 } else {
972 var4 = 0; /* arg is null but recv is not */
973 }
974 if (0) {
975 { /* Inline kernel$Object$== (var1,((val*)NULL)) on <var1:nullable TKwinit> */
976 var_other = ((val*)NULL);
977 {
978 { /* Inline kernel$Object$is_same_instance (var1,var_other) on <var1:nullable TKwinit(TKwinit)> */
979 var9 = var1 == var_other;
980 var7 = var9;
981 goto RET_LABEL8;
982 RET_LABEL8:(void)0;
983 }
984 }
985 var5 = var7;
986 goto RET_LABEL6;
987 RET_LABEL6:(void)0;
988 }
989 var4 = var5;
990 }
991 if (var4){
992 var = 0;
993 goto RET_LABEL;
994 } else {
995 }
996 {
997 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
998 var12 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
999 var10 = var12;
1000 RET_LABEL11:(void)0;
1001 }
1002 }
1003 if (var10 == NULL) {
1004 var13 = 0; /* is null */
1005 } else {
1006 var13 = 1; /* arg is null and recv is not */
1007 }
1008 if (0) {
1009 { /* Inline kernel$Object$!= (var10,((val*)NULL)) on <var10:nullable AMethid> */
1010 var_other16 = ((val*)NULL);
1011 {
1012 var17 = ((short int(*)(val* self, val* p0))(var10->class->vft[COLOR_core__kernel__Object___61d_61d]))(var10, var_other16); /* == on <var10:nullable AMethid(AMethid)>*/
1013 }
1014 var18 = !var17;
1015 var14 = var18;
1016 goto RET_LABEL15;
1017 RET_LABEL15:(void)0;
1018 }
1019 var13 = var14;
1020 }
1021 if (var13){
1022 var = 0;
1023 goto RET_LABEL;
1024 } else {
1025 }
1026 if (likely(varonce!=NULL)) {
1027 var19 = varonce;
1028 } else {
1029 var20 = "old_style_init";
1030 var22 = (val*)(14l<<2|1);
1031 var23 = (val*)(14l<<2|1);
1032 var24 = (val*)((long)(0)<<2|3);
1033 var25 = (val*)((long)(0)<<2|3);
1034 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
1035 var19 = var21;
1036 varonce = var19;
1037 }
1038 {
1039 var26 = nitc__annotation___Prod___get_single_annotation(self, var19, var_modelbuilder);
1040 }
1041 if (var26 == NULL) {
1042 var27 = 0; /* is null */
1043 } else {
1044 var27 = 1; /* arg is null and recv is not */
1045 }
1046 if (0) {
1047 { /* Inline kernel$Object$!= (var26,((val*)NULL)) on <var26:nullable AAnnotation> */
1048 var_other16 = ((val*)NULL);
1049 {
1050 var30 = ((short int(*)(val* self, val* p0))(var26->class->vft[COLOR_core__kernel__Object___61d_61d]))(var26, var_other16); /* == on <var26:nullable AAnnotation(AAnnotation)>*/
1051 }
1052 var31 = !var30;
1053 var28 = var31;
1054 goto RET_LABEL29;
1055 RET_LABEL29:(void)0;
1056 }
1057 var27 = var28;
1058 }
1059 if (var27){
1060 var = 0;
1061 goto RET_LABEL;
1062 } else {
1063 }
1064 {
1065 { /* Inline parser_nodes$ANode$parent (self) on <self:AMethPropdef> */
1066 var34 = self->attrs[COLOR_nitc__parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
1067 var32 = var34;
1068 RET_LABEL33:(void)0;
1069 }
1070 }
1071 if (var32 == NULL) {
1072 if(catchStack.cursor >= 0){
1073 longjmp(catchStack.envs[catchStack.cursor], 1);
1074 }
1075 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1076 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 749);
1077 fatal_exit(1);
1078 } else {
1079 { /* Inline parser_nodes$ANode$parent (var32) on <var32:nullable ANode> */
1080 if (unlikely(var32 == NULL)) {
1081 if(catchStack.cursor >= 0){
1082 longjmp(catchStack.envs[catchStack.cursor], 1);
1083 }
1084 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1085 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 60);
1086 fatal_exit(1);
1087 }
1088 var37 = var32->attrs[COLOR_nitc__parser_nodes__ANode___parent].val; /* _parent on <var32:nullable ANode> */
1089 var35 = var37;
1090 RET_LABEL36:(void)0;
1091 }
1092 }
1093 /* <var35:nullable ANode> isa AModule */
1094 cltype = type_nitc__AModule.color;
1095 idtype = type_nitc__AModule.id;
1096 if(var35 == NULL) {
1097 var38 = 0;
1098 } else {
1099 if(cltype >= var35->type->table_size) {
1100 var38 = 0;
1101 } else {
1102 var38 = var35->type->type_table[cltype] == idtype;
1103 }
1104 }
1105 if (unlikely(!var38)) {
1106 var_class_name = var35 == NULL ? "null" : var35->type->name;
1107 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name);
1108 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 749);
1109 fatal_exit(1);
1110 }
1111 var_amod = var35;
1112 {
1113 { /* Inline parser_nodes$AModule$n_moduledecl (var_amod) on <var_amod:AModule> */
1114 var41 = var_amod->attrs[COLOR_nitc__parser_nodes__AModule___n_moduledecl].val; /* _n_moduledecl on <var_amod:AModule> */
1115 var39 = var41;
1116 RET_LABEL40:(void)0;
1117 }
1118 }
1119 var_amoddecl = var39;
1120 if (var_amoddecl == NULL) {
1121 var42 = 0; /* is null */
1122 } else {
1123 var42 = 1; /* arg is null and recv is not */
1124 }
1125 if (0) {
1126 { /* Inline kernel$Object$!= (var_amoddecl,((val*)NULL)) on <var_amoddecl:nullable AModuledecl> */
1127 var_other16 = ((val*)NULL);
1128 {
1129 var45 = ((short int(*)(val* self, val* p0))(var_amoddecl->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_amoddecl, var_other16); /* == on <var_amoddecl:nullable AModuledecl(AModuledecl)>*/
1130 }
1131 var46 = !var45;
1132 var43 = var46;
1133 goto RET_LABEL44;
1134 RET_LABEL44:(void)0;
1135 }
1136 var42 = var43;
1137 }
1138 if (var42){
1139 if (likely(varonce47!=NULL)) {
1140 var48 = varonce47;
1141 } else {
1142 var49 = "old_style_init";
1143 var51 = (val*)(14l<<2|1);
1144 var52 = (val*)(14l<<2|1);
1145 var53 = (val*)((long)(0)<<2|3);
1146 var54 = (val*)((long)(0)<<2|3);
1147 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
1148 var48 = var50;
1149 varonce47 = var48;
1150 }
1151 {
1152 var55 = nitc__annotation___Prod___get_single_annotation(var_amoddecl, var48, var_modelbuilder);
1153 }
1154 var_old = var55;
1155 if (var_old == NULL) {
1156 var56 = 0; /* is null */
1157 } else {
1158 var56 = 1; /* arg is null and recv is not */
1159 }
1160 if (0) {
1161 { /* Inline kernel$Object$!= (var_old,((val*)NULL)) on <var_old:nullable AAnnotation> */
1162 var_other16 = ((val*)NULL);
1163 {
1164 var59 = ((short int(*)(val* self, val* p0))(var_old->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_old, var_other16); /* == on <var_old:nullable AAnnotation(AAnnotation)>*/
1165 }
1166 var60 = !var59;
1167 var57 = var60;
1168 goto RET_LABEL58;
1169 RET_LABEL58:(void)0;
1170 }
1171 var56 = var57;
1172 }
1173 if (var56){
1174 var = 0;
1175 goto RET_LABEL;
1176 } else {
1177 }
1178 } else {
1179 }
1180 {
1181 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
1182 var63 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
1183 var61 = var63;
1184 RET_LABEL62:(void)0;
1185 }
1186 }
1187 if (var61 == NULL) {
1188 if(catchStack.cursor >= 0){
1189 longjmp(catchStack.envs[catchStack.cursor], 1);
1190 }
1191 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1192 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 756);
1193 fatal_exit(1);
1194 } else {
1195 { /* Inline parser_nodes$ASignature$n_params (var61) on <var61:nullable ASignature> */
1196 if (unlikely(var61 == NULL)) {
1197 if(catchStack.cursor >= 0){
1198 longjmp(catchStack.envs[catchStack.cursor], 1);
1199 }
1200 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1201 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
1202 fatal_exit(1);
1203 }
1204 var66 = var61->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var61:nullable ASignature> */
1205 if (unlikely(var66 == NULL)) {
1206 if(catchStack.cursor >= 0){
1207 longjmp(catchStack.envs[catchStack.cursor], 1);
1208 }
1209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
1210 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
1211 fatal_exit(1);
1212 }
1213 var64 = var66;
1214 RET_LABEL65:(void)0;
1215 }
1216 }
1217 {
1218 var67 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var64);
1219 }
1220 {
1221 { /* Inline kernel$Int$> (var67,0l) on <var67:Int> */
1222 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1223 /* <0l:Int> isa OTHER */
1224 var70 = 1; /* easy <0l:Int> isa OTHER*/
1225 if (unlikely(!var70)) {
1226 var_class_name73 = type_core__Int.name;
1227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
1228 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1229 fatal_exit(1);
1230 }
1231 var74 = var67 > 0l;
1232 var68 = var74;
1233 goto RET_LABEL69;
1234 RET_LABEL69:(void)0;
1235 }
1236 }
1237 if (var68){
1238 if (likely(varonce75!=NULL)) {
1239 var76 = varonce75;
1240 } else {
1241 var77 = "old-init";
1242 var79 = (val*)(8l<<2|1);
1243 var80 = (val*)(8l<<2|1);
1244 var81 = (val*)((long)(0)<<2|3);
1245 var82 = (val*)((long)(0)<<2|3);
1246 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
1247 var76 = var78;
1248 varonce75 = var76;
1249 }
1250 if (unlikely(varonce83==NULL)) {
1251 var84 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
1252 if (likely(varonce85!=NULL)) {
1253 var86 = varonce85;
1254 } else {
1255 var87 = "Warning: init with signature in ";
1256 var89 = (val*)(32l<<2|1);
1257 var90 = (val*)(32l<<2|1);
1258 var91 = (val*)((long)(0)<<2|3);
1259 var92 = (val*)((long)(0)<<2|3);
1260 var88 = core__flat___CString___to_s_unsafe(var87, var89, var90, var91, var92);
1261 var86 = var88;
1262 varonce85 = var86;
1263 }
1264 ((struct instance_core__NativeArray*)var84)->values[0]=var86;
1265 } else {
1266 var84 = varonce83;
1267 varonce83 = NULL;
1268 }
1269 {
1270 var93 = ((val*(*)(val* self))(var_mclassdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclassdef); /* to_s on <var_mclassdef:MClassDef>*/
1271 }
1272 ((struct instance_core__NativeArray*)var84)->values[1]=var93;
1273 {
1274 var94 = ((val*(*)(val* self))(var84->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var84); /* native_to_s on <var84:NativeArray[String]>*/
1275 }
1276 varonce83 = var84;
1277 {
1278 nitc___nitc__ModelBuilder___advice(var_modelbuilder, self, var76, var94); /* Direct call modelbuilder_base$ModelBuilder$advice on <var_modelbuilder:ModelBuilder>*/
1279 }
1280 var = 0;
1281 goto RET_LABEL;
1282 } else {
1283 }
1284 {
1285 { /* Inline parser_nodes$ADefinition$n_visibility (self) on <self:AMethPropdef> */
1286 var97 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
1287 var95 = var97;
1288 RET_LABEL96:(void)0;
1289 }
1290 }
1291 /* <var95:nullable AVisibility> isa APublicVisibility */
1292 cltype99 = type_nitc__APublicVisibility.color;
1293 idtype100 = type_nitc__APublicVisibility.id;
1294 if(var95 == NULL) {
1295 var98 = 0;
1296 } else {
1297 if(cltype99 >= var95->type->table_size) {
1298 var98 = 0;
1299 } else {
1300 var98 = var95->type->type_table[cltype99] == idtype100;
1301 }
1302 }
1303 var101 = !var98;
1304 if (var101){
1305 if (likely(varonce102!=NULL)) {
1306 var103 = varonce102;
1307 } else {
1308 var104 = "old-init";
1309 var106 = (val*)(8l<<2|1);
1310 var107 = (val*)(8l<<2|1);
1311 var108 = (val*)((long)(0)<<2|3);
1312 var109 = (val*)((long)(0)<<2|3);
1313 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
1314 var103 = var105;
1315 varonce102 = var103;
1316 }
1317 if (unlikely(varonce110==NULL)) {
1318 var111 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
1319 if (likely(varonce112!=NULL)) {
1320 var113 = varonce112;
1321 } else {
1322 var114 = "Warning: non-public init in ";
1323 var116 = (val*)(28l<<2|1);
1324 var117 = (val*)(28l<<2|1);
1325 var118 = (val*)((long)(0)<<2|3);
1326 var119 = (val*)((long)(0)<<2|3);
1327 var115 = core__flat___CString___to_s_unsafe(var114, var116, var117, var118, var119);
1328 var113 = var115;
1329 varonce112 = var113;
1330 }
1331 ((struct instance_core__NativeArray*)var111)->values[0]=var113;
1332 } else {
1333 var111 = varonce110;
1334 varonce110 = NULL;
1335 }
1336 {
1337 var120 = ((val*(*)(val* self))(var_mclassdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclassdef); /* to_s on <var_mclassdef:MClassDef>*/
1338 }
1339 ((struct instance_core__NativeArray*)var111)->values[1]=var120;
1340 {
1341 var121 = ((val*(*)(val* self))(var111->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var111); /* native_to_s on <var111:NativeArray[String]>*/
1342 }
1343 varonce110 = var111;
1344 {
1345 nitc___nitc__ModelBuilder___advice(var_modelbuilder, self, var103, var121); /* Direct call modelbuilder_base$ModelBuilder$advice on <var_modelbuilder:ModelBuilder>*/
1346 }
1347 var = 0;
1348 goto RET_LABEL;
1349 } else {
1350 }
1351 var = 1;
1352 goto RET_LABEL;
1353 RET_LABEL:;
1354 return var;
1355 }
1356 /* method modelize_property$AMethPropdef$build_property for (self: AMethPropdef, ModelBuilder, MClassDef) */
1357 void nitc__modelize_property___AMethPropdef___APropdef__build_property(val* self, val* p0, val* p1) {
1358 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1359 val* var_mclassdef /* var mclassdef: MClassDef */;
1360 val* var /* : nullable TKwinit */;
1361 val* var2 /* : nullable TKwinit */;
1362 val* var_n_kwinit /* var n_kwinit: nullable TKwinit */;
1363 val* var3 /* : nullable TKwnew */;
1364 val* var5 /* : nullable TKwnew */;
1365 val* var_n_kwnew /* var n_kwnew: nullable TKwnew */;
1366 short int var6 /* : Bool */;
1367 short int var7 /* : Bool */;
1368 short int var8 /* : Bool */;
1369 val* var_other /* var other: nullable Object */;
1370 short int var10 /* : Bool */;
1371 short int var11 /* : Bool */;
1372 short int var_ /* var : Bool */;
1373 short int var12 /* : Bool */;
1374 short int var13 /* : Bool */;
1375 short int var15 /* : Bool */;
1376 short int var16 /* : Bool */;
1377 short int var_is_init /* var is_init: Bool */;
1378 val* var17 /* : nullable AMethid */;
1379 val* var19 /* : nullable AMethid */;
1380 val* var_amethodid /* var amethodid: nullable AMethid */;
1381 short int var20 /* : Bool */;
1382 short int var21 /* : Bool */;
1383 val* var_other23 /* var other: nullable Object */;
1384 short int var24 /* : Bool */;
1385 short int var26 /* : Bool */;
1386 short int var27 /* : Bool */;
1387 static val* varonce;
1388 val* var28 /* : String */;
1389 char* var29 /* : CString */;
1390 val* var30 /* : String */;
1391 val* var31 /* : nullable Int */;
1392 val* var32 /* : nullable Int */;
1393 val* var33 /* : nullable Bool */;
1394 val* var34 /* : nullable Bool */;
1395 val* var_name /* var name: String */;
1396 val* var_name_node /* var name_node: ANode */;
1397 short int var35 /* : Bool */;
1398 short int var36 /* : Bool */;
1399 short int var38 /* : Bool */;
1400 short int var39 /* : Bool */;
1401 static val* varonce40;
1402 val* var41 /* : String */;
1403 char* var42 /* : CString */;
1404 val* var43 /* : String */;
1405 val* var44 /* : nullable Int */;
1406 val* var45 /* : nullable Int */;
1407 val* var46 /* : nullable Bool */;
1408 val* var47 /* : nullable Bool */;
1409 short int var48 /* : Bool */;
1410 short int var49 /* : Bool */;
1411 short int var51 /* : Bool */;
1412 short int var52 /* : Bool */;
1413 static val* varonce53;
1414 val* var54 /* : String */;
1415 char* var55 /* : CString */;
1416 val* var56 /* : String */;
1417 val* var57 /* : nullable Int */;
1418 val* var58 /* : nullable Int */;
1419 val* var59 /* : nullable Bool */;
1420 val* var60 /* : nullable Bool */;
1421 short int var61 /* : Bool */;
1422 int cltype;
1423 int idtype;
1424 val* var62 /* : TId */;
1425 val* var64 /* : TId */;
1426 val* var65 /* : String */;
1427 val* var66 /* : String */;
1428 val* var67 /* : nullable ASignature */;
1429 val* var69 /* : nullable ASignature */;
1430 val* var70 /* : ANodes[AParam] */;
1431 val* var72 /* : ANodes[AParam] */;
1432 long var73 /* : Int */;
1433 long var_arity /* var arity: Int */;
1434 short int var74 /* : Bool */;
1435 static val* varonce75;
1436 val* var76 /* : String */;
1437 char* var77 /* : CString */;
1438 val* var78 /* : String */;
1439 val* var79 /* : nullable Int */;
1440 val* var80 /* : nullable Int */;
1441 val* var81 /* : nullable Bool */;
1442 val* var82 /* : nullable Bool */;
1443 short int var83 /* : Bool */;
1444 short int var_84 /* var : Bool */;
1445 short int var85 /* : Bool */;
1446 short int var87 /* : Bool */;
1447 static val* varonce88;
1448 val* var89 /* : String */;
1449 char* var90 /* : CString */;
1450 val* var91 /* : String */;
1451 val* var92 /* : nullable Int */;
1452 val* var93 /* : nullable Int */;
1453 val* var94 /* : nullable Bool */;
1454 val* var95 /* : nullable Bool */;
1455 short int var96 /* : Bool */;
1456 static val* varonce97;
1457 val* var98 /* : String */;
1458 char* var99 /* : CString */;
1459 val* var100 /* : String */;
1460 val* var101 /* : nullable Int */;
1461 val* var102 /* : nullable Int */;
1462 val* var103 /* : nullable Bool */;
1463 val* var104 /* : nullable Bool */;
1464 short int var105 /* : Bool */;
1465 short int var_106 /* var : Bool */;
1466 short int var107 /* : Bool */;
1467 short int var109 /* : Bool */;
1468 static val* varonce110;
1469 val* var111 /* : String */;
1470 char* var112 /* : CString */;
1471 val* var113 /* : String */;
1472 val* var114 /* : nullable Int */;
1473 val* var115 /* : nullable Int */;
1474 val* var116 /* : nullable Bool */;
1475 val* var117 /* : nullable Bool */;
1476 short int var118 /* : Bool */;
1477 static val* varonce119;
1478 val* var120 /* : String */;
1479 char* var121 /* : CString */;
1480 val* var122 /* : String */;
1481 val* var123 /* : nullable Int */;
1482 val* var124 /* : nullable Int */;
1483 val* var125 /* : nullable Bool */;
1484 val* var126 /* : nullable Bool */;
1485 short int var127 /* : Bool */;
1486 short int var_128 /* var : Bool */;
1487 short int var129 /* : Bool */;
1488 short int var131 /* : Bool */;
1489 static val* varonce132;
1490 val* var133 /* : String */;
1491 char* var134 /* : CString */;
1492 val* var135 /* : String */;
1493 val* var136 /* : nullable Int */;
1494 val* var137 /* : nullable Int */;
1495 val* var138 /* : nullable Bool */;
1496 val* var139 /* : nullable Bool */;
1497 short int var140 /* : Bool */;
1498 short int var141 /* : Bool */;
1499 short int var_142 /* var : Bool */;
1500 short int var143 /* : Bool */;
1501 short int var145 /* : Bool */;
1502 short int var146 /* : Bool */;
1503 val* var147 /* : nullable ASignature */;
1504 val* var149 /* : nullable ASignature */;
1505 val* var151 /* : NativeArray[String] */;
1506 static val* varonce150;
1507 static val* varonce152;
1508 val* var153 /* : String */;
1509 char* var154 /* : CString */;
1510 val* var155 /* : String */;
1511 val* var156 /* : nullable Int */;
1512 val* var157 /* : nullable Int */;
1513 val* var158 /* : nullable Bool */;
1514 val* var159 /* : nullable Bool */;
1515 static val* varonce160;
1516 val* var161 /* : String */;
1517 char* var162 /* : CString */;
1518 val* var163 /* : String */;
1519 val* var164 /* : nullable Int */;
1520 val* var165 /* : nullable Int */;
1521 val* var166 /* : nullable Bool */;
1522 val* var167 /* : nullable Bool */;
1523 static val* varonce168;
1524 val* var169 /* : String */;
1525 char* var170 /* : CString */;
1526 val* var171 /* : String */;
1527 val* var172 /* : nullable Int */;
1528 val* var173 /* : nullable Int */;
1529 val* var174 /* : nullable Bool */;
1530 val* var175 /* : nullable Bool */;
1531 val* var176 /* : String */;
1532 val* var177 /* : String */;
1533 long var178 /* : Int */;
1534 short int var179 /* : Bool */;
1535 short int var181 /* : Bool */;
1536 int cltype182;
1537 int idtype183;
1538 const char* var_class_name;
1539 short int var184 /* : Bool */;
1540 val* var185 /* : nullable ASignature */;
1541 val* var187 /* : nullable ASignature */;
1542 val* var189 /* : NativeArray[String] */;
1543 static val* varonce188;
1544 static val* varonce190;
1545 val* var191 /* : String */;
1546 char* var192 /* : CString */;
1547 val* var193 /* : String */;
1548 val* var194 /* : nullable Int */;
1549 val* var195 /* : nullable Int */;
1550 val* var196 /* : nullable Bool */;
1551 val* var197 /* : nullable Bool */;
1552 static val* varonce198;
1553 val* var199 /* : String */;
1554 char* var200 /* : CString */;
1555 val* var201 /* : String */;
1556 val* var202 /* : nullable Int */;
1557 val* var203 /* : nullable Int */;
1558 val* var204 /* : nullable Bool */;
1559 val* var205 /* : nullable Bool */;
1560 static val* varonce206;
1561 val* var207 /* : String */;
1562 char* var208 /* : CString */;
1563 val* var209 /* : String */;
1564 val* var210 /* : nullable Int */;
1565 val* var211 /* : nullable Int */;
1566 val* var212 /* : nullable Bool */;
1567 val* var213 /* : nullable Bool */;
1568 static val* varonce214;
1569 val* var215 /* : String */;
1570 char* var216 /* : CString */;
1571 val* var217 /* : String */;
1572 val* var218 /* : nullable Int */;
1573 val* var219 /* : nullable Int */;
1574 val* var220 /* : nullable Bool */;
1575 val* var221 /* : nullable Bool */;
1576 long var222 /* : Int */;
1577 val* var223 /* : String */;
1578 val* var224 /* : String */;
1579 val* var225 /* : String */;
1580 short int var226 /* : Bool */;
1581 short int var_look_like_a_root_init /* var look_like_a_root_init: Bool */;
1582 val* var_mprop /* var mprop: nullable MMethod */;
1583 short int var227 /* : Bool */;
1584 short int var228 /* : Bool */;
1585 short int var_229 /* var : Bool */;
1586 val* var230 /* : nullable TKwredef */;
1587 val* var232 /* : nullable TKwredef */;
1588 short int var233 /* : Bool */;
1589 short int var234 /* : Bool */;
1590 short int var236 /* : Bool */;
1591 short int var237 /* : Bool */;
1592 val* var238 /* : nullable MProperty */;
1593 short int var239 /* : Bool */;
1594 int cltype240;
1595 int idtype241;
1596 const char* var_class_name242;
1597 short int var243 /* : Bool */;
1598 short int var244 /* : Bool */;
1599 short int var245 /* : Bool */;
1600 short int var247 /* : Bool */;
1601 short int var249 /* : Bool */;
1602 short int var_250 /* var : Bool */;
1603 val* var251 /* : nullable MMethod */;
1604 val* var253 /* : nullable MMethod */;
1605 val* var254 /* : nullable AExpr */;
1606 val* var256 /* : nullable AExpr */;
1607 val* var_nb /* var nb: nullable AExpr */;
1608 short int var257 /* : Bool */;
1609 short int var258 /* : Bool */;
1610 short int var259 /* : Bool */;
1611 int cltype260;
1612 int idtype261;
1613 short int var_262 /* var : Bool */;
1614 val* var263 /* : ANodes[AExpr] */;
1615 val* var265 /* : ANodes[AExpr] */;
1616 short int var266 /* : Bool */;
1617 short int var_267 /* var : Bool */;
1618 val* var268 /* : nullable ADoc */;
1619 val* var270 /* : nullable ADoc */;
1620 short int var271 /* : Bool */;
1621 short int var272 /* : Bool */;
1622 short int var274 /* : Bool */;
1623 short int var276 /* : Bool */;
1624 static val* varonce277;
1625 val* var278 /* : String */;
1626 char* var279 /* : CString */;
1627 val* var280 /* : String */;
1628 val* var281 /* : nullable Int */;
1629 val* var282 /* : nullable Int */;
1630 val* var283 /* : nullable Bool */;
1631 val* var284 /* : nullable Bool */;
1632 val* var286 /* : NativeArray[String] */;
1633 static val* varonce285;
1634 static val* varonce287;
1635 val* var288 /* : String */;
1636 char* var289 /* : CString */;
1637 val* var290 /* : String */;
1638 val* var291 /* : nullable Int */;
1639 val* var292 /* : nullable Int */;
1640 val* var293 /* : nullable Bool */;
1641 val* var294 /* : nullable Bool */;
1642 val* var295 /* : String */;
1643 val* var296 /* : String */;
1644 short int var297 /* : Bool */;
1645 short int var298 /* : Bool */;
1646 short int var300 /* : Bool */;
1647 short int var302 /* : Bool */;
1648 val* var303 /* : nullable AVisibility */;
1649 val* var305 /* : nullable AVisibility */;
1650 val* var306 /* : MVisibility */;
1651 val* var_mvisibility /* var mvisibility: MVisibility */;
1652 val* var307 /* : MMethod */;
1653 val* var308 /* : Location */;
1654 val* var310 /* : Location */;
1655 short int var311 /* : Bool */;
1656 short int var_312 /* var : Bool */;
1657 val* var313 /* : nullable MMethod */;
1658 val* var315 /* : nullable MMethod */;
1659 short int var316 /* : Bool */;
1660 short int var317 /* : Bool */;
1661 short int var319 /* : Bool */;
1662 short int var321 /* : Bool */;
1663 short int var325 /* : Bool */;
1664 short int var326 /* : Bool */;
1665 short int var328 /* : Bool */;
1666 short int var329 /* : Bool */;
1667 short int var331 /* : Bool */;
1668 short int var333 /* : Bool */;
1669 val* var334 /* : MClass */;
1670 val* var336 /* : MClass */;
1671 static val* varonce338;
1672 val* var339 /* : String */;
1673 char* var340 /* : CString */;
1674 val* var341 /* : String */;
1675 val* var342 /* : nullable Int */;
1676 val* var343 /* : nullable Int */;
1677 val* var344 /* : nullable Bool */;
1678 val* var345 /* : nullable Bool */;
1679 short int var346 /* : Bool */;
1680 val* var348 /* : nullable TKwredef */;
1681 val* var350 /* : nullable TKwredef */;
1682 short int var351 /* : Bool */;
1683 short int var352 /* : Bool */;
1684 short int var354 /* : Bool */;
1685 short int var356 /* : Bool */;
1686 val* var357 /* : nullable TKwredef */;
1687 val* var359 /* : nullable TKwredef */;
1688 short int var360 /* : Bool */;
1689 int cltype361;
1690 int idtype362;
1691 short int var363 /* : Bool */;
1692 short int var364 /* : Bool */;
1693 short int var365 /* : Bool */;
1694 val* var366 /* : nullable AVisibility */;
1695 val* var368 /* : nullable AVisibility */;
1696 val* var369 /* : Map[MProperty, APropdef] */;
1697 val* var371 /* : Map[MProperty, APropdef] */;
1698 val* var_372 /* var : Map[MProperty, APropdef] */;
1699 val* var373 /* : MapIterator[nullable Object, nullable Object] */;
1700 val* var_374 /* var : MapIterator[MProperty, APropdef] */;
1701 short int var375 /* : Bool */;
1702 val* var376 /* : nullable Object */;
1703 val* var_p /* var p: MProperty */;
1704 val* var377 /* : nullable Object */;
1705 val* var_n /* var n: APropdef */;
1706 short int var378 /* : Bool */;
1707 short int var379 /* : Bool */;
1708 short int var380 /* : Bool */;
1709 short int var382 /* : Bool */;
1710 short int var383 /* : Bool */;
1711 short int var_384 /* var : Bool */;
1712 short int var385 /* : Bool */;
1713 int cltype386;
1714 int idtype387;
1715 short int var_388 /* var : Bool */;
1716 val* var389 /* : String */;
1717 val* var391 /* : String */;
1718 short int var392 /* : Bool */;
1719 val* var393 /* : nullable TKwredef */;
1720 val* var395 /* : nullable TKwredef */;
1721 short int var396 /* : Bool */;
1722 short int var397 /* : Bool */;
1723 val* var400 /* : Map[MProperty, APropdef] */;
1724 val* var402 /* : Map[MProperty, APropdef] */;
1725 val* var403 /* : MMethodDef */;
1726 val* var404 /* : Location */;
1727 val* var406 /* : Location */;
1728 val* var_mpropdef /* var mpropdef: MMethodDef */;
1729 short int var407 /* : Bool */;
1730 int cltype408;
1731 int idtype409;
1732 const struct type* type_struct;
1733 const char* var_class_name410;
1734 short int var412 /* : Bool */;
1735 int cltype413;
1736 int idtype414;
1737 const struct type* type_struct415;
1738 const char* var_class_name416;
1739 val* var417 /* : HashMap[MPropDef, APropdef] */;
1740 val* var419 /* : HashMap[MPropDef, APropdef] */;
1741 short int var420 /* : Bool */;
1742 val* var421 /* : ToolContext */;
1743 val* var423 /* : ToolContext */;
1744 val* var425 /* : NativeArray[String] */;
1745 static val* varonce424;
1746 static val* varonce426;
1747 val* var427 /* : String */;
1748 char* var428 /* : CString */;
1749 val* var429 /* : String */;
1750 val* var430 /* : nullable Int */;
1751 val* var431 /* : nullable Int */;
1752 val* var432 /* : nullable Bool */;
1753 val* var433 /* : nullable Bool */;
1754 val* var434 /* : String */;
1755 val* var435 /* : String */;
1756 val* var436 /* : String */;
1757 val* var437 /* : ToolContext */;
1758 val* var439 /* : ToolContext */;
1759 val* var441 /* : NativeArray[String] */;
1760 static val* varonce440;
1761 static val* varonce442;
1762 val* var443 /* : String */;
1763 char* var444 /* : CString */;
1764 val* var445 /* : String */;
1765 val* var446 /* : nullable Int */;
1766 val* var447 /* : nullable Int */;
1767 val* var448 /* : nullable Bool */;
1768 val* var449 /* : nullable Bool */;
1769 val* var450 /* : String */;
1770 val* var451 /* : String */;
1771 val* var452 /* : String */;
1772 var_modelbuilder = p0;
1773 var_mclassdef = p1;
1774 {
1775 { /* Inline parser_nodes$AMethPropdef$n_kwinit (self) on <self:AMethPropdef> */
1776 var2 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AMethPropdef> */
1777 var = var2;
1778 RET_LABEL1:(void)0;
1779 }
1780 }
1781 var_n_kwinit = var;
1782 {
1783 { /* Inline parser_nodes$AMethPropdef$n_kwnew (self) on <self:AMethPropdef> */
1784 var5 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_kwnew].val; /* _n_kwnew on <self:AMethPropdef> */
1785 var3 = var5;
1786 RET_LABEL4:(void)0;
1787 }
1788 }
1789 var_n_kwnew = var3;
1790 if (var_n_kwinit == NULL) {
1791 var7 = 0; /* is null */
1792 } else {
1793 var7 = 1; /* arg is null and recv is not */
1794 }
1795 if (0) {
1796 { /* Inline kernel$Object$!= (var_n_kwinit,((val*)NULL)) on <var_n_kwinit:nullable TKwinit> */
1797 var_other = ((val*)NULL);
1798 {
1799 var10 = ((short int(*)(val* self, val* p0))(var_n_kwinit->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwinit, var_other); /* == on <var_n_kwinit:nullable TKwinit(TKwinit)>*/
1800 }
1801 var11 = !var10;
1802 var8 = var11;
1803 goto RET_LABEL9;
1804 RET_LABEL9:(void)0;
1805 }
1806 var7 = var8;
1807 }
1808 var_ = var7;
1809 if (var7){
1810 var6 = var_;
1811 } else {
1812 if (var_n_kwnew == NULL) {
1813 var12 = 0; /* is null */
1814 } else {
1815 var12 = 1; /* arg is null and recv is not */
1816 }
1817 if (0) {
1818 { /* Inline kernel$Object$!= (var_n_kwnew,((val*)NULL)) on <var_n_kwnew:nullable TKwnew> */
1819 var_other = ((val*)NULL);
1820 {
1821 var15 = ((short int(*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwnew, var_other); /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/
1822 }
1823 var16 = !var15;
1824 var13 = var16;
1825 goto RET_LABEL14;
1826 RET_LABEL14:(void)0;
1827 }
1828 var12 = var13;
1829 }
1830 var6 = var12;
1831 }
1832 var_is_init = var6;
1833 {
1834 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
1835 var19 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
1836 var17 = var19;
1837 RET_LABEL18:(void)0;
1838 }
1839 }
1840 var_amethodid = var17;
1841 if (var_amethodid == NULL) {
1842 var20 = 1; /* is null */
1843 } else {
1844 var20 = 0; /* arg is null but recv is not */
1845 }
1846 if (0) {
1847 { /* Inline kernel$Object$== (var_amethodid,((val*)NULL)) on <var_amethodid:nullable AMethid> */
1848 var_other23 = ((val*)NULL);
1849 {
1850 { /* Inline kernel$Object$is_same_instance (var_amethodid,var_other23) on <var_amethodid:nullable AMethid(AMethid)> */
1851 var26 = var_amethodid == var_other23;
1852 var24 = var26;
1853 goto RET_LABEL25;
1854 RET_LABEL25:(void)0;
1855 }
1856 }
1857 var21 = var24;
1858 goto RET_LABEL22;
1859 RET_LABEL22:(void)0;
1860 }
1861 var20 = var21;
1862 }
1863 if (var20){
1864 var27 = !var_is_init;
1865 if (var27){
1866 if (likely(varonce!=NULL)) {
1867 var28 = varonce;
1868 } else {
1869 var29 = "main";
1870 var31 = (val*)(4l<<2|1);
1871 var32 = (val*)(4l<<2|1);
1872 var33 = (val*)((long)(0)<<2|3);
1873 var34 = (val*)((long)(0)<<2|3);
1874 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
1875 var28 = var30;
1876 varonce = var28;
1877 }
1878 var_name = var28;
1879 var_name_node = self;
1880 } else {
1881 if (var_n_kwinit == NULL) {
1882 var35 = 0; /* is null */
1883 } else {
1884 var35 = 1; /* arg is null and recv is not */
1885 }
1886 if (0) {
1887 { /* Inline kernel$Object$!= (var_n_kwinit,((val*)NULL)) on <var_n_kwinit:nullable TKwinit> */
1888 var_other = ((val*)NULL);
1889 {
1890 var38 = ((short int(*)(val* self, val* p0))(var_n_kwinit->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwinit, var_other); /* == on <var_n_kwinit:nullable TKwinit(TKwinit)>*/
1891 }
1892 var39 = !var38;
1893 var36 = var39;
1894 goto RET_LABEL37;
1895 RET_LABEL37:(void)0;
1896 }
1897 var35 = var36;
1898 }
1899 if (var35){
1900 if (likely(varonce40!=NULL)) {
1901 var41 = varonce40;
1902 } else {
1903 var42 = "init";
1904 var44 = (val*)(4l<<2|1);
1905 var45 = (val*)(4l<<2|1);
1906 var46 = (val*)((long)(0)<<2|3);
1907 var47 = (val*)((long)(0)<<2|3);
1908 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
1909 var41 = var43;
1910 varonce40 = var41;
1911 }
1912 var_name = var41;
1913 var_name_node = var_n_kwinit;
1914 } else {
1915 if (var_n_kwnew == NULL) {
1916 var48 = 0; /* is null */
1917 } else {
1918 var48 = 1; /* arg is null and recv is not */
1919 }
1920 if (0) {
1921 { /* Inline kernel$Object$!= (var_n_kwnew,((val*)NULL)) on <var_n_kwnew:nullable TKwnew> */
1922 var_other = ((val*)NULL);
1923 {
1924 var51 = ((short int(*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwnew, var_other); /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/
1925 }
1926 var52 = !var51;
1927 var49 = var52;
1928 goto RET_LABEL50;
1929 RET_LABEL50:(void)0;
1930 }
1931 var48 = var49;
1932 }
1933 if (var48){
1934 if (likely(varonce53!=NULL)) {
1935 var54 = varonce53;
1936 } else {
1937 var55 = "new";
1938 var57 = (val*)(3l<<2|1);
1939 var58 = (val*)(3l<<2|1);
1940 var59 = (val*)((long)(0)<<2|3);
1941 var60 = (val*)((long)(0)<<2|3);
1942 var56 = core__flat___CString___to_s_unsafe(var55, var57, var58, var59, var60);
1943 var54 = var56;
1944 varonce53 = var54;
1945 }
1946 var_name = var54;
1947 var_name_node = var_n_kwnew;
1948 } else {
1949 if(catchStack.cursor >= 0){
1950 longjmp(catchStack.envs[catchStack.cursor], 1);
1951 }
1952 PRINT_ERROR("Runtime error: %s", "Aborted");
1953 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 788);
1954 fatal_exit(1);
1955 }
1956 }
1957 }
1958 } else {
1959 /* <var_amethodid:nullable AMethid(AMethid)> isa AIdMethid */
1960 cltype = type_nitc__AIdMethid.color;
1961 idtype = type_nitc__AIdMethid.id;
1962 if(cltype >= var_amethodid->type->table_size) {
1963 var61 = 0;
1964 } else {
1965 var61 = var_amethodid->type->type_table[cltype] == idtype;
1966 }
1967 if (var61){
1968 {
1969 { /* Inline parser_nodes$AIdMethid$n_id (var_amethodid) on <var_amethodid:nullable AMethid(AIdMethid)> */
1970 var64 = var_amethodid->attrs[COLOR_nitc__parser_nodes__AIdMethid___n_id].val; /* _n_id on <var_amethodid:nullable AMethid(AIdMethid)> */
1971 if (unlikely(var64 == NULL)) {
1972 if(catchStack.cursor >= 0){
1973 longjmp(catchStack.envs[catchStack.cursor], 1);
1974 }
1975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1976 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1573);
1977 fatal_exit(1);
1978 }
1979 var62 = var64;
1980 RET_LABEL63:(void)0;
1981 }
1982 }
1983 {
1984 var65 = nitc__lexer_work___Token___text(var62);
1985 }
1986 var_name = var65;
1987 var_name_node = var_amethodid;
1988 } else {
1989 {
1990 var66 = nitc__parser_work___Prod___collect_text(var_amethodid);
1991 }
1992 var_name = var66;
1993 var_name_node = var_amethodid;
1994 {
1995 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
1996 var69 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
1997 var67 = var69;
1998 RET_LABEL68:(void)0;
1999 }
2000 }
2001 if (var67 == NULL) {
2002 if(catchStack.cursor >= 0){
2003 longjmp(catchStack.envs[catchStack.cursor], 1);
2004 }
2005 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2006 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 798);
2007 fatal_exit(1);
2008 } else {
2009 { /* Inline parser_nodes$ASignature$n_params (var67) on <var67:nullable ASignature> */
2010 if (unlikely(var67 == NULL)) {
2011 if(catchStack.cursor >= 0){
2012 longjmp(catchStack.envs[catchStack.cursor], 1);
2013 }
2014 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2015 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
2016 fatal_exit(1);
2017 }
2018 var72 = var67->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var67:nullable ASignature> */
2019 if (unlikely(var72 == NULL)) {
2020 if(catchStack.cursor >= 0){
2021 longjmp(catchStack.envs[catchStack.cursor], 1);
2022 }
2023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
2024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
2025 fatal_exit(1);
2026 }
2027 var70 = var72;
2028 RET_LABEL71:(void)0;
2029 }
2030 }
2031 {
2032 var73 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var70);
2033 }
2034 var_arity = var73;
2035 if (likely(varonce75!=NULL)) {
2036 var76 = varonce75;
2037 } else {
2038 var77 = "+";
2039 var79 = (val*)(1l<<2|1);
2040 var80 = (val*)(1l<<2|1);
2041 var81 = (val*)((long)(0)<<2|3);
2042 var82 = (val*)((long)(0)<<2|3);
2043 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
2044 var76 = var78;
2045 varonce75 = var76;
2046 }
2047 {
2048 var83 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_name, var76); /* == on <var_name:String>*/
2049 }
2050 var_84 = var83;
2051 if (var83){
2052 {
2053 { /* Inline kernel$Int$== (var_arity,0l) on <var_arity:Int> */
2054 var87 = var_arity == 0l;
2055 var85 = var87;
2056 goto RET_LABEL86;
2057 RET_LABEL86:(void)0;
2058 }
2059 }
2060 var74 = var85;
2061 } else {
2062 var74 = var_84;
2063 }
2064 if (var74){
2065 if (likely(varonce88!=NULL)) {
2066 var89 = varonce88;
2067 } else {
2068 var90 = "unary +";
2069 var92 = (val*)(7l<<2|1);
2070 var93 = (val*)(7l<<2|1);
2071 var94 = (val*)((long)(0)<<2|3);
2072 var95 = (val*)((long)(0)<<2|3);
2073 var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
2074 var89 = var91;
2075 varonce88 = var89;
2076 }
2077 var_name = var89;
2078 } else {
2079 if (likely(varonce97!=NULL)) {
2080 var98 = varonce97;
2081 } else {
2082 var99 = "-";
2083 var101 = (val*)(1l<<2|1);
2084 var102 = (val*)(1l<<2|1);
2085 var103 = (val*)((long)(0)<<2|3);
2086 var104 = (val*)((long)(0)<<2|3);
2087 var100 = core__flat___CString___to_s_unsafe(var99, var101, var102, var103, var104);
2088 var98 = var100;
2089 varonce97 = var98;
2090 }
2091 {
2092 var105 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_name, var98); /* == on <var_name:String>*/
2093 }
2094 var_106 = var105;
2095 if (var105){
2096 {
2097 { /* Inline kernel$Int$== (var_arity,0l) on <var_arity:Int> */
2098 var109 = var_arity == 0l;
2099 var107 = var109;
2100 goto RET_LABEL108;
2101 RET_LABEL108:(void)0;
2102 }
2103 }
2104 var96 = var107;
2105 } else {
2106 var96 = var_106;
2107 }
2108 if (var96){
2109 if (likely(varonce110!=NULL)) {
2110 var111 = varonce110;
2111 } else {
2112 var112 = "unary -";
2113 var114 = (val*)(7l<<2|1);
2114 var115 = (val*)(7l<<2|1);
2115 var116 = (val*)((long)(0)<<2|3);
2116 var117 = (val*)((long)(0)<<2|3);
2117 var113 = core__flat___CString___to_s_unsafe(var112, var114, var115, var116, var117);
2118 var111 = var113;
2119 varonce110 = var111;
2120 }
2121 var_name = var111;
2122 } else {
2123 if (likely(varonce119!=NULL)) {
2124 var120 = varonce119;
2125 } else {
2126 var121 = "~";
2127 var123 = (val*)(1l<<2|1);
2128 var124 = (val*)(1l<<2|1);
2129 var125 = (val*)((long)(0)<<2|3);
2130 var126 = (val*)((long)(0)<<2|3);
2131 var122 = core__flat___CString___to_s_unsafe(var121, var123, var124, var125, var126);
2132 var120 = var122;
2133 varonce119 = var120;
2134 }
2135 {
2136 var127 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_name, var120); /* == on <var_name:String>*/
2137 }
2138 var_128 = var127;
2139 if (var127){
2140 {
2141 { /* Inline kernel$Int$== (var_arity,0l) on <var_arity:Int> */
2142 var131 = var_arity == 0l;
2143 var129 = var131;
2144 goto RET_LABEL130;
2145 RET_LABEL130:(void)0;
2146 }
2147 }
2148 var118 = var129;
2149 } else {
2150 var118 = var_128;
2151 }
2152 if (var118){
2153 if (likely(varonce132!=NULL)) {
2154 var133 = varonce132;
2155 } else {
2156 var134 = "unary ~";
2157 var136 = (val*)(7l<<2|1);
2158 var137 = (val*)(7l<<2|1);
2159 var138 = (val*)((long)(0)<<2|3);
2160 var139 = (val*)((long)(0)<<2|3);
2161 var135 = core__flat___CString___to_s_unsafe(var134, var136, var137, var138, var139);
2162 var133 = var135;
2163 varonce132 = var133;
2164 }
2165 var_name = var133;
2166 } else {
2167 {
2168 var141 = ((short int(*)(val* self))(var_amethodid->class->vft[COLOR_nitc__modelize_property__AMethid__is_binary]))(var_amethodid); /* is_binary on <var_amethodid:nullable AMethid(AMethid)>*/
2169 }
2170 var_142 = var141;
2171 if (var141){
2172 {
2173 { /* Inline kernel$Int$!= (var_arity,1l) on <var_arity:Int> */
2174 var145 = var_arity == 1l;
2175 var146 = !var145;
2176 var143 = var146;
2177 goto RET_LABEL144;
2178 RET_LABEL144:(void)0;
2179 }
2180 }
2181 var140 = var143;
2182 } else {
2183 var140 = var_142;
2184 }
2185 if (var140){
2186 {
2187 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
2188 var149 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
2189 var147 = var149;
2190 RET_LABEL148:(void)0;
2191 }
2192 }
2193 if (unlikely(varonce150==NULL)) {
2194 var151 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2195 if (likely(varonce152!=NULL)) {
2196 var153 = varonce152;
2197 } else {
2198 var154 = "Syntax Error: binary operator `";
2199 var156 = (val*)(31l<<2|1);
2200 var157 = (val*)(31l<<2|1);
2201 var158 = (val*)((long)(0)<<2|3);
2202 var159 = (val*)((long)(0)<<2|3);
2203 var155 = core__flat___CString___to_s_unsafe(var154, var156, var157, var158, var159);
2204 var153 = var155;
2205 varonce152 = var153;
2206 }
2207 ((struct instance_core__NativeArray*)var151)->values[0]=var153;
2208 if (likely(varonce160!=NULL)) {
2209 var161 = varonce160;
2210 } else {
2211 var162 = "` requires exactly one parameter; got ";
2212 var164 = (val*)(38l<<2|1);
2213 var165 = (val*)(38l<<2|1);
2214 var166 = (val*)((long)(0)<<2|3);
2215 var167 = (val*)((long)(0)<<2|3);
2216 var163 = core__flat___CString___to_s_unsafe(var162, var164, var165, var166, var167);
2217 var161 = var163;
2218 varonce160 = var161;
2219 }
2220 ((struct instance_core__NativeArray*)var151)->values[2]=var161;
2221 if (likely(varonce168!=NULL)) {
2222 var169 = varonce168;
2223 } else {
2224 var170 = ".";
2225 var172 = (val*)(1l<<2|1);
2226 var173 = (val*)(1l<<2|1);
2227 var174 = (val*)((long)(0)<<2|3);
2228 var175 = (val*)((long)(0)<<2|3);
2229 var171 = core__flat___CString___to_s_unsafe(var170, var172, var173, var174, var175);
2230 var169 = var171;
2231 varonce168 = var169;
2232 }
2233 ((struct instance_core__NativeArray*)var151)->values[4]=var169;
2234 } else {
2235 var151 = varonce150;
2236 varonce150 = NULL;
2237 }
2238 ((struct instance_core__NativeArray*)var151)->values[1]=var_name;
2239 var176 = core__flat___Int___core__abstract_text__Object__to_s(var_arity);
2240 ((struct instance_core__NativeArray*)var151)->values[3]=var176;
2241 {
2242 var177 = ((val*(*)(val* self))(var151->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var151); /* native_to_s on <var151:NativeArray[String]>*/
2243 }
2244 varonce150 = var151;
2245 {
2246 nitc___nitc__ModelBuilder___error(var_modelbuilder, var147, var177); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
2247 }
2248 } else {
2249 {
2250 var178 = ((long(*)(val* self))(var_amethodid->class->vft[COLOR_nitc__modelize_property__AMethid__min_arity]))(var_amethodid); /* min_arity on <var_amethodid:nullable AMethid(AMethid)>*/
2251 }
2252 {
2253 { /* Inline kernel$Int$> (var178,var_arity) on <var178:Int> */
2254 /* Covariant cast for argument 0 (i) <var_arity:Int> isa OTHER */
2255 /* <var_arity:Int> isa OTHER */
2256 var181 = 1; /* easy <var_arity:Int> isa OTHER*/
2257 if (unlikely(!var181)) {
2258 var_class_name = type_core__Int.name;
2259 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2260 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2261 fatal_exit(1);
2262 }
2263 var184 = var178 > var_arity;
2264 var179 = var184;
2265 goto RET_LABEL180;
2266 RET_LABEL180:(void)0;
2267 }
2268 }
2269 if (var179){
2270 {
2271 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
2272 var187 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
2273 var185 = var187;
2274 RET_LABEL186:(void)0;
2275 }
2276 }
2277 if (unlikely(varonce188==NULL)) {
2278 var189 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
2279 if (likely(varonce190!=NULL)) {
2280 var191 = varonce190;
2281 } else {
2282 var192 = "Syntax Error: `";
2283 var194 = (val*)(15l<<2|1);
2284 var195 = (val*)(15l<<2|1);
2285 var196 = (val*)((long)(0)<<2|3);
2286 var197 = (val*)((long)(0)<<2|3);
2287 var193 = core__flat___CString___to_s_unsafe(var192, var194, var195, var196, var197);
2288 var191 = var193;
2289 varonce190 = var191;
2290 }
2291 ((struct instance_core__NativeArray*)var189)->values[0]=var191;
2292 if (likely(varonce198!=NULL)) {
2293 var199 = varonce198;
2294 } else {
2295 var200 = "` requires at least ";
2296 var202 = (val*)(20l<<2|1);
2297 var203 = (val*)(20l<<2|1);
2298 var204 = (val*)((long)(0)<<2|3);
2299 var205 = (val*)((long)(0)<<2|3);
2300 var201 = core__flat___CString___to_s_unsafe(var200, var202, var203, var204, var205);
2301 var199 = var201;
2302 varonce198 = var199;
2303 }
2304 ((struct instance_core__NativeArray*)var189)->values[2]=var199;
2305 if (likely(varonce206!=NULL)) {
2306 var207 = varonce206;
2307 } else {
2308 var208 = " parameter(s); got ";
2309 var210 = (val*)(19l<<2|1);
2310 var211 = (val*)(19l<<2|1);
2311 var212 = (val*)((long)(0)<<2|3);
2312 var213 = (val*)((long)(0)<<2|3);
2313 var209 = core__flat___CString___to_s_unsafe(var208, var210, var211, var212, var213);
2314 var207 = var209;
2315 varonce206 = var207;
2316 }
2317 ((struct instance_core__NativeArray*)var189)->values[4]=var207;
2318 if (likely(varonce214!=NULL)) {
2319 var215 = varonce214;
2320 } else {
2321 var216 = ".";
2322 var218 = (val*)(1l<<2|1);
2323 var219 = (val*)(1l<<2|1);
2324 var220 = (val*)((long)(0)<<2|3);
2325 var221 = (val*)((long)(0)<<2|3);
2326 var217 = core__flat___CString___to_s_unsafe(var216, var218, var219, var220, var221);
2327 var215 = var217;
2328 varonce214 = var215;
2329 }
2330 ((struct instance_core__NativeArray*)var189)->values[6]=var215;
2331 } else {
2332 var189 = varonce188;
2333 varonce188 = NULL;
2334 }
2335 ((struct instance_core__NativeArray*)var189)->values[1]=var_name;
2336 {
2337 var222 = ((long(*)(val* self))(var_amethodid->class->vft[COLOR_nitc__modelize_property__AMethid__min_arity]))(var_amethodid); /* min_arity on <var_amethodid:nullable AMethid(AMethid)>*/
2338 }
2339 var223 = core__flat___Int___core__abstract_text__Object__to_s(var222);
2340 ((struct instance_core__NativeArray*)var189)->values[3]=var223;
2341 var224 = core__flat___Int___core__abstract_text__Object__to_s(var_arity);
2342 ((struct instance_core__NativeArray*)var189)->values[5]=var224;
2343 {
2344 var225 = ((val*(*)(val* self))(var189->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var189); /* native_to_s on <var189:NativeArray[String]>*/
2345 }
2346 varonce188 = var189;
2347 {
2348 nitc___nitc__ModelBuilder___error(var_modelbuilder, var185, var225); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
2349 }
2350 } else {
2351 }
2352 }
2353 }
2354 }
2355 }
2356 }
2357 }
2358 {
2359 var226 = nitc__modelize_property___AMethPropdef___look_like_a_root_init(self, var_modelbuilder, var_mclassdef);
2360 }
2361 var_look_like_a_root_init = var226;
2362 var_mprop = ((val*)NULL);
2363 var228 = !var_is_init;
2364 var_229 = var228;
2365 if (var228){
2366 var227 = var_229;
2367 } else {
2368 {
2369 { /* Inline parser_nodes$ADefinition$n_kwredef (self) on <self:AMethPropdef> */
2370 var232 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
2371 var230 = var232;
2372 RET_LABEL231:(void)0;
2373 }
2374 }
2375 if (var230 == NULL) {
2376 var233 = 0; /* is null */
2377 } else {
2378 var233 = 1; /* arg is null and recv is not */
2379 }
2380 if (0) {
2381 { /* Inline kernel$Object$!= (var230,((val*)NULL)) on <var230:nullable TKwredef> */
2382 var_other = ((val*)NULL);
2383 {
2384 var236 = ((short int(*)(val* self, val* p0))(var230->class->vft[COLOR_core__kernel__Object___61d_61d]))(var230, var_other); /* == on <var230:nullable TKwredef(TKwredef)>*/
2385 }
2386 var237 = !var236;
2387 var234 = var237;
2388 goto RET_LABEL235;
2389 RET_LABEL235:(void)0;
2390 }
2391 var233 = var234;
2392 }
2393 var227 = var233;
2394 }
2395 if (var227){
2396 {
2397 var238 = nitc___nitc__ModelBuilder___try_get_mproperty_by_name(var_modelbuilder, var_name_node, var_mclassdef, var_name);
2398 }
2399 /* <var238:nullable MProperty> isa nullable MMethod */
2400 cltype240 = type_nullable__nitc__MMethod.color;
2401 idtype241 = type_nullable__nitc__MMethod.id;
2402 if(var238 == NULL) {
2403 var239 = 1;
2404 } else {
2405 if(cltype240 >= var238->type->table_size) {
2406 var239 = 0;
2407 } else {
2408 var239 = var238->type->type_table[cltype240] == idtype241;
2409 }
2410 }
2411 if (unlikely(!var239)) {
2412 var_class_name242 = var238 == NULL ? "null" : var238->type->name;
2413 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name242);
2414 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 816);
2415 fatal_exit(1);
2416 }
2417 var_mprop = var238;
2418 } else {
2419 }
2420 if (var_mprop == NULL) {
2421 var244 = 1; /* is null */
2422 } else {
2423 var244 = 0; /* arg is null but recv is not */
2424 }
2425 if (0) {
2426 { /* Inline kernel$Object$== (var_mprop,((val*)NULL)) on <var_mprop:nullable MMethod> */
2427 var_other23 = ((val*)NULL);
2428 {
2429 { /* Inline kernel$Object$is_same_instance (var_mprop,var_other23) on <var_mprop:nullable MMethod(MMethod)> */
2430 var249 = var_mprop == var_other23;
2431 var247 = var249;
2432 goto RET_LABEL248;
2433 RET_LABEL248:(void)0;
2434 }
2435 }
2436 var245 = var247;
2437 goto RET_LABEL246;
2438 RET_LABEL246:(void)0;
2439 }
2440 var244 = var245;
2441 }
2442 var_250 = var244;
2443 if (var244){
2444 var243 = var_look_like_a_root_init;
2445 } else {
2446 var243 = var_250;
2447 }
2448 if (var243){
2449 {
2450 { /* Inline modelize_property$ModelBuilder$the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2451 var253 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
2452 var251 = var253;
2453 RET_LABEL252:(void)0;
2454 }
2455 }
2456 var_mprop = var251;
2457 {
2458 { /* Inline parser_nodes$AMethPropdef$n_block (self) on <self:AMethPropdef> */
2459 var256 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
2460 var254 = var256;
2461 RET_LABEL255:(void)0;
2462 }
2463 }
2464 var_nb = var254;
2465 /* <var_nb:nullable AExpr> isa ABlockExpr */
2466 cltype260 = type_nitc__ABlockExpr.color;
2467 idtype261 = type_nitc__ABlockExpr.id;
2468 if(var_nb == NULL) {
2469 var259 = 0;
2470 } else {
2471 if(cltype260 >= var_nb->type->table_size) {
2472 var259 = 0;
2473 } else {
2474 var259 = var_nb->type->type_table[cltype260] == idtype261;
2475 }
2476 }
2477 var_262 = var259;
2478 if (var259){
2479 {
2480 { /* Inline parser_nodes$ABlockExpr$n_expr (var_nb) on <var_nb:nullable AExpr(ABlockExpr)> */
2481 var265 = var_nb->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <var_nb:nullable AExpr(ABlockExpr)> */
2482 if (unlikely(var265 == NULL)) {
2483 if(catchStack.cursor >= 0){
2484 longjmp(catchStack.envs[catchStack.cursor], 1);
2485 }
2486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
2488 fatal_exit(1);
2489 }
2490 var263 = var265;
2491 RET_LABEL264:(void)0;
2492 }
2493 }
2494 {
2495 var266 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var263);
2496 }
2497 var258 = var266;
2498 } else {
2499 var258 = var_262;
2500 }
2501 var_267 = var258;
2502 if (var258){
2503 {
2504 { /* Inline parser_nodes$ADefinition$n_doc (self) on <self:AMethPropdef> */
2505 var270 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AMethPropdef> */
2506 var268 = var270;
2507 RET_LABEL269:(void)0;
2508 }
2509 }
2510 if (var268 == NULL) {
2511 var271 = 1; /* is null */
2512 } else {
2513 var271 = 0; /* arg is null but recv is not */
2514 }
2515 if (0) {
2516 { /* Inline kernel$Object$== (var268,((val*)NULL)) on <var268:nullable ADoc> */
2517 var_other23 = ((val*)NULL);
2518 {
2519 { /* Inline kernel$Object$is_same_instance (var268,var_other23) on <var268:nullable ADoc(ADoc)> */
2520 var276 = var268 == var_other23;
2521 var274 = var276;
2522 goto RET_LABEL275;
2523 RET_LABEL275:(void)0;
2524 }
2525 }
2526 var272 = var274;
2527 goto RET_LABEL273;
2528 RET_LABEL273:(void)0;
2529 }
2530 var271 = var272;
2531 }
2532 var257 = var271;
2533 } else {
2534 var257 = var_267;
2535 }
2536 if (var257){
2537 if (likely(varonce277!=NULL)) {
2538 var278 = varonce277;
2539 } else {
2540 var279 = "useless-init";
2541 var281 = (val*)(12l<<2|1);
2542 var282 = (val*)(12l<<2|1);
2543 var283 = (val*)((long)(0)<<2|3);
2544 var284 = (val*)((long)(0)<<2|3);
2545 var280 = core__flat___CString___to_s_unsafe(var279, var281, var282, var283, var284);
2546 var278 = var280;
2547 varonce277 = var278;
2548 }
2549 if (unlikely(varonce285==NULL)) {
2550 var286 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
2551 if (likely(varonce287!=NULL)) {
2552 var288 = varonce287;
2553 } else {
2554 var289 = "Warning: useless empty init in ";
2555 var291 = (val*)(31l<<2|1);
2556 var292 = (val*)(31l<<2|1);
2557 var293 = (val*)((long)(0)<<2|3);
2558 var294 = (val*)((long)(0)<<2|3);
2559 var290 = core__flat___CString___to_s_unsafe(var289, var291, var292, var293, var294);
2560 var288 = var290;
2561 varonce287 = var288;
2562 }
2563 ((struct instance_core__NativeArray*)var286)->values[0]=var288;
2564 } else {
2565 var286 = varonce285;
2566 varonce285 = NULL;
2567 }
2568 {
2569 var295 = ((val*(*)(val* self))(var_mclassdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclassdef); /* to_s on <var_mclassdef:MClassDef>*/
2570 }
2571 ((struct instance_core__NativeArray*)var286)->values[1]=var295;
2572 {
2573 var296 = ((val*(*)(val* self))(var286->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var286); /* native_to_s on <var286:NativeArray[String]>*/
2574 }
2575 varonce285 = var286;
2576 {
2577 nitc___nitc__ModelBuilder___advice(var_modelbuilder, self, var278, var296); /* Direct call modelbuilder_base$ModelBuilder$advice on <var_modelbuilder:ModelBuilder>*/
2578 }
2579 } else {
2580 }
2581 } else {
2582 }
2583 if (var_mprop == NULL) {
2584 var297 = 1; /* is null */
2585 } else {
2586 var297 = 0; /* arg is null but recv is not */
2587 }
2588 if (0) {
2589 { /* Inline kernel$Object$== (var_mprop,((val*)NULL)) on <var_mprop:nullable MMethod> */
2590 var_other23 = ((val*)NULL);
2591 {
2592 { /* Inline kernel$Object$is_same_instance (var_mprop,var_other23) on <var_mprop:nullable MMethod(MMethod)> */
2593 var302 = var_mprop == var_other23;
2594 var300 = var302;
2595 goto RET_LABEL301;
2596 RET_LABEL301:(void)0;
2597 }
2598 }
2599 var298 = var300;
2600 goto RET_LABEL299;
2601 RET_LABEL299:(void)0;
2602 }
2603 var297 = var298;
2604 }
2605 if (var297){
2606 {
2607 { /* Inline parser_nodes$ADefinition$n_visibility (self) on <self:AMethPropdef> */
2608 var305 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
2609 var303 = var305;
2610 RET_LABEL304:(void)0;
2611 }
2612 }
2613 {
2614 var306 = nitc__modelize_property___APropdef___new_property_visibility(self, var_modelbuilder, var_mclassdef, var303);
2615 }
2616 var_mvisibility = var306;
2617 var307 = NEW_nitc__MMethod(&type_nitc__MMethod);
2618 {
2619 { /* Inline parser_nodes$ANode$location (self) on <self:AMethPropdef> */
2620 var310 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:AMethPropdef> */
2621 if (unlikely(var310 == NULL)) {
2622 if(catchStack.cursor >= 0){
2623 longjmp(catchStack.envs[catchStack.cursor], 1);
2624 }
2625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2626 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
2627 fatal_exit(1);
2628 }
2629 var308 = var310;
2630 RET_LABEL309:(void)0;
2631 }
2632 }
2633 {
2634 ((void(*)(val* self, val* p0))(var307->class->vft[COLOR_nitc__model__MProperty__intro_mclassdef_61d]))(var307, var_mclassdef); /* intro_mclassdef= on <var307:MMethod>*/
2635 }
2636 {
2637 ((void(*)(val* self, val* p0))(var307->class->vft[COLOR_nitc__model__MProperty__name_61d]))(var307, var_name); /* name= on <var307:MMethod>*/
2638 }
2639 {
2640 ((void(*)(val* self, val* p0))(var307->class->vft[COLOR_nitc__model__MProperty__location_61d]))(var307, var308); /* location= on <var307:MMethod>*/
2641 }
2642 {
2643 ((void(*)(val* self, val* p0))(var307->class->vft[COLOR_nitc__model__MProperty__visibility_61d]))(var307, var_mvisibility); /* visibility= on <var307:MMethod>*/
2644 }
2645 {
2646 ((void(*)(val* self))(var307->class->vft[COLOR_core__kernel__Object__init]))(var307); /* init on <var307:MMethod>*/
2647 }
2648 var_mprop = var307;
2649 var_312 = var_look_like_a_root_init;
2650 if (var_look_like_a_root_init){
2651 {
2652 { /* Inline modelize_property$ModelBuilder$the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2653 var315 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
2654 var313 = var315;
2655 RET_LABEL314:(void)0;
2656 }
2657 }
2658 if (var313 == NULL) {
2659 var316 = 1; /* is null */
2660 } else {
2661 var316 = 0; /* arg is null but recv is not */
2662 }
2663 if (0) {
2664 { /* Inline kernel$Object$== (var313,((val*)NULL)) on <var313:nullable MMethod> */
2665 var_other23 = ((val*)NULL);
2666 {
2667 { /* Inline kernel$Object$is_same_instance (var313,var_other23) on <var313:nullable MMethod(MMethod)> */
2668 var321 = var313 == var_other23;
2669 var319 = var321;
2670 goto RET_LABEL320;
2671 RET_LABEL320:(void)0;
2672 }
2673 }
2674 var317 = var319;
2675 goto RET_LABEL318;
2676 RET_LABEL318:(void)0;
2677 }
2678 var316 = var317;
2679 }
2680 var311 = var316;
2681 } else {
2682 var311 = var_312;
2683 }
2684 if (var311){
2685 {
2686 { /* Inline modelize_property$ModelBuilder$the_root_init_mmethod= (var_modelbuilder,var_mprop) on <var_modelbuilder:ModelBuilder> */
2687 var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___the_root_init_mmethod].val = var_mprop; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
2688 RET_LABEL322:(void)0;
2689 }
2690 }
2691 {
2692 { /* Inline model$MMethod$is_root_init= (var_mprop,1) on <var_mprop:nullable MMethod(MMethod)> */
2693 var_mprop->attrs[COLOR_nitc__model__MMethod___is_root_init].s = 1; /* _is_root_init on <var_mprop:nullable MMethod(MMethod)> */
2694 RET_LABEL323:(void)0;
2695 }
2696 }
2697 } else {
2698 }
2699 {
2700 { /* Inline model$MMethod$is_init= (var_mprop,var_is_init) on <var_mprop:nullable MMethod(MMethod)> */
2701 var_mprop->attrs[COLOR_nitc__model__MMethod___is_init].s = var_is_init; /* _is_init on <var_mprop:nullable MMethod(MMethod)> */
2702 RET_LABEL324:(void)0;
2703 }
2704 }
2705 if (var_n_kwnew == NULL) {
2706 var325 = 0; /* is null */
2707 } else {
2708 var325 = 1; /* arg is null and recv is not */
2709 }
2710 if (0) {
2711 { /* Inline kernel$Object$!= (var_n_kwnew,((val*)NULL)) on <var_n_kwnew:nullable TKwnew> */
2712 var_other = ((val*)NULL);
2713 {
2714 var328 = ((short int(*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwnew, var_other); /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/
2715 }
2716 var329 = !var328;
2717 var326 = var329;
2718 goto RET_LABEL327;
2719 RET_LABEL327:(void)0;
2720 }
2721 var325 = var326;
2722 }
2723 {
2724 { /* Inline model$MMethod$is_new= (var_mprop,var325) on <var_mprop:nullable MMethod(MMethod)> */
2725 var_mprop->attrs[COLOR_nitc__model__MMethod___is_new].s = var325; /* _is_new on <var_mprop:nullable MMethod(MMethod)> */
2726 RET_LABEL330:(void)0;
2727 }
2728 }
2729 {
2730 { /* Inline model$MMethod$is_new (var_mprop) on <var_mprop:nullable MMethod(MMethod)> */
2731 var333 = var_mprop->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var_mprop:nullable MMethod(MMethod)> */
2732 var331 = var333;
2733 RET_LABEL332:(void)0;
2734 }
2735 }
2736 if (var331){
2737 {
2738 { /* Inline model$MClassDef$mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
2739 var336 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
2740 if (unlikely(var336 == NULL)) {
2741 if(catchStack.cursor >= 0){
2742 longjmp(catchStack.envs[catchStack.cursor], 1);
2743 }
2744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2745 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
2746 fatal_exit(1);
2747 }
2748 var334 = var336;
2749 RET_LABEL335:(void)0;
2750 }
2751 }
2752 {
2753 { /* Inline model$MClass$has_new_factory= (var334,1) on <var334:MClass> */
2754 var334->attrs[COLOR_nitc__model__MClass___has_new_factory].s = 1; /* _has_new_factory on <var334:MClass> */
2755 RET_LABEL337:(void)0;
2756 }
2757 }
2758 } else {
2759 }
2760 if (likely(varonce338!=NULL)) {
2761 var339 = varonce338;
2762 } else {
2763 var340 = "sys";
2764 var342 = (val*)(3l<<2|1);
2765 var343 = (val*)(3l<<2|1);
2766 var344 = (val*)((long)(0)<<2|3);
2767 var345 = (val*)((long)(0)<<2|3);
2768 var341 = core__flat___CString___to_s_unsafe(var340, var342, var343, var344, var345);
2769 var339 = var341;
2770 varonce338 = var339;
2771 }
2772 {
2773 var346 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_name, var339); /* == on <var_name:String>*/
2774 }
2775 if (var346){
2776 {
2777 { /* Inline model$MMethod$is_toplevel= (var_mprop,1) on <var_mprop:nullable MMethod(MMethod)> */
2778 var_mprop->attrs[COLOR_nitc__model__MMethod___is_toplevel].s = 1; /* _is_toplevel on <var_mprop:nullable MMethod(MMethod)> */
2779 RET_LABEL347:(void)0;
2780 }
2781 }
2782 } else {
2783 }
2784 {
2785 { /* Inline parser_nodes$ADefinition$n_kwredef (self) on <self:AMethPropdef> */
2786 var350 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
2787 var348 = var350;
2788 RET_LABEL349:(void)0;
2789 }
2790 }
2791 {
2792 var351 = nitc__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var348, 0, var_mprop);
2793 }
2794 var352 = !var351;
2795 if (var352){
2796 {
2797 { /* Inline model_base$MEntity$is_broken= (var_mprop,1) on <var_mprop:nullable MMethod(MMethod)> */
2798 var_mprop->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mprop:nullable MMethod(MMethod)> */
2799 RET_LABEL353:(void)0;
2800 }
2801 }
2802 goto RET_LABEL;
2803 } else {
2804 }
2805 } else {
2806 {
2807 { /* Inline model_base$MEntity$is_broken (var_mprop) on <var_mprop:nullable MMethod(MMethod)> */
2808 var356 = var_mprop->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_mprop:nullable MMethod(MMethod)> */
2809 var354 = var356;
2810 RET_LABEL355:(void)0;
2811 }
2812 }
2813 if (var354){
2814 goto RET_LABEL;
2815 } else {
2816 }
2817 {
2818 { /* Inline parser_nodes$ADefinition$n_kwredef (self) on <self:AMethPropdef> */
2819 var359 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
2820 var357 = var359;
2821 RET_LABEL358:(void)0;
2822 }
2823 }
2824 /* <self:AMethPropdef> isa AMainMethPropdef */
2825 cltype361 = type_nitc__AMainMethPropdef.color;
2826 idtype362 = type_nitc__AMainMethPropdef.id;
2827 if(cltype361 >= self->type->table_size) {
2828 var360 = 0;
2829 } else {
2830 var360 = self->type->type_table[cltype361] == idtype362;
2831 }
2832 var363 = !var360;
2833 {
2834 var364 = nitc__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var357, var363, var_mprop);
2835 }
2836 var365 = !var364;
2837 if (var365){
2838 goto RET_LABEL;
2839 } else {
2840 }
2841 {
2842 { /* Inline parser_nodes$ADefinition$n_visibility (self) on <self:AMethPropdef> */
2843 var368 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
2844 var366 = var368;
2845 RET_LABEL367:(void)0;
2846 }
2847 }
2848 {
2849 nitc__modelize_property___APropdef___check_redef_property_visibility(self, var_modelbuilder, var366, var_mprop); /* Direct call modelize_property$APropdef$check_redef_property_visibility on <self:AMethPropdef>*/
2850 }
2851 }
2852 if (var_is_init){
2853 {
2854 { /* Inline modelize_property$MClassDef$mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
2855 var371 = var_mclassdef->attrs[COLOR_nitc__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
2856 if (unlikely(var371 == NULL)) {
2857 if(catchStack.cursor >= 0){
2858 longjmp(catchStack.envs[catchStack.cursor], 1);
2859 }
2860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
2861 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 504);
2862 fatal_exit(1);
2863 }
2864 var369 = var371;
2865 RET_LABEL370:(void)0;
2866 }
2867 }
2868 var_372 = var369;
2869 {
2870 var373 = ((val*(*)(val* self))((((long)var_372&3)?class_info[((long)var_372&3)]:var_372->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_372); /* iterator on <var_372:Map[MProperty, APropdef]>*/
2871 }
2872 var_374 = var373;
2873 for(;;) {
2874 {
2875 var375 = ((short int(*)(val* self))((((long)var_374&3)?class_info[((long)var_374&3)]:var_374->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_374); /* is_ok on <var_374:MapIterator[MProperty, APropdef]>*/
2876 }
2877 if (var375){
2878 } else {
2879 goto BREAK_label;
2880 }
2881 {
2882 var376 = ((val*(*)(val* self))((((long)var_374&3)?class_info[((long)var_374&3)]:var_374->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_374); /* key on <var_374:MapIterator[MProperty, APropdef]>*/
2883 }
2884 var_p = var376;
2885 {
2886 var377 = ((val*(*)(val* self))((((long)var_374&3)?class_info[((long)var_374&3)]:var_374->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_374); /* item on <var_374:MapIterator[MProperty, APropdef]>*/
2887 }
2888 var_n = var377;
2889 {
2890 { /* Inline kernel$Object$!= (var_p,var_mprop) on <var_p:MProperty> */
2891 var_other = var_mprop;
2892 {
2893 var382 = ((short int(*)(val* self, val* p0))(var_p->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_p, var_other); /* == on <var_p:MProperty>*/
2894 }
2895 var383 = !var382;
2896 var380 = var383;
2897 goto RET_LABEL381;
2898 RET_LABEL381:(void)0;
2899 }
2900 }
2901 var_384 = var380;
2902 if (var380){
2903 /* <var_p:MProperty> isa MMethod */
2904 cltype386 = type_nitc__MMethod.color;
2905 idtype387 = type_nitc__MMethod.id;
2906 if(cltype386 >= var_p->type->table_size) {
2907 var385 = 0;
2908 } else {
2909 var385 = var_p->type->type_table[cltype386] == idtype387;
2910 }
2911 var379 = var385;
2912 } else {
2913 var379 = var_384;
2914 }
2915 var_388 = var379;
2916 if (var379){
2917 {
2918 { /* Inline model$MProperty$name (var_p) on <var_p:MProperty(MMethod)> */
2919 var391 = var_p->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var_p:MProperty(MMethod)> */
2920 if (unlikely(var391 == NULL)) {
2921 if(catchStack.cursor >= 0){
2922 longjmp(catchStack.envs[catchStack.cursor], 1);
2923 }
2924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2925 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
2926 fatal_exit(1);
2927 }
2928 var389 = var391;
2929 RET_LABEL390:(void)0;
2930 }
2931 }
2932 {
2933 var392 = ((short int(*)(val* self, val* p0))(var389->class->vft[COLOR_core__kernel__Object___61d_61d]))(var389, var_name); /* == on <var389:String>*/
2934 }
2935 var378 = var392;
2936 } else {
2937 var378 = var_388;
2938 }
2939 if (var378){
2940 {
2941 { /* Inline parser_nodes$ADefinition$n_kwredef (self) on <self:AMethPropdef> */
2942 var395 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
2943 var393 = var395;
2944 RET_LABEL394:(void)0;
2945 }
2946 }
2947 {
2948 var396 = nitc__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var393, 0, var_p);
2949 }
2950 var397 = !var396;
2951 if (var397){
2952 {
2953 { /* Inline model_base$MEntity$is_broken= (var_mprop,1) on <var_mprop:nullable MMethod(MMethod)> */
2954 var_mprop->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mprop:nullable MMethod(MMethod)> */
2955 RET_LABEL398:(void)0;
2956 }
2957 }
2958 goto RET_LABEL;
2959 } else {
2960 }
2961 goto BREAK_label;
2962 } else {
2963 }
2964 {
2965 ((void(*)(val* self))((((long)var_374&3)?class_info[((long)var_374&3)]:var_374->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_374); /* next on <var_374:MapIterator[MProperty, APropdef]>*/
2966 }
2967 }
2968 BREAK_label: (void)0;
2969 {
2970 { /* Inline abstract_collection$MapIterator$finish (var_374) on <var_374:MapIterator[MProperty, APropdef]> */
2971 RET_LABEL399:(void)0;
2972 }
2973 }
2974 } else {
2975 }
2976 {
2977 { /* Inline modelize_property$MClassDef$mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
2978 var402 = var_mclassdef->attrs[COLOR_nitc__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
2979 if (unlikely(var402 == NULL)) {
2980 if(catchStack.cursor >= 0){
2981 longjmp(catchStack.envs[catchStack.cursor], 1);
2982 }
2983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
2984 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 504);
2985 fatal_exit(1);
2986 }
2987 var400 = var402;
2988 RET_LABEL401:(void)0;
2989 }
2990 }
2991 {
2992 ((void(*)(val* self, val* p0, val* p1))((((long)var400&3)?class_info[((long)var400&3)]:var400->class)->vft[COLOR_core__abstract_collection__Map___91d_93d_61d]))(var400, var_mprop, self); /* []= on <var400:Map[MProperty, APropdef]>*/
2993 }
2994 var403 = NEW_nitc__MMethodDef(&type_nitc__MMethodDef);
2995 {
2996 { /* Inline parser_nodes$ANode$location (self) on <self:AMethPropdef> */
2997 var406 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:AMethPropdef> */
2998 if (unlikely(var406 == NULL)) {
2999 if(catchStack.cursor >= 0){
3000 longjmp(catchStack.envs[catchStack.cursor], 1);
3001 }
3002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
3003 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
3004 fatal_exit(1);
3005 }
3006 var404 = var406;
3007 RET_LABEL405:(void)0;
3008 }
3009 }
3010 {
3011 ((void(*)(val* self, val* p0))(var403->class->vft[COLOR_nitc__model__MPropDef__mclassdef_61d]))(var403, var_mclassdef); /* mclassdef= on <var403:MMethodDef>*/
3012 }
3013 {
3014 ((void(*)(val* self, val* p0))(var403->class->vft[COLOR_nitc__model__MPropDef__mproperty_61d]))(var403, var_mprop); /* mproperty= on <var403:MMethodDef>*/
3015 }
3016 {
3017 ((void(*)(val* self, val* p0))(var403->class->vft[COLOR_nitc__model__MPropDef__location_61d]))(var403, var404); /* location= on <var403:MMethodDef>*/
3018 }
3019 {
3020 ((void(*)(val* self))(var403->class->vft[COLOR_core__kernel__Object__init]))(var403); /* init on <var403:MMethodDef>*/
3021 }
3022 var_mpropdef = var403;
3023 {
3024 nitc__modelize_property___APropdef___set_doc(self, var_mpropdef, var_modelbuilder); /* Direct call modelize_property$APropdef$set_doc on <self:AMethPropdef>*/
3025 }
3026 /* <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
3027 type_struct = self->type->resolution_table->types[COLOR_nullable__nitc__modelize_property__APropdef__MPROPDEF];
3028 cltype408 = type_struct->color;
3029 idtype409 = type_struct->id;
3030 if(cltype408 >= var_mpropdef->type->table_size) {
3031 var407 = 0;
3032 } else {
3033 var407 = var_mpropdef->type->type_table[cltype408] == idtype409;
3034 }
3035 if (unlikely(!var407)) {
3036 var_class_name410 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
3037 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name410);
3038 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 864);
3039 fatal_exit(1);
3040 }
3041 {
3042 { /* Inline modelize_property$APropdef$mpropdef= (self,var_mpropdef) on <self:AMethPropdef> */
3043 /* Covariant cast for argument 0 (mpropdef) <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
3044 /* <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
3045 type_struct415 = self->type->resolution_table->types[COLOR_nullable__nitc__modelize_property__APropdef__MPROPDEF];
3046 cltype413 = type_struct415->color;
3047 idtype414 = type_struct415->id;
3048 if(cltype413 >= var_mpropdef->type->table_size) {
3049 var412 = 0;
3050 } else {
3051 var412 = var_mpropdef->type->type_table[cltype413] == idtype414;
3052 }
3053 if (unlikely(!var412)) {
3054 var_class_name416 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
3055 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name416);
3056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 557);
3057 fatal_exit(1);
3058 }
3059 self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val = var_mpropdef; /* _mpropdef on <self:AMethPropdef> */
3060 RET_LABEL411:(void)0;
3061 }
3062 }
3063 {
3064 { /* Inline modelize_property$ModelBuilder$mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
3065 var419 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
3066 if (unlikely(var419 == NULL)) {
3067 if(catchStack.cursor >= 0){
3068 longjmp(catchStack.envs[catchStack.cursor], 1);
3069 }
3070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
3071 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 40);
3072 fatal_exit(1);
3073 }
3074 var417 = var419;
3075 RET_LABEL418:(void)0;
3076 }
3077 }
3078 {
3079 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var417, var_mpropdef, self); /* Direct call hash_collection$HashMap$[]= on <var417:HashMap[MPropDef, APropdef]>*/
3080 }
3081 {
3082 var420 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
3083 }
3084 if (var420){
3085 {
3086 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
3087 var423 = var_modelbuilder->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
3088 if (unlikely(var423 == NULL)) {
3089 if(catchStack.cursor >= 0){
3090 longjmp(catchStack.envs[catchStack.cursor], 1);
3091 }
3092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3093 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
3094 fatal_exit(1);
3095 }
3096 var421 = var423;
3097 RET_LABEL422:(void)0;
3098 }
3099 }
3100 if (unlikely(varonce424==NULL)) {
3101 var425 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3102 if (likely(varonce426!=NULL)) {
3103 var427 = varonce426;
3104 } else {
3105 var428 = " introduces new method ";
3106 var430 = (val*)(23l<<2|1);
3107 var431 = (val*)(23l<<2|1);
3108 var432 = (val*)((long)(0)<<2|3);
3109 var433 = (val*)((long)(0)<<2|3);
3110 var429 = core__flat___CString___to_s_unsafe(var428, var430, var431, var432, var433);
3111 var427 = var429;
3112 varonce426 = var427;
3113 }
3114 ((struct instance_core__NativeArray*)var425)->values[1]=var427;
3115 } else {
3116 var425 = varonce424;
3117 varonce424 = NULL;
3118 }
3119 {
3120 var434 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MMethodDef>*/
3121 }
3122 ((struct instance_core__NativeArray*)var425)->values[0]=var434;
3123 {
3124 var435 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mprop);
3125 }
3126 ((struct instance_core__NativeArray*)var425)->values[2]=var435;
3127 {
3128 var436 = ((val*(*)(val* self))(var425->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var425); /* native_to_s on <var425:NativeArray[String]>*/
3129 }
3130 varonce424 = var425;
3131 {
3132 nitc___nitc__ToolContext___info(var421, var436, 4l); /* Direct call toolcontext$ToolContext$info on <var421:ToolContext>*/
3133 }
3134 } else {
3135 {
3136 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
3137 var439 = var_modelbuilder->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
3138 if (unlikely(var439 == NULL)) {
3139 if(catchStack.cursor >= 0){
3140 longjmp(catchStack.envs[catchStack.cursor], 1);
3141 }
3142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3143 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
3144 fatal_exit(1);
3145 }
3146 var437 = var439;
3147 RET_LABEL438:(void)0;
3148 }
3149 }
3150 if (unlikely(varonce440==NULL)) {
3151 var441 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3152 if (likely(varonce442!=NULL)) {
3153 var443 = varonce442;
3154 } else {
3155 var444 = " redefines method ";
3156 var446 = (val*)(18l<<2|1);
3157 var447 = (val*)(18l<<2|1);
3158 var448 = (val*)((long)(0)<<2|3);
3159 var449 = (val*)((long)(0)<<2|3);
3160 var445 = core__flat___CString___to_s_unsafe(var444, var446, var447, var448, var449);
3161 var443 = var445;
3162 varonce442 = var443;
3163 }
3164 ((struct instance_core__NativeArray*)var441)->values[1]=var443;
3165 } else {
3166 var441 = varonce440;
3167 varonce440 = NULL;
3168 }
3169 {
3170 var450 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MMethodDef>*/
3171 }
3172 ((struct instance_core__NativeArray*)var441)->values[0]=var450;
3173 {
3174 var451 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mprop);
3175 }
3176 ((struct instance_core__NativeArray*)var441)->values[2]=var451;
3177 {
3178 var452 = ((val*(*)(val* self))(var441->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var441); /* native_to_s on <var441:NativeArray[String]>*/
3179 }
3180 varonce440 = var441;
3181 {
3182 nitc___nitc__ToolContext___info(var437, var452, 4l); /* Direct call toolcontext$ToolContext$info on <var437:ToolContext>*/
3183 }
3184 }
3185 RET_LABEL:;
3186 }
3187 /* method modelize_property$AMethPropdef$build_signature for (self: AMethPropdef, ModelBuilder) */
3188 void nitc__modelize_property___AMethPropdef___APropdef__build_signature(val* self, val* p0) {
3189 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
3190 val* var /* : nullable MPropDef */;
3191 val* var2 /* : nullable MPropDef */;
3192 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
3193 short int var3 /* : Bool */;
3194 short int var4 /* : Bool */;
3195 val* var_other /* var other: nullable Object */;
3196 short int var6 /* : Bool */;
3197 short int var8 /* : Bool */;
3198 val* var9 /* : MClassDef */;
3199 val* var11 /* : MClassDef */;
3200 val* var_mclassdef /* var mclassdef: MClassDef */;
3201 val* var12 /* : MModule */;
3202 val* var14 /* : MModule */;
3203 val* var_mmodule /* var mmodule: MModule */;
3204 val* var15 /* : nullable ASignature */;
3205 val* var17 /* : nullable ASignature */;
3206 val* var_nsig /* var nsig: nullable ASignature */;
3207 short int var18 /* : Bool */;
3208 val* var19 /* : MProperty */;
3209 val* var21 /* : MProperty */;
3210 short int var22 /* : Bool */;
3211 short int var24 /* : Bool */;
3212 short int var_ /* var : Bool */;
3213 short int var25 /* : Bool */;
3214 short int var26 /* : Bool */;
3215 val* var27 /* : MClass */;
3216 val* var29 /* : MClass */;
3217 val* var30 /* : nullable MMethodDef */;
3218 val* var32 /* : nullable MMethodDef */;
3219 val* var_root_init /* var root_init: nullable MMethodDef */;
3220 short int var33 /* : Bool */;
3221 short int var34 /* : Bool */;
3222 val* var_other36 /* var other: nullable Object */;
3223 short int var37 /* : Bool */;
3224 short int var38 /* : Bool */;
3225 val* var39 /* : nullable MSignature */;
3226 val* var41 /* : nullable MSignature */;
3227 val* var43 /* : Array[MProperty] */;
3228 val* var45 /* : Array[MProperty] */;
3229 short int var46 /* : Bool */;
3230 val* var47 /* : Array[MProperty] */;
3231 val* var49 /* : Array[MProperty] */;
3232 val* var50 /* : Array[MProperty] */;
3233 val* var52 /* : Array[MProperty] */;
3234 short int var53 /* : Bool */;
3235 val* var54 /* : nullable AMethid */;
3236 val* var56 /* : nullable AMethid */;
3237 short int var57 /* : Bool */;
3238 short int var58 /* : Bool */;
3239 short int var60 /* : Bool */;
3240 short int var62 /* : Bool */;
3241 short int var_63 /* var : Bool */;
3242 val* var64 /* : nullable AMethid */;
3243 val* var66 /* : nullable AMethid */;
3244 short int var67 /* : Bool */;
3245 short int var_accept_special_last_parameter /* var accept_special_last_parameter: Bool */;
3246 short int var68 /* : Bool */;
3247 val* var69 /* : nullable AMethid */;
3248 val* var71 /* : nullable AMethid */;
3249 short int var72 /* : Bool */;
3250 short int var73 /* : Bool */;
3251 short int var75 /* : Bool */;
3252 short int var76 /* : Bool */;
3253 short int var_77 /* var : Bool */;
3254 val* var78 /* : nullable AMethid */;
3255 val* var80 /* : nullable AMethid */;
3256 short int var81 /* : Bool */;
3257 short int var_return_is_mandatory /* var return_is_mandatory: Bool */;
3258 val* var82 /* : Array[String] */;
3259 val* var_param_names /* var param_names: Array[String] */;
3260 val* var83 /* : Array[MType] */;
3261 val* var_param_types /* var param_types: Array[MType] */;
3262 long var84 /* : Int */;
3263 long var86 /* : Int */;
3264 long var_vararg_rank /* var vararg_rank: Int */;
3265 val* var_ret_type /* var ret_type: nullable MType */;
3266 short int var87 /* : Bool */;
3267 short int var88 /* : Bool */;
3268 short int var90 /* : Bool */;
3269 short int var91 /* : Bool */;
3270 short int var92 /* : Bool */;
3271 short int var93 /* : Bool */;
3272 val* var94 /* : Array[String] */;
3273 val* var96 /* : Array[String] */;
3274 val* var97 /* : Array[MType] */;
3275 val* var99 /* : Array[MType] */;
3276 long var100 /* : Int */;
3277 long var102 /* : Int */;
3278 val* var103 /* : nullable MType */;
3279 val* var105 /* : nullable MType */;
3280 val* var_msignature /* var msignature: nullable MSignature */;
3281 short int var106 /* : Bool */;
3282 short int var107 /* : Bool */;
3283 val* var108 /* : MProperty */;
3284 val* var110 /* : MProperty */;
3285 val* var111 /* : MPropDef */;
3286 val* var113 /* : MPropDef */;
3287 val* var114 /* : nullable MSignature */;
3288 val* var116 /* : nullable MSignature */;
3289 short int var117 /* : Bool */;
3290 short int var118 /* : Bool */;
3291 short int var120 /* : Bool */;
3292 short int var122 /* : Bool */;
3293 val* var123 /* : MClass */;
3294 val* var125 /* : MClass */;
3295 val* var126 /* : MClassType */;
3296 val* var128 /* : MClassType */;
3297 val* var129 /* : MClassType */;
3298 val* var131 /* : MClassType */;
3299 val* var132 /* : MSignature */;
3300 long var133 /* : Int */;
3301 long var135 /* : Int */;
3302 long var136 /* : Int */;
3303 short int var137 /* : Bool */;
3304 short int var139 /* : Bool */;
3305 short int var140 /* : Bool */;
3306 short int var141 /* : Bool */;
3307 short int var142 /* : Bool */;
3308 short int var144 /* : Bool */;
3309 short int var145 /* : Bool */;
3310 val* var_node /* var node: ANode */;
3311 val* var146 /* : NativeArray[String] */;
3312 static val* varonce;
3313 static val* varonce147;
3314 val* var148 /* : String */;
3315 char* var149 /* : CString */;
3316 val* var150 /* : String */;
3317 val* var151 /* : nullable Int */;
3318 val* var152 /* : nullable Int */;
3319 val* var153 /* : nullable Bool */;
3320 val* var154 /* : nullable Bool */;
3321 static val* varonce155;
3322 val* var156 /* : String */;
3323 char* var157 /* : CString */;
3324 val* var158 /* : String */;
3325 val* var159 /* : nullable Int */;
3326 val* var160 /* : nullable Int */;
3327 val* var161 /* : nullable Bool */;
3328 val* var162 /* : nullable Bool */;
3329 static val* varonce163;
3330 val* var164 /* : String */;
3331 char* var165 /* : CString */;
3332 val* var166 /* : String */;
3333 val* var167 /* : nullable Int */;
3334 val* var168 /* : nullable Int */;
3335 val* var169 /* : nullable Bool */;
3336 val* var170 /* : nullable Bool */;
3337 static val* varonce171;
3338 val* var172 /* : String */;
3339 char* var173 /* : CString */;
3340 val* var174 /* : String */;
3341 val* var175 /* : nullable Int */;
3342 val* var176 /* : nullable Int */;
3343 val* var177 /* : nullable Bool */;
3344 val* var178 /* : nullable Bool */;
3345 static val* varonce179;
3346 val* var180 /* : String */;
3347 char* var181 /* : CString */;
3348 val* var182 /* : String */;
3349 val* var183 /* : nullable Int */;
3350 val* var184 /* : nullable Int */;
3351 val* var185 /* : nullable Bool */;
3352 val* var186 /* : nullable Bool */;
3353 long var187 /* : Int */;
3354 val* var188 /* : String */;
3355 val* var189 /* : MProperty */;
3356 val* var191 /* : MProperty */;
3357 val* var192 /* : String */;
3358 val* var194 /* : String */;
3359 val* var195 /* : String */;
3360 long var196 /* : Int */;
3361 long var198 /* : Int */;
3362 val* var199 /* : String */;
3363 val* var200 /* : MProperty */;
3364 val* var202 /* : MProperty */;
3365 val* var203 /* : String */;
3366 val* var204 /* : String */;
3367 short int var205 /* : Bool */;
3368 val* var206 /* : MProperty */;
3369 val* var208 /* : MProperty */;
3370 short int var209 /* : Bool */;
3371 short int var211 /* : Bool */;
3372 short int var_212 /* var : Bool */;
3373 val* var213 /* : MProperty */;
3374 val* var215 /* : MProperty */;
3375 short int var216 /* : Bool */;
3376 short int var218 /* : Bool */;
3377 short int var219 /* : Bool */;
3378 val* var220 /* : Array[MClassType] */;
3379 val* var222 /* : Array[MClassType] */;
3380 val* var_223 /* var : Array[MClassType] */;
3381 val* var224 /* : IndexedIterator[nullable Object] */;
3382 val* var_225 /* var : IndexedIterator[MClassType] */;
3383 short int var226 /* : Bool */;
3384 val* var227 /* : nullable Object */;
3385 val* var_msupertype /* var msupertype: MClassType */;
3386 val* var228 /* : MClassType */;
3387 val* var230 /* : MClassType */;
3388 val* var231 /* : MClassType */;
3389 val* var232 /* : MProperty */;
3390 val* var234 /* : MProperty */;
3391 val* var235 /* : String */;
3392 val* var237 /* : String */;
3393 val* var238 /* : nullable MProperty */;
3394 val* var_candidate /* var candidate: nullable MProperty */;
3395 short int var239 /* : Bool */;
3396 short int var240 /* : Bool */;
3397 short int var242 /* : Bool */;
3398 short int var243 /* : Bool */;
3399 short int var244 /* : Bool */;
3400 short int var245 /* : Bool */;
3401 short int var247 /* : Bool */;
3402 short int var249 /* : Bool */;
3403 val* var250 /* : MPropDef */;
3404 val* var252 /* : MPropDef */;
3405 short int var253 /* : Bool */;
3406 int cltype;
3407 int idtype;
3408 const char* var_class_name;
3409 val* var254 /* : nullable MSignature */;
3410 val* var256 /* : nullable MSignature */;
3411 short int var257 /* : Bool */;
3412 short int var258 /* : Bool */;
3413 short int var259 /* : Bool */;
3414 short int var260 /* : Bool */;
3415 short int var261 /* : Bool */;
3416 short int var263 /* : Bool */;
3417 short int var264 /* : Bool */;
3418 short int var_265 /* var : Bool */;
3419 long var266 /* : Int */;
3420 long var268 /* : Int */;
3421 long var269 /* : Int */;
3422 long var271 /* : Int */;
3423 short int var272 /* : Bool */;
3424 short int var274 /* : Bool */;
3425 short int var275 /* : Bool */;
3426 short int var_276 /* var : Bool */;
3427 long var277 /* : Int */;
3428 long var279 /* : Int */;
3429 long var280 /* : Int */;
3430 short int var281 /* : Bool */;
3431 short int var283 /* : Bool */;
3432 short int var_284 /* var : Bool */;
3433 long var285 /* : Int */;
3434 long var287 /* : Int */;
3435 short int var288 /* : Bool */;
3436 short int var290 /* : Bool */;
3437 val* var291 /* : Array[MType] */;
3438 val* var292 /* : Array[MParameter] */;
3439 val* var294 /* : Array[MParameter] */;
3440 val* var_295 /* var : Array[MParameter] */;
3441 val* var296 /* : IndexedIterator[nullable Object] */;
3442 val* var_297 /* var : IndexedIterator[MParameter] */;
3443 short int var298 /* : Bool */;
3444 val* var300 /* : nullable Object */;
3445 val* var_mparameter /* var mparameter: MParameter */;
3446 val* var301 /* : MType */;
3447 val* var303 /* : MType */;
3448 long var304 /* : Int */;
3449 long var306 /* : Int */;
3450 short int var307 /* : Bool */;
3451 short int var308 /* : Bool */;
3452 short int var309 /* : Bool */;
3453 short int var311 /* : Bool */;
3454 short int var312 /* : Bool */;
3455 short int var_313 /* var : Bool */;
3456 short int var314 /* : Bool */;
3457 short int var315 /* : Bool */;
3458 short int var317 /* : Bool */;
3459 short int var319 /* : Bool */;
3460 val* var320 /* : nullable MType */;
3461 val* var322 /* : nullable MType */;
3462 long var323 /* : Int */;
3463 long var325 /* : Int */;
3464 long var326 /* : Int */;
3465 long var328 /* : Int */;
3466 short int var329 /* : Bool */;
3467 short int var331 /* : Bool */;
3468 short int var332 /* : Bool */;
3469 val* var333 /* : ANodes[AParam] */;
3470 val* var335 /* : ANodes[AParam] */;
3471 long var336 /* : Int */;
3472 long var338 /* : Int */;
3473 val* var339 /* : ANode */;
3474 val* var341 /* : NativeArray[String] */;
3475 static val* varonce340;
3476 static val* varonce342;
3477 val* var343 /* : String */;
3478 char* var344 /* : CString */;
3479 val* var345 /* : String */;
3480 val* var346 /* : nullable Int */;
3481 val* var347 /* : nullable Int */;
3482 val* var348 /* : nullable Bool */;
3483 val* var349 /* : nullable Bool */;
3484 static val* varonce350;
3485 val* var351 /* : String */;
3486 char* var352 /* : CString */;
3487 val* var353 /* : String */;
3488 val* var354 /* : nullable Int */;
3489 val* var355 /* : nullable Int */;
3490 val* var356 /* : nullable Bool */;
3491 val* var357 /* : nullable Bool */;
3492 long var358 /* : Int */;
3493 long var360 /* : Int */;
3494 val* var361 /* : nullable Object */;
3495 val* var362 /* : String */;
3496 val* var363 /* : Array[MParameter] */;
3497 val* var_mparameters /* var mparameters: Array[MParameter] */;
3498 long var_i /* var i: Int */;
3499 long var364 /* : Int */;
3500 long var366 /* : Int */;
3501 long var_367 /* var : Int */;
3502 short int var368 /* : Bool */;
3503 short int var370 /* : Bool */;
3504 int cltype371;
3505 int idtype372;
3506 const char* var_class_name373;
3507 short int var374 /* : Bool */;
3508 val* var376 /* : MParameter */;
3509 val* var377 /* : nullable Object */;
3510 val* var378 /* : nullable Object */;
3511 short int var379 /* : Bool */;
3512 short int var381 /* : Bool */;
3513 val* var_mparameter382 /* var mparameter: MParameter */;
3514 short int var383 /* : Bool */;
3515 short int var384 /* : Bool */;
3516 short int var386 /* : Bool */;
3517 short int var387 /* : Bool */;
3518 val* var388 /* : ANodes[AParam] */;
3519 val* var390 /* : ANodes[AParam] */;
3520 val* var391 /* : ANode */;
3521 long var393 /* : Int */;
3522 short int var394 /* : Bool */;
3523 short int var395 /* : Bool */;
3524 short int var396 /* : Bool */;
3525 short int var398 /* : Bool */;
3526 short int var400 /* : Bool */;
3527 short int var_401 /* var : Bool */;
3528 val* var402 /* : MProperty */;
3529 val* var404 /* : MProperty */;
3530 short int var405 /* : Bool */;
3531 short int var407 /* : Bool */;
3532 val* var408 /* : MClass */;
3533 val* var410 /* : MClass */;
3534 val* var411 /* : MClassType */;
3535 val* var413 /* : MClassType */;
3536 short int var414 /* : Bool */;
3537 short int var415 /* : Bool */;
3538 short int var416 /* : Bool */;
3539 short int var_417 /* var : Bool */;
3540 short int var418 /* : Bool */;
3541 short int var_419 /* var : Bool */;
3542 val* var420 /* : nullable Object */;
3543 short int var421 /* : Bool */;
3544 short int var423 /* : Bool */;
3545 val* var424 /* : nullable ASignature */;
3546 val* var426 /* : nullable ASignature */;
3547 val* var427 /* : ANodes[AParam] */;
3548 val* var429 /* : ANodes[AParam] */;
3549 val* var430 /* : nullable Object */;
3550 val* var432 /* : NativeArray[String] */;
3551 static val* varonce431;
3552 static val* varonce433;
3553 val* var434 /* : String */;
3554 char* var435 /* : CString */;
3555 val* var436 /* : String */;
3556 val* var437 /* : nullable Int */;
3557 val* var438 /* : nullable Int */;
3558 val* var439 /* : nullable Bool */;
3559 val* var440 /* : nullable Bool */;
3560 static val* varonce441;
3561 val* var442 /* : String */;
3562 char* var443 /* : CString */;
3563 val* var444 /* : String */;
3564 val* var445 /* : nullable Int */;
3565 val* var446 /* : nullable Int */;
3566 val* var447 /* : nullable Bool */;
3567 val* var448 /* : nullable Bool */;
3568 static val* varonce449;
3569 val* var450 /* : String */;
3570 char* var451 /* : CString */;
3571 val* var452 /* : String */;
3572 val* var453 /* : nullable Int */;
3573 val* var454 /* : nullable Int */;
3574 val* var455 /* : nullable Bool */;
3575 val* var456 /* : nullable Bool */;
3576 val* var457 /* : nullable Object */;
3577 val* var458 /* : String */;
3578 val* var459 /* : MProperty */;
3579 val* var461 /* : MProperty */;
3580 val* var462 /* : String */;
3581 val* var464 /* : String */;
3582 val* var465 /* : String */;
3583 short int var466 /* : Bool */;
3584 short int var467 /* : Bool */;
3585 short int var468 /* : Bool */;
3586 short int var470 /* : Bool */;
3587 short int var472 /* : Bool */;
3588 short int var_473 /* var : Bool */;
3589 val* var474 /* : nullable AMethid */;
3590 val* var476 /* : nullable AMethid */;
3591 val* var478 /* : NativeArray[String] */;
3592 static val* varonce477;
3593 static val* varonce479;
3594 val* var480 /* : String */;
3595 char* var481 /* : CString */;
3596 val* var482 /* : String */;
3597 val* var483 /* : nullable Int */;
3598 val* var484 /* : nullable Int */;
3599 val* var485 /* : nullable Bool */;
3600 val* var486 /* : nullable Bool */;
3601 static val* varonce487;
3602 val* var488 /* : String */;
3603 char* var489 /* : CString */;
3604 val* var490 /* : String */;
3605 val* var491 /* : nullable Int */;
3606 val* var492 /* : nullable Int */;
3607 val* var493 /* : nullable Bool */;
3608 val* var494 /* : nullable Bool */;
3609 val* var495 /* : MProperty */;
3610 val* var497 /* : MProperty */;
3611 val* var498 /* : String */;
3612 val* var500 /* : String */;
3613 val* var501 /* : String */;
3614 val* var502 /* : MSignature */;
3615 static val* varonce504;
3616 val* var505 /* : String */;
3617 char* var506 /* : CString */;
3618 val* var507 /* : String */;
3619 val* var508 /* : nullable Int */;
3620 val* var509 /* : nullable Int */;
3621 val* var510 /* : nullable Bool */;
3622 val* var511 /* : nullable Bool */;
3623 val* var512 /* : nullable AAnnotation */;
3624 short int var513 /* : Bool */;
3625 short int var514 /* : Bool */;
3626 short int var516 /* : Bool */;
3627 short int var517 /* : Bool */;
3628 static val* varonce519;
3629 val* var520 /* : String */;
3630 char* var521 /* : CString */;
3631 val* var522 /* : String */;
3632 val* var523 /* : nullable Int */;
3633 val* var524 /* : nullable Int */;
3634 val* var525 /* : nullable Bool */;
3635 val* var526 /* : nullable Bool */;
3636 val* var527 /* : nullable AAnnotation */;
3637 short int var528 /* : Bool */;
3638 short int var529 /* : Bool */;
3639 short int var531 /* : Bool */;
3640 short int var532 /* : Bool */;
3641 short int var534 /* : Bool */;
3642 val* var535 /* : nullable AExternCodeBlock */;
3643 val* var537 /* : nullable AExternCodeBlock */;
3644 short int var538 /* : Bool */;
3645 short int var539 /* : Bool */;
3646 short int var541 /* : Bool */;
3647 short int var542 /* : Bool */;
3648 short int var_543 /* var : Bool */;
3649 static val* varonce544;
3650 val* var545 /* : String */;
3651 char* var546 /* : CString */;
3652 val* var547 /* : String */;
3653 val* var548 /* : nullable Int */;
3654 val* var549 /* : nullable Int */;
3655 val* var550 /* : nullable Bool */;
3656 val* var551 /* : nullable Bool */;
3657 val* var552 /* : nullable AAnnotation */;
3658 short int var553 /* : Bool */;
3659 short int var554 /* : Bool */;
3660 short int var556 /* : Bool */;
3661 short int var557 /* : Bool */;
3662 static val* varonce559;
3663 val* var560 /* : String */;
3664 char* var561 /* : CString */;
3665 val* var562 /* : String */;
3666 val* var563 /* : nullable Int */;
3667 val* var564 /* : nullable Int */;
3668 val* var565 /* : nullable Bool */;
3669 val* var566 /* : nullable Bool */;
3670 val* var567 /* : nullable AAnnotation */;
3671 val* var_at /* var at: nullable AAnnotation */;
3672 short int var568 /* : Bool */;
3673 short int var569 /* : Bool */;
3674 short int var571 /* : Bool */;
3675 short int var572 /* : Bool */;
3676 static val* varonce573;
3677 val* var574 /* : String */;
3678 char* var575 /* : CString */;
3679 val* var576 /* : String */;
3680 val* var577 /* : nullable Int */;
3681 val* var578 /* : nullable Int */;
3682 val* var579 /* : nullable Bool */;
3683 val* var580 /* : nullable Bool */;
3684 static val* varonce581;
3685 val* var582 /* : String */;
3686 char* var583 /* : CString */;
3687 val* var584 /* : String */;
3688 val* var585 /* : nullable Int */;
3689 val* var586 /* : nullable Int */;
3690 val* var587 /* : nullable Bool */;
3691 val* var588 /* : nullable Bool */;
3692 val* var589 /* : nullable AAnnotation */;
3693 val* var_atautoinit /* var atautoinit: nullable AAnnotation */;
3694 short int var590 /* : Bool */;
3695 short int var591 /* : Bool */;
3696 short int var593 /* : Bool */;
3697 short int var594 /* : Bool */;
3698 short int var595 /* : Bool */;
3699 short int var596 /* : Bool */;
3700 static val* varonce597;
3701 val* var598 /* : String */;
3702 char* var599 /* : CString */;
3703 val* var600 /* : String */;
3704 val* var601 /* : nullable Int */;
3705 val* var602 /* : nullable Int */;
3706 val* var603 /* : nullable Bool */;
3707 val* var604 /* : nullable Bool */;
3708 short int var605 /* : Bool */;
3709 short int var606 /* : Bool */;
3710 static val* varonce607;
3711 val* var608 /* : String */;
3712 char* var609 /* : CString */;
3713 val* var610 /* : String */;
3714 val* var611 /* : nullable Int */;
3715 val* var612 /* : nullable Int */;
3716 val* var613 /* : nullable Bool */;
3717 val* var614 /* : nullable Bool */;
3718 var_modelbuilder = p0;
3719 {
3720 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
3721 var2 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
3722 var = var2;
3723 RET_LABEL1:(void)0;
3724 }
3725 }
3726 var_mpropdef = var;
3727 if (var_mpropdef == NULL) {
3728 var3 = 1; /* is null */
3729 } else {
3730 var3 = 0; /* arg is null but recv is not */
3731 }
3732 if (0) {
3733 { /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
3734 var_other = ((val*)NULL);
3735 {
3736 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3737 var8 = var_mpropdef == var_other;
3738 var6 = var8;
3739 goto RET_LABEL7;
3740 RET_LABEL7:(void)0;
3741 }
3742 }
3743 var4 = var6;
3744 goto RET_LABEL5;
3745 RET_LABEL5:(void)0;
3746 }
3747 var3 = var4;
3748 }
3749 if (var3){
3750 goto RET_LABEL;
3751 } else {
3752 }
3753 {
3754 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3755 var11 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3756 if (unlikely(var11 == NULL)) {
3757 if(catchStack.cursor >= 0){
3758 longjmp(catchStack.envs[catchStack.cursor], 1);
3759 }
3760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3761 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
3762 fatal_exit(1);
3763 }
3764 var9 = var11;
3765 RET_LABEL10:(void)0;
3766 }
3767 }
3768 var_mclassdef = var9;
3769 {
3770 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
3771 var14 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
3772 if (unlikely(var14 == NULL)) {
3773 if(catchStack.cursor >= 0){
3774 longjmp(catchStack.envs[catchStack.cursor], 1);
3775 }
3776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3777 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
3778 fatal_exit(1);
3779 }
3780 var12 = var14;
3781 RET_LABEL13:(void)0;
3782 }
3783 }
3784 var_mmodule = var12;
3785 {
3786 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
3787 var17 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
3788 var15 = var17;
3789 RET_LABEL16:(void)0;
3790 }
3791 }
3792 var_nsig = var15;
3793 {
3794 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3795 var21 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3796 if (unlikely(var21 == NULL)) {
3797 if(catchStack.cursor >= 0){
3798 longjmp(catchStack.envs[catchStack.cursor], 1);
3799 }
3800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3801 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3802 fatal_exit(1);
3803 }
3804 var19 = var21;
3805 RET_LABEL20:(void)0;
3806 }
3807 }
3808 {
3809 { /* Inline model$MMethod$is_root_init (var19) on <var19:MProperty(MMethod)> */
3810 var24 = var19->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var19:MProperty(MMethod)> */
3811 var22 = var24;
3812 RET_LABEL23:(void)0;
3813 }
3814 }
3815 var_ = var22;
3816 if (var22){
3817 {
3818 var25 = nitc___nitc__MClassDef___is_intro(var_mclassdef);
3819 }
3820 var26 = !var25;
3821 var18 = var26;
3822 } else {
3823 var18 = var_;
3824 }
3825 if (var18){
3826 {
3827 { /* Inline model$MClassDef$mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
3828 var29 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
3829 if (unlikely(var29 == NULL)) {
3830 if(catchStack.cursor >= 0){
3831 longjmp(catchStack.envs[catchStack.cursor], 1);
3832 }
3833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3834 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
3835 fatal_exit(1);
3836 }
3837 var27 = var29;
3838 RET_LABEL28:(void)0;
3839 }
3840 }
3841 {
3842 { /* Inline modelize_property$MClass$root_init (var27) on <var27:MClass> */
3843 var32 = var27->attrs[COLOR_nitc__modelize_property__MClass___root_init].val; /* _root_init on <var27:MClass> */
3844 var30 = var32;
3845 RET_LABEL31:(void)0;
3846 }
3847 }
3848 var_root_init = var30;
3849 if (var_root_init == NULL) {
3850 var33 = 0; /* is null */
3851 } else {
3852 var33 = 1; /* arg is null and recv is not */
3853 }
3854 if (0) {
3855 { /* Inline kernel$Object$!= (var_root_init,((val*)NULL)) on <var_root_init:nullable MMethodDef> */
3856 var_other36 = ((val*)NULL);
3857 {
3858 var37 = ((short int(*)(val* self, val* p0))(var_root_init->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_root_init, var_other36); /* == on <var_root_init:nullable MMethodDef(MMethodDef)>*/
3859 }
3860 var38 = !var37;
3861 var34 = var38;
3862 goto RET_LABEL35;
3863 RET_LABEL35:(void)0;
3864 }
3865 var33 = var34;
3866 }
3867 if (var33){
3868 {
3869 { /* Inline model$MMethodDef$new_msignature (var_root_init) on <var_root_init:nullable MMethodDef(MMethodDef)> */
3870 var41 = var_root_init->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_root_init:nullable MMethodDef(MMethodDef)> */
3871 var39 = var41;
3872 RET_LABEL40:(void)0;
3873 }
3874 }
3875 {
3876 { /* Inline model$MMethodDef$new_msignature= (var_mpropdef,var39) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3877 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val = var39; /* _new_msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3878 RET_LABEL42:(void)0;
3879 }
3880 }
3881 {
3882 { /* Inline model$MMethodDef$initializers (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3883 var45 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3884 if (unlikely(var45 == NULL)) {
3885 if(catchStack.cursor >= 0){
3886 longjmp(catchStack.envs[catchStack.cursor], 1);
3887 }
3888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3889 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2492);
3890 fatal_exit(1);
3891 }
3892 var43 = var45;
3893 RET_LABEL44:(void)0;
3894 }
3895 }
3896 {
3897 var46 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var43);
3898 }
3899 if (unlikely(!var46)) {
3900 if(catchStack.cursor >= 0){
3901 longjmp(catchStack.envs[catchStack.cursor], 1);
3902 }
3903 PRINT_ERROR("Runtime error: %s", "Assert failed");
3904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 886);
3905 fatal_exit(1);
3906 }
3907 {
3908 { /* Inline model$MMethodDef$initializers (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3909 var49 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
3910 if (unlikely(var49 == NULL)) {
3911 if(catchStack.cursor >= 0){
3912 longjmp(catchStack.envs[catchStack.cursor], 1);
3913 }
3914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3915 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2492);
3916 fatal_exit(1);
3917 }
3918 var47 = var49;
3919 RET_LABEL48:(void)0;
3920 }
3921 }
3922 {
3923 { /* Inline model$MMethodDef$initializers (var_root_init) on <var_root_init:nullable MMethodDef(MMethodDef)> */
3924 var52 = var_root_init->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <var_root_init:nullable MMethodDef(MMethodDef)> */
3925 if (unlikely(var52 == NULL)) {
3926 if(catchStack.cursor >= 0){
3927 longjmp(catchStack.envs[catchStack.cursor], 1);
3928 }
3929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3930 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2492);
3931 fatal_exit(1);
3932 }
3933 var50 = var52;
3934 RET_LABEL51:(void)0;
3935 }
3936 }
3937 {
3938 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var47, var50); /* Direct call array$Array$add_all on <var47:Array[MProperty]>*/
3939 }
3940 } else {
3941 }
3942 } else {
3943 }
3944 {
3945 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
3946 var56 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
3947 var54 = var56;
3948 RET_LABEL55:(void)0;
3949 }
3950 }
3951 if (var54 == NULL) {
3952 var57 = 1; /* is null */
3953 } else {
3954 var57 = 0; /* arg is null but recv is not */
3955 }
3956 if (0) {
3957 { /* Inline kernel$Object$== (var54,((val*)NULL)) on <var54:nullable AMethid> */
3958 var_other = ((val*)NULL);
3959 {
3960 { /* Inline kernel$Object$is_same_instance (var54,var_other) on <var54:nullable AMethid(AMethid)> */
3961 var62 = var54 == var_other;
3962 var60 = var62;
3963 goto RET_LABEL61;
3964 RET_LABEL61:(void)0;
3965 }
3966 }
3967 var58 = var60;
3968 goto RET_LABEL59;
3969 RET_LABEL59:(void)0;
3970 }
3971 var57 = var58;
3972 }
3973 var_63 = var57;
3974 if (var57){
3975 var53 = var_63;
3976 } else {
3977 {
3978 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
3979 var66 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
3980 var64 = var66;
3981 RET_LABEL65:(void)0;
3982 }
3983 }
3984 if (var64 == NULL) {
3985 if(catchStack.cursor >= 0){
3986 longjmp(catchStack.envs[catchStack.cursor], 1);
3987 }
3988 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3989 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 891);
3990 fatal_exit(1);
3991 } else {
3992 var67 = ((short int(*)(val* self))(var64->class->vft[COLOR_nitc__modelize_property__AMethid__accept_special_last_parameter]))(var64); /* accept_special_last_parameter on <var64:nullable AMethid>*/
3993 }
3994 var53 = var67;
3995 }
3996 var_accept_special_last_parameter = var53;
3997 {
3998 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
3999 var71 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
4000 var69 = var71;
4001 RET_LABEL70:(void)0;
4002 }
4003 }
4004 if (var69 == NULL) {
4005 var72 = 0; /* is null */
4006 } else {
4007 var72 = 1; /* arg is null and recv is not */
4008 }
4009 if (0) {
4010 { /* Inline kernel$Object$!= (var69,((val*)NULL)) on <var69:nullable AMethid> */
4011 var_other36 = ((val*)NULL);
4012 {
4013 var75 = ((short int(*)(val* self, val* p0))(var69->class->vft[COLOR_core__kernel__Object___61d_61d]))(var69, var_other36); /* == on <var69:nullable AMethid(AMethid)>*/
4014 }
4015 var76 = !var75;
4016 var73 = var76;
4017 goto RET_LABEL74;
4018 RET_LABEL74:(void)0;
4019 }
4020 var72 = var73;
4021 }
4022 var_77 = var72;
4023 if (var72){
4024 {
4025 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
4026 var80 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
4027 var78 = var80;
4028 RET_LABEL79:(void)0;
4029 }
4030 }
4031 if (var78 == NULL) {
4032 if(catchStack.cursor >= 0){
4033 longjmp(catchStack.envs[catchStack.cursor], 1);
4034 }
4035 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4036 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 892);
4037 fatal_exit(1);
4038 } else {
4039 var81 = ((short int(*)(val* self))(var78->class->vft[COLOR_nitc__modelize_property__AMethid__return_is_mandatory]))(var78); /* return_is_mandatory on <var78:nullable AMethid>*/
4040 }
4041 var68 = var81;
4042 } else {
4043 var68 = var_77;
4044 }
4045 var_return_is_mandatory = var68;
4046 var82 = NEW_core__Array(&type_core__Array__core__String);
4047 {
4048 core___core__Array___core__kernel__Object__init(var82); /* Direct call array$Array$init on <var82:Array[String]>*/
4049 }
4050 var_param_names = var82;
4051 var83 = NEW_core__Array(&type_core__Array__nitc__MType);
4052 {
4053 core___core__Array___core__kernel__Object__init(var83); /* Direct call array$Array$init on <var83:Array[MType]>*/
4054 }
4055 var_param_types = var83;
4056 {
4057 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
4058 var86 = -1l;
4059 var84 = var86;
4060 goto RET_LABEL85;
4061 RET_LABEL85:(void)0;
4062 }
4063 }
4064 var_vararg_rank = var84;
4065 var_ret_type = ((val*)NULL);
4066 if (var_nsig == NULL) {
4067 var87 = 0; /* is null */
4068 } else {
4069 var87 = 1; /* arg is null and recv is not */
4070 }
4071 if (0) {
4072 { /* Inline kernel$Object$!= (var_nsig,((val*)NULL)) on <var_nsig:nullable ASignature> */
4073 var_other36 = ((val*)NULL);
4074 {
4075 var90 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other36); /* == on <var_nsig:nullable ASignature(ASignature)>*/
4076 }
4077 var91 = !var90;
4078 var88 = var91;
4079 goto RET_LABEL89;
4080 RET_LABEL89:(void)0;
4081 }
4082 var87 = var88;
4083 }
4084 if (var87){
4085 {
4086 var92 = nitc__modelize_property___ASignature___visit_signature(var_nsig, var_modelbuilder, var_mclassdef);
4087 }
4088 var93 = !var92;
4089 if (var93){
4090 goto RET_LABEL;
4091 } else {
4092 }
4093 {
4094 { /* Inline modelize_property$ASignature$param_names (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
4095 var96 = var_nsig->attrs[COLOR_nitc__modelize_property__ASignature___param_names].val; /* _param_names on <var_nsig:nullable ASignature(ASignature)> */
4096 if (unlikely(var96 == NULL)) {
4097 if(catchStack.cursor >= 0){
4098 longjmp(catchStack.envs[catchStack.cursor], 1);
4099 }
4100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_names");
4101 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 659);
4102 fatal_exit(1);
4103 }
4104 var94 = var96;
4105 RET_LABEL95:(void)0;
4106 }
4107 }
4108 var_param_names = var94;
4109 {
4110 { /* Inline modelize_property$ASignature$param_types (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
4111 var99 = var_nsig->attrs[COLOR_nitc__modelize_property__ASignature___param_types].val; /* _param_types on <var_nsig:nullable ASignature(ASignature)> */
4112 if (unlikely(var99 == NULL)) {
4113 if(catchStack.cursor >= 0){
4114 longjmp(catchStack.envs[catchStack.cursor], 1);
4115 }
4116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_types");
4117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 662);
4118 fatal_exit(1);
4119 }
4120 var97 = var99;
4121 RET_LABEL98:(void)0;
4122 }
4123 }
4124 var_param_types = var97;
4125 {
4126 { /* Inline modelize_property$ASignature$vararg_rank (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
4127 var102 = var_nsig->attrs[COLOR_nitc__modelize_property__ASignature___vararg_rank].l; /* _vararg_rank on <var_nsig:nullable ASignature(ASignature)> */
4128 var100 = var102;
4129 RET_LABEL101:(void)0;
4130 }
4131 }
4132 var_vararg_rank = var100;
4133 {
4134 { /* Inline modelize_property$ASignature$ret_type (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
4135 var105 = var_nsig->attrs[COLOR_nitc__modelize_property__ASignature___ret_type].val; /* _ret_type on <var_nsig:nullable ASignature(ASignature)> */
4136 var103 = var105;
4137 RET_LABEL104:(void)0;
4138 }
4139 }
4140 var_ret_type = var103;
4141 } else {
4142 }
4143 var_msignature = ((val*)NULL);
4144 {
4145 var106 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
4146 }
4147 var107 = !var106;
4148 if (var107){
4149 {
4150 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4151 var110 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4152 if (unlikely(var110 == NULL)) {
4153 if(catchStack.cursor >= 0){
4154 longjmp(catchStack.envs[catchStack.cursor], 1);
4155 }
4156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4158 fatal_exit(1);
4159 }
4160 var108 = var110;
4161 RET_LABEL109:(void)0;
4162 }
4163 }
4164 {
4165 { /* Inline model$MProperty$intro (var108) on <var108:MProperty(MMethod)> */
4166 var113 = var108->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var108:MProperty(MMethod)> */
4167 if (unlikely(var113 == NULL)) {
4168 if(catchStack.cursor >= 0){
4169 longjmp(catchStack.envs[catchStack.cursor], 1);
4170 }
4171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4172 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
4173 fatal_exit(1);
4174 }
4175 var111 = var113;
4176 RET_LABEL112:(void)0;
4177 }
4178 }
4179 {
4180 { /* Inline model$MMethodDef$msignature (var111) on <var111:MPropDef(MMethodDef)> */
4181 var116 = var111->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var111:MPropDef(MMethodDef)> */
4182 var114 = var116;
4183 RET_LABEL115:(void)0;
4184 }
4185 }
4186 var_msignature = var114;
4187 if (var_msignature == NULL) {
4188 var117 = 1; /* is null */
4189 } else {
4190 var117 = 0; /* arg is null but recv is not */
4191 }
4192 if (0) {
4193 { /* Inline kernel$Object$== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
4194 var_other = ((val*)NULL);
4195 {
4196 { /* Inline kernel$Object$is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
4197 var122 = var_msignature == var_other;
4198 var120 = var122;
4199 goto RET_LABEL121;
4200 RET_LABEL121:(void)0;
4201 }
4202 }
4203 var118 = var120;
4204 goto RET_LABEL119;
4205 RET_LABEL119:(void)0;
4206 }
4207 var117 = var118;
4208 }
4209 if (var117){
4210 goto RET_LABEL;
4211 } else {
4212 }
4213 {
4214 { /* Inline model$MClassDef$mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
4215 var125 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
4216 if (unlikely(var125 == NULL)) {
4217 if(catchStack.cursor >= 0){
4218 longjmp(catchStack.envs[catchStack.cursor], 1);
4219 }
4220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4221 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
4222 fatal_exit(1);
4223 }
4224 var123 = var125;
4225 RET_LABEL124:(void)0;
4226 }
4227 }
4228 {
4229 { /* Inline model$MClass$mclass_type (var123) on <var123:MClass> */
4230 var128 = var123->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var123:MClass> */
4231 if (unlikely(var128 == NULL)) {
4232 if(catchStack.cursor >= 0){
4233 longjmp(catchStack.envs[catchStack.cursor], 1);
4234 }
4235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4236 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
4237 fatal_exit(1);
4238 }
4239 var126 = var128;
4240 RET_LABEL127:(void)0;
4241 }
4242 }
4243 {
4244 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
4245 var131 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
4246 if (unlikely(var131 == NULL)) {
4247 if(catchStack.cursor >= 0){
4248 longjmp(catchStack.envs[catchStack.cursor], 1);
4249 }
4250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4251 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
4252 fatal_exit(1);
4253 }
4254 var129 = var131;
4255 RET_LABEL130:(void)0;
4256 }
4257 }
4258 {
4259 var132 = nitc___nitc__MSignature___MType__resolve_for(var_msignature, var126, var129, var_mmodule, 0);
4260 }
4261 var_msignature = var132;
4262 {
4263 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
4264 var135 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
4265 var133 = var135;
4266 RET_LABEL134:(void)0;
4267 }
4268 }
4269 {
4270 var136 = nitc___nitc__MSignature___arity(var_msignature);
4271 }
4272 {
4273 { /* Inline kernel$Int$!= (var133,var136) on <var133:Int> */
4274 var139 = var133 == var136;
4275 var140 = !var139;
4276 var137 = var140;
4277 goto RET_LABEL138;
4278 RET_LABEL138:(void)0;
4279 }
4280 }
4281 if (var137){
4282 if (var_nsig == NULL) {
4283 var141 = 0; /* is null */
4284 } else {
4285 var141 = 1; /* arg is null and recv is not */
4286 }
4287 if (0) {
4288 { /* Inline kernel$Object$!= (var_nsig,((val*)NULL)) on <var_nsig:nullable ASignature> */
4289 var_other36 = ((val*)NULL);
4290 {
4291 var144 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other36); /* == on <var_nsig:nullable ASignature(ASignature)>*/
4292 }
4293 var145 = !var144;
4294 var142 = var145;
4295 goto RET_LABEL143;
4296 RET_LABEL143:(void)0;
4297 }
4298 var141 = var142;
4299 }
4300 if (var141){
4301 var_node = var_nsig;
4302 } else {
4303 var_node = self;
4304 }
4305 if (unlikely(varonce==NULL)) {
4306 var146 = NEW_core__NativeArray((int)10l, &type_core__NativeArray__core__String);
4307 if (likely(varonce147!=NULL)) {
4308 var148 = varonce147;
4309 } else {
4310 var149 = "Redef Error: expected ";
4311 var151 = (val*)(22l<<2|1);
4312 var152 = (val*)(22l<<2|1);
4313 var153 = (val*)((long)(0)<<2|3);
4314 var154 = (val*)((long)(0)<<2|3);
4315 var150 = core__flat___CString___to_s_unsafe(var149, var151, var152, var153, var154);
4316 var148 = var150;
4317 varonce147 = var148;
4318 }
4319 ((struct instance_core__NativeArray*)var146)->values[0]=var148;
4320 if (likely(varonce155!=NULL)) {
4321 var156 = varonce155;
4322 } else {
4323 var157 = " parameter(s) for `";
4324 var159 = (val*)(19l<<2|1);
4325 var160 = (val*)(19l<<2|1);
4326 var161 = (val*)((long)(0)<<2|3);
4327 var162 = (val*)((long)(0)<<2|3);
4328 var158 = core__flat___CString___to_s_unsafe(var157, var159, var160, var161, var162);
4329 var156 = var158;
4330 varonce155 = var156;
4331 }
4332 ((struct instance_core__NativeArray*)var146)->values[2]=var156;
4333 if (likely(varonce163!=NULL)) {
4334 var164 = varonce163;
4335 } else {
4336 var165 = "`; got ";
4337 var167 = (val*)(7l<<2|1);
4338 var168 = (val*)(7l<<2|1);
4339 var169 = (val*)((long)(0)<<2|3);
4340 var170 = (val*)((long)(0)<<2|3);
4341 var166 = core__flat___CString___to_s_unsafe(var165, var167, var168, var169, var170);
4342 var164 = var166;
4343 varonce163 = var164;
4344 }
4345 ((struct instance_core__NativeArray*)var146)->values[5]=var164;
4346 if (likely(varonce171!=NULL)) {
4347 var172 = varonce171;
4348 } else {
4349 var173 = ". See introduction at `";
4350 var175 = (val*)(23l<<2|1);
4351 var176 = (val*)(23l<<2|1);
4352 var177 = (val*)((long)(0)<<2|3);
4353 var178 = (val*)((long)(0)<<2|3);
4354 var174 = core__flat___CString___to_s_unsafe(var173, var175, var176, var177, var178);
4355 var172 = var174;
4356 varonce171 = var172;
4357 }
4358 ((struct instance_core__NativeArray*)var146)->values[7]=var172;
4359 if (likely(varonce179!=NULL)) {
4360 var180 = varonce179;
4361 } else {
4362 var181 = "`.";
4363 var183 = (val*)(2l<<2|1);
4364 var184 = (val*)(2l<<2|1);
4365 var185 = (val*)((long)(0)<<2|3);
4366 var186 = (val*)((long)(0)<<2|3);
4367 var182 = core__flat___CString___to_s_unsafe(var181, var183, var184, var185, var186);
4368 var180 = var182;
4369 varonce179 = var180;
4370 }
4371 ((struct instance_core__NativeArray*)var146)->values[9]=var180;
4372 } else {
4373 var146 = varonce;
4374 varonce = NULL;
4375 }
4376 {
4377 var187 = nitc___nitc__MSignature___arity(var_msignature);
4378 }
4379 var188 = core__flat___Int___core__abstract_text__Object__to_s(var187);
4380 ((struct instance_core__NativeArray*)var146)->values[1]=var188;
4381 {
4382 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4383 var191 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4384 if (unlikely(var191 == NULL)) {
4385 if(catchStack.cursor >= 0){
4386 longjmp(catchStack.envs[catchStack.cursor], 1);
4387 }
4388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4389 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4390 fatal_exit(1);
4391 }
4392 var189 = var191;
4393 RET_LABEL190:(void)0;
4394 }
4395 }
4396 {
4397 { /* Inline model$MProperty$name (var189) on <var189:MProperty(MMethod)> */
4398 var194 = var189->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var189:MProperty(MMethod)> */
4399 if (unlikely(var194 == NULL)) {
4400 if(catchStack.cursor >= 0){
4401 longjmp(catchStack.envs[catchStack.cursor], 1);
4402 }
4403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4404 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
4405 fatal_exit(1);
4406 }
4407 var192 = var194;
4408 RET_LABEL193:(void)0;
4409 }
4410 }
4411 ((struct instance_core__NativeArray*)var146)->values[3]=var192;
4412 {
4413 var195 = ((val*(*)(val* self))(var_msignature->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_msignature); /* to_s on <var_msignature:nullable MSignature(MSignature)>*/
4414 }
4415 ((struct instance_core__NativeArray*)var146)->values[4]=var195;
4416 {
4417 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
4418 var198 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
4419 var196 = var198;
4420 RET_LABEL197:(void)0;
4421 }
4422 }
4423 var199 = core__flat___Int___core__abstract_text__Object__to_s(var196);
4424 ((struct instance_core__NativeArray*)var146)->values[6]=var199;
4425 {
4426 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4427 var202 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4428 if (unlikely(var202 == NULL)) {
4429 if(catchStack.cursor >= 0){
4430 longjmp(catchStack.envs[catchStack.cursor], 1);
4431 }
4432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4434 fatal_exit(1);
4435 }
4436 var200 = var202;
4437 RET_LABEL201:(void)0;
4438 }
4439 }
4440 {
4441 var203 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var200);
4442 }
4443 ((struct instance_core__NativeArray*)var146)->values[8]=var203;
4444 {
4445 var204 = ((val*(*)(val* self))(var146->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var146); /* native_to_s on <var146:NativeArray[String]>*/
4446 }
4447 varonce = var146;
4448 {
4449 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_node, var204); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
4450 }
4451 goto RET_LABEL;
4452 } else {
4453 }
4454 } else {
4455 {
4456 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4457 var208 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4458 if (unlikely(var208 == NULL)) {
4459 if(catchStack.cursor >= 0){
4460 longjmp(catchStack.envs[catchStack.cursor], 1);
4461 }
4462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4464 fatal_exit(1);
4465 }
4466 var206 = var208;
4467 RET_LABEL207:(void)0;
4468 }
4469 }
4470 {
4471 { /* Inline model$MMethod$is_init (var206) on <var206:MProperty(MMethod)> */
4472 var211 = var206->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var206:MProperty(MMethod)> */
4473 var209 = var211;
4474 RET_LABEL210:(void)0;
4475 }
4476 }
4477 var_212 = var209;
4478 if (var209){
4479 {
4480 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4481 var215 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4482 if (unlikely(var215 == NULL)) {
4483 if(catchStack.cursor >= 0){
4484 longjmp(catchStack.envs[catchStack.cursor], 1);
4485 }
4486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4488 fatal_exit(1);
4489 }
4490 var213 = var215;
4491 RET_LABEL214:(void)0;
4492 }
4493 }
4494 {
4495 { /* Inline model$MMethod$is_new (var213) on <var213:MProperty(MMethod)> */
4496 var218 = var213->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var213:MProperty(MMethod)> */
4497 var216 = var218;
4498 RET_LABEL217:(void)0;
4499 }
4500 }
4501 var219 = !var216;
4502 var205 = var219;
4503 } else {
4504 var205 = var_212;
4505 }
4506 if (var205){
4507 {
4508 { /* Inline model$MClassDef$supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
4509 var222 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___supertypes].val; /* _supertypes on <var_mclassdef:MClassDef> */
4510 if (unlikely(var222 == NULL)) {
4511 if(catchStack.cursor >= 0){
4512 longjmp(catchStack.envs[catchStack.cursor], 1);
4513 }
4514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4515 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 666);
4516 fatal_exit(1);
4517 }
4518 var220 = var222;
4519 RET_LABEL221:(void)0;
4520 }
4521 }
4522 var_223 = var220;
4523 {
4524 var224 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_223);
4525 }
4526 var_225 = var224;
4527 for(;;) {
4528 {
4529 var226 = ((short int(*)(val* self))((((long)var_225&3)?class_info[((long)var_225&3)]:var_225->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_225); /* is_ok on <var_225:IndexedIterator[MClassType]>*/
4530 }
4531 if (var226){
4532 } else {
4533 goto BREAK_label;
4534 }
4535 {
4536 var227 = ((val*(*)(val* self))((((long)var_225&3)?class_info[((long)var_225&3)]:var_225->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_225); /* item on <var_225:IndexedIterator[MClassType]>*/
4537 }
4538 var_msupertype = var227;
4539 {
4540 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
4541 var230 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
4542 if (unlikely(var230 == NULL)) {
4543 if(catchStack.cursor >= 0){
4544 longjmp(catchStack.envs[catchStack.cursor], 1);
4545 }
4546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
4548 fatal_exit(1);
4549 }
4550 var228 = var230;
4551 RET_LABEL229:(void)0;
4552 }
4553 }
4554 {
4555 var231 = nitc___nitc__MClassType___MType__anchor_to(var_msupertype, var_mmodule, var228);
4556 }
4557 var_msupertype = var231;
4558 {
4559 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4560 var234 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
4561 if (unlikely(var234 == NULL)) {
4562 if(catchStack.cursor >= 0){
4563 longjmp(catchStack.envs[catchStack.cursor], 1);
4564 }
4565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4566 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4567 fatal_exit(1);
4568 }
4569 var232 = var234;
4570 RET_LABEL233:(void)0;
4571 }
4572 }
4573 {
4574 { /* Inline model$MProperty$name (var232) on <var232:MProperty(MMethod)> */
4575 var237 = var232->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var232:MProperty(MMethod)> */
4576 if (unlikely(var237 == NULL)) {
4577 if(catchStack.cursor >= 0){
4578 longjmp(catchStack.envs[catchStack.cursor], 1);
4579 }
4580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4581 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
4582 fatal_exit(1);
4583 }
4584 var235 = var237;
4585 RET_LABEL236:(void)0;
4586 }
4587 }
4588 {
4589 var238 = nitc___nitc__ModelBuilder___try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var235);
4590 }
4591 var_candidate = var238;
4592 if (var_candidate == NULL) {
4593 var239 = 0; /* is null */
4594 } else {
4595 var239 = 1; /* arg is null and recv is not */
4596 }
4597 if (0) {
4598 { /* Inline kernel$Object$!= (var_candidate,((val*)NULL)) on <var_candidate:nullable MProperty> */
4599 var_other36 = ((val*)NULL);
4600 {
4601 var242 = ((short int(*)(val* self, val* p0))(var_candidate->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_candidate, var_other36); /* == on <var_candidate:nullable MProperty(MProperty)>*/
4602 }
4603 var243 = !var242;
4604 var240 = var243;
4605 goto RET_LABEL241;
4606 RET_LABEL241:(void)0;
4607 }
4608 var239 = var240;
4609 }
4610 if (var239){
4611 if (var_msignature == NULL) {
4612 var244 = 1; /* is null */
4613 } else {
4614 var244 = 0; /* arg is null but recv is not */
4615 }
4616 if (0) {
4617 { /* Inline kernel$Object$== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
4618 var_other = ((val*)NULL);
4619 {
4620 { /* Inline kernel$Object$is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
4621 var249 = var_msignature == var_other;
4622 var247 = var249;
4623 goto RET_LABEL248;
4624 RET_LABEL248:(void)0;
4625 }
4626 }
4627 var245 = var247;
4628 goto RET_LABEL246;
4629 RET_LABEL246:(void)0;
4630 }
4631 var244 = var245;
4632 }
4633 if (var244){
4634 {
4635 { /* Inline model$MProperty$intro (var_candidate) on <var_candidate:nullable MProperty(MProperty)> */
4636 var252 = var_candidate->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_candidate:nullable MProperty(MProperty)> */
4637 if (unlikely(var252 == NULL)) {
4638 if(catchStack.cursor >= 0){
4639 longjmp(catchStack.envs[catchStack.cursor], 1);
4640 }
4641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4642 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
4643 fatal_exit(1);
4644 }
4645 var250 = var252;
4646 RET_LABEL251:(void)0;
4647 }
4648 }
4649 /* <var250:MPropDef> isa MMethodDef */
4650 cltype = type_nitc__MMethodDef.color;
4651 idtype = type_nitc__MMethodDef.id;
4652 if(cltype >= var250->type->table_size) {
4653 var253 = 0;
4654 } else {
4655 var253 = var250->type->type_table[cltype] == idtype;
4656 }
4657 if (unlikely(!var253)) {
4658 var_class_name = var250 == NULL ? "null" : var250->type->name;
4659 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name);
4660 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 931);
4661 fatal_exit(1);
4662 }
4663 {
4664 { /* Inline model$MMethodDef$msignature (var250) on <var250:MPropDef(MMethodDef)> */
4665 var256 = var250->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var250:MPropDef(MMethodDef)> */
4666 var254 = var256;
4667 RET_LABEL255:(void)0;
4668 }
4669 }
4670 var_msignature = var254;
4671 } else {
4672 }
4673 } else {
4674 }
4675 {
4676 ((void(*)(val* self))((((long)var_225&3)?class_info[((long)var_225&3)]:var_225->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_225); /* next on <var_225:IndexedIterator[MClassType]>*/
4677 }
4678 }
4679 BREAK_label: (void)0;
4680 {
4681 ((void(*)(val* self))((((long)var_225&3)?class_info[((long)var_225&3)]:var_225->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_225); /* finish on <var_225:IndexedIterator[MClassType]>*/
4682 }
4683 } else {
4684 }
4685 }
4686 if (var_msignature == NULL) {
4687 var260 = 0; /* is null */
4688 } else {
4689 var260 = 1; /* arg is null and recv is not */
4690 }
4691 if (0) {
4692 { /* Inline kernel$Object$!= (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
4693 var_other36 = ((val*)NULL);
4694 {
4695 var263 = ((short int(*)(val* self, val* p0))(var_msignature->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_msignature, var_other36); /* == on <var_msignature:nullable MSignature(MSignature)>*/
4696 }
4697 var264 = !var263;
4698 var261 = var264;
4699 goto RET_LABEL262;
4700 RET_LABEL262:(void)0;
4701 }
4702 var260 = var261;
4703 }
4704 var_265 = var260;
4705 if (var260){
4706 {
4707 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
4708 var268 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
4709 var266 = var268;
4710 RET_LABEL267:(void)0;
4711 }
4712 }
4713 {
4714 { /* Inline array$AbstractArrayRead$length (var_param_types) on <var_param_types:Array[MType]> */
4715 var271 = var_param_types->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
4716 var269 = var271;
4717 RET_LABEL270:(void)0;
4718 }
4719 }
4720 {
4721 { /* Inline kernel$Int$!= (var266,var269) on <var266:Int> */
4722 var274 = var266 == var269;
4723 var275 = !var274;
4724 var272 = var275;
4725 goto RET_LABEL273;
4726 RET_LABEL273:(void)0;
4727 }
4728 }
4729 var259 = var272;
4730 } else {
4731 var259 = var_265;
4732 }
4733 var_276 = var259;
4734 if (var259){
4735 {
4736 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
4737 var279 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
4738 var277 = var279;
4739 RET_LABEL278:(void)0;
4740 }
4741 }
4742 {
4743 var280 = nitc___nitc__MSignature___arity(var_msignature);
4744 }
4745 {
4746 { /* Inline kernel$Int$== (var277,var280) on <var277:Int> */
4747 var283 = var277 == var280;
4748 var281 = var283;
4749 goto RET_LABEL282;
4750 RET_LABEL282:(void)0;
4751 }
4752 }
4753 var258 = var281;
4754 } else {
4755 var258 = var_276;
4756 }
4757 var_284 = var258;
4758 if (var258){
4759 {
4760 { /* Inline array$AbstractArrayRead$length (var_param_types) on <var_param_types:Array[MType]> */
4761 var287 = var_param_types->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
4762 var285 = var287;
4763 RET_LABEL286:(void)0;
4764 }
4765 }
4766 {
4767 { /* Inline kernel$Int$== (var285,0l) on <var285:Int> */
4768 var290 = var285 == 0l;
4769 var288 = var290;
4770 goto RET_LABEL289;
4771 RET_LABEL289:(void)0;
4772 }
4773 }
4774 var257 = var288;
4775 } else {
4776 var257 = var_284;
4777 }
4778 if (var257){
4779 var291 = NEW_core__Array(&type_core__Array__nitc__MType);
4780 {
4781 core___core__Array___core__kernel__Object__init(var291); /* Direct call array$Array$init on <var291:Array[MType]>*/
4782 }
4783 var_param_types = var291;
4784 {
4785 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
4786 var294 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
4787 if (unlikely(var294 == NULL)) {
4788 if(catchStack.cursor >= 0){
4789 longjmp(catchStack.envs[catchStack.cursor], 1);
4790 }
4791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
4793 fatal_exit(1);
4794 }
4795 var292 = var294;
4796 RET_LABEL293:(void)0;
4797 }
4798 }
4799 var_295 = var292;
4800 {
4801 var296 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_295);
4802 }
4803 var_297 = var296;
4804 for(;;) {
4805 {
4806 var298 = ((short int(*)(val* self))((((long)var_297&3)?class_info[((long)var_297&3)]:var_297->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_297); /* is_ok on <var_297:IndexedIterator[MParameter]>*/
4807 }
4808 if (var298){
4809 } else {
4810 goto BREAK_label299;
4811 }
4812 {
4813 var300 = ((val*(*)(val* self))((((long)var_297&3)?class_info[((long)var_297&3)]:var_297->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_297); /* item on <var_297:IndexedIterator[MParameter]>*/
4814 }
4815 var_mparameter = var300;
4816 {
4817 { /* Inline model$MParameter$mtype (var_mparameter) on <var_mparameter:MParameter> */
4818 var303 = var_mparameter->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_mparameter:MParameter> */
4819 if (unlikely(var303 == NULL)) {
4820 if(catchStack.cursor >= 0){
4821 longjmp(catchStack.envs[catchStack.cursor], 1);
4822 }
4823 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4824 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
4825 fatal_exit(1);
4826 }
4827 var301 = var303;
4828 RET_LABEL302:(void)0;
4829 }
4830 }
4831 {
4832 core___core__Array___core__abstract_collection__SimpleCollection__add(var_param_types, var301); /* Direct call array$Array$add on <var_param_types:Array[MType]>*/
4833 }
4834 {
4835 ((void(*)(val* self))((((long)var_297&3)?class_info[((long)var_297&3)]:var_297->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_297); /* next on <var_297:IndexedIterator[MParameter]>*/
4836 }
4837 }
4838 BREAK_label299: (void)0;
4839 {
4840 ((void(*)(val* self))((((long)var_297&3)?class_info[((long)var_297&3)]:var_297->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_297); /* finish on <var_297:IndexedIterator[MParameter]>*/
4841 }
4842 {
4843 { /* Inline model$MSignature$vararg_rank (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
4844 var306 = var_msignature->attrs[COLOR_nitc__model__MSignature___vararg_rank].l; /* _vararg_rank on <var_msignature:nullable MSignature(MSignature)> */
4845 var304 = var306;
4846 RET_LABEL305:(void)0;
4847 }
4848 }
4849 var_vararg_rank = var304;
4850 } else {
4851 }
4852 if (var_msignature == NULL) {
4853 var308 = 0; /* is null */
4854 } else {
4855 var308 = 1; /* arg is null and recv is not */
4856 }
4857 if (0) {
4858 { /* Inline kernel$Object$!= (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
4859 var_other36 = ((val*)NULL);
4860 {
4861 var311 = ((short int(*)(val* self, val* p0))(var_msignature->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_msignature, var_other36); /* == on <var_msignature:nullable MSignature(MSignature)>*/
4862 }
4863 var312 = !var311;
4864 var309 = var312;
4865 goto RET_LABEL310;
4866 RET_LABEL310:(void)0;
4867 }
4868 var308 = var309;
4869 }
4870 var_313 = var308;
4871 if (var308){
4872 if (var_ret_type == NULL) {
4873 var314 = 1; /* is null */
4874 } else {
4875 var314 = 0; /* arg is null but recv is not */
4876 }
4877 if (0) {
4878 { /* Inline kernel$Object$== (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
4879 var_other = ((val*)NULL);
4880 {
4881 { /* Inline kernel$Object$is_same_instance (var_ret_type,var_other) on <var_ret_type:nullable MType(MType)> */
4882 var319 = var_ret_type == var_other;
4883 var317 = var319;
4884 goto RET_LABEL318;
4885 RET_LABEL318:(void)0;
4886 }
4887 }
4888 var315 = var317;
4889 goto RET_LABEL316;
4890 RET_LABEL316:(void)0;
4891 }
4892 var314 = var315;
4893 }
4894 var307 = var314;
4895 } else {
4896 var307 = var_313;
4897 }
4898 if (var307){
4899 {
4900 { /* Inline model$MSignature$return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
4901 var322 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
4902 var320 = var322;
4903 RET_LABEL321:(void)0;
4904 }
4905 }
4906 var_ret_type = var320;
4907 } else {
4908 }
4909 {
4910 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
4911 var325 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
4912 var323 = var325;
4913 RET_LABEL324:(void)0;
4914 }
4915 }
4916 {
4917 { /* Inline array$AbstractArrayRead$length (var_param_types) on <var_param_types:Array[MType]> */
4918 var328 = var_param_types->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
4919 var326 = var328;
4920 RET_LABEL327:(void)0;
4921 }
4922 }
4923 {
4924 { /* Inline kernel$Int$!= (var323,var326) on <var323:Int> */
4925 var331 = var323 == var326;
4926 var332 = !var331;
4927 var329 = var332;
4928 goto RET_LABEL330;
4929 RET_LABEL330:(void)0;
4930 }
4931 }
4932 if (var329){
4933 if (var_nsig == NULL) {
4934 if(catchStack.cursor >= 0){
4935 longjmp(catchStack.envs[catchStack.cursor], 1);
4936 }
4937 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4938 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 953);
4939 fatal_exit(1);
4940 } else {
4941 { /* Inline parser_nodes$ASignature$n_params (var_nsig) on <var_nsig:nullable ASignature> */
4942 if (unlikely(var_nsig == NULL)) {
4943 if(catchStack.cursor >= 0){
4944 longjmp(catchStack.envs[catchStack.cursor], 1);
4945 }
4946 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
4948 fatal_exit(1);
4949 }
4950 var335 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var_nsig:nullable ASignature> */
4951 if (unlikely(var335 == NULL)) {
4952 if(catchStack.cursor >= 0){
4953 longjmp(catchStack.envs[catchStack.cursor], 1);
4954 }
4955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
4956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
4957 fatal_exit(1);
4958 }
4959 var333 = var335;
4960 RET_LABEL334:(void)0;
4961 }
4962 }
4963 {
4964 { /* Inline array$AbstractArrayRead$length (var_param_types) on <var_param_types:Array[MType]> */
4965 var338 = var_param_types->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
4966 var336 = var338;
4967 RET_LABEL337:(void)0;
4968 }
4969 }
4970 {
4971 var339 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var333, var336);
4972 }
4973 if (unlikely(varonce340==NULL)) {
4974 var341 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4975 if (likely(varonce342!=NULL)) {
4976 var343 = varonce342;
4977 } else {
4978 var344 = "Error: untyped parameter `";
4979 var346 = (val*)(26l<<2|1);
4980 var347 = (val*)(26l<<2|1);
4981 var348 = (val*)((long)(0)<<2|3);
4982 var349 = (val*)((long)(0)<<2|3);
4983 var345 = core__flat___CString___to_s_unsafe(var344, var346, var347, var348, var349);
4984 var343 = var345;
4985 varonce342 = var343;
4986 }
4987 ((struct instance_core__NativeArray*)var341)->values[0]=var343;
4988 if (likely(varonce350!=NULL)) {
4989 var351 = varonce350;
4990 } else {
4991 var352 = "\'.";
4992 var354 = (val*)(2l<<2|1);
4993 var355 = (val*)(2l<<2|1);
4994 var356 = (val*)((long)(0)<<2|3);
4995 var357 = (val*)((long)(0)<<2|3);
4996 var353 = core__flat___CString___to_s_unsafe(var352, var354, var355, var356, var357);
4997 var351 = var353;
4998 varonce350 = var351;
4999 }
5000 ((struct instance_core__NativeArray*)var341)->values[2]=var351;
5001 } else {
5002 var341 = varonce340;
5003 varonce340 = NULL;
5004 }
5005 {
5006 { /* Inline array$AbstractArrayRead$length (var_param_types) on <var_param_types:Array[MType]> */
5007 var360 = var_param_types->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
5008 var358 = var360;
5009 RET_LABEL359:(void)0;
5010 }
5011 }
5012 {
5013 var361 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_param_names, var358);
5014 }
5015 ((struct instance_core__NativeArray*)var341)->values[1]=var361;
5016 {
5017 var362 = ((val*(*)(val* self))(var341->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var341); /* native_to_s on <var341:NativeArray[String]>*/
5018 }
5019 varonce340 = var341;
5020 {
5021 nitc___nitc__ModelBuilder___error(var_modelbuilder, var339, var362); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
5022 }
5023 goto RET_LABEL;
5024 } else {
5025 }
5026 var363 = NEW_core__Array(&type_core__Array__nitc__MParameter);
5027 {
5028 core___core__Array___core__kernel__Object__init(var363); /* Direct call array$Array$init on <var363:Array[MParameter]>*/
5029 }
5030 var_mparameters = var363;
5031 var_i = 0l;
5032 {
5033 { /* Inline array$AbstractArrayRead$length (var_param_names) on <var_param_names:Array[String]> */
5034 var366 = var_param_names->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
5035 var364 = var366;
5036 RET_LABEL365:(void)0;
5037 }
5038 }
5039 var_367 = var364;
5040 for(;;) {
5041 {
5042 { /* Inline kernel$Int$< (var_i,var_367) on <var_i:Int> */
5043 /* Covariant cast for argument 0 (i) <var_367:Int> isa OTHER */
5044 /* <var_367:Int> isa OTHER */
5045 var370 = 1; /* easy <var_367:Int> isa OTHER*/
5046 if (unlikely(!var370)) {
5047 var_class_name373 = type_core__Int.name;
5048 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name373);
5049 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
5050 fatal_exit(1);
5051 }
5052 var374 = var_i < var_367;
5053 var368 = var374;
5054 goto RET_LABEL369;
5055 RET_LABEL369:(void)0;
5056 }
5057 }
5058 if (var368){
5059 } else {
5060 goto BREAK_label375;
5061 }
5062 var376 = NEW_nitc__MParameter(&type_nitc__MParameter);
5063 {
5064 var377 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_param_names, var_i);
5065 }
5066 {
5067 var378 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_param_types, var_i);
5068 }
5069 {
5070 { /* Inline kernel$Int$== (var_i,var_vararg_rank) on <var_i:Int> */
5071 var381 = var_i == var_vararg_rank;
5072 var379 = var381;
5073 goto RET_LABEL380;
5074 RET_LABEL380:(void)0;
5075 }
5076 }
5077 {
5078 ((void(*)(val* self, val* p0))(var376->class->vft[COLOR_nitc__model__MParameter__name_61d]))(var376, var377); /* name= on <var376:MParameter>*/
5079 }
5080 {
5081 ((void(*)(val* self, val* p0))(var376->class->vft[COLOR_nitc__model__MParameter__mtype_61d]))(var376, var378); /* mtype= on <var376:MParameter>*/
5082 }
5083 {
5084 ((void(*)(val* self, short int p0))(var376->class->vft[COLOR_nitc__model__MParameter__is_vararg_61d]))(var376, var379); /* is_vararg= on <var376:MParameter>*/
5085 }
5086 {
5087 ((void(*)(val* self))(var376->class->vft[COLOR_core__kernel__Object__init]))(var376); /* init on <var376:MParameter>*/
5088 }
5089 var_mparameter382 = var376;
5090 if (var_nsig == NULL) {
5091 var383 = 0; /* is null */
5092 } else {
5093 var383 = 1; /* arg is null and recv is not */
5094 }
5095 if (0) {
5096 { /* Inline kernel$Object$!= (var_nsig,((val*)NULL)) on <var_nsig:nullable ASignature> */
5097 var_other36 = ((val*)NULL);
5098 {
5099 var386 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other36); /* == on <var_nsig:nullable ASignature(ASignature)>*/
5100 }
5101 var387 = !var386;
5102 var384 = var387;
5103 goto RET_LABEL385;
5104 RET_LABEL385:(void)0;
5105 }
5106 var383 = var384;
5107 }
5108 if (var383){
5109 {
5110 { /* Inline parser_nodes$ASignature$n_params (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
5111 var390 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var_nsig:nullable ASignature(ASignature)> */
5112 if (unlikely(var390 == NULL)) {
5113 if(catchStack.cursor >= 0){
5114 longjmp(catchStack.envs[catchStack.cursor], 1);
5115 }
5116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
5117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
5118 fatal_exit(1);
5119 }
5120 var388 = var390;
5121 RET_LABEL389:(void)0;
5122 }
5123 }
5124 {
5125 var391 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var388, var_i);
5126 }
5127 {
5128 { /* Inline modelize_property$AParam$mparameter= (var391,var_mparameter382) on <var391:ANode(AParam)> */
5129 var391->attrs[COLOR_nitc__modelize_property__AParam___mparameter].val = var_mparameter382; /* _mparameter on <var391:ANode(AParam)> */
5130 RET_LABEL392:(void)0;
5131 }
5132 }
5133 } else {
5134 }
5135 {
5136 core___core__Array___core__abstract_collection__SimpleCollection__add(var_mparameters, var_mparameter382); /* Direct call array$Array$add on <var_mparameters:Array[MParameter]>*/
5137 }
5138 {
5139 var393 = core___core__Int___Discrete__successor(var_i, 1l);
5140 }
5141 var_i = var393;
5142 }
5143 BREAK_label375: (void)0;
5144 if (var_ret_type == NULL) {
5145 var395 = 1; /* is null */
5146 } else {
5147 var395 = 0; /* arg is null but recv is not */
5148 }
5149 if (0) {
5150 { /* Inline kernel$Object$== (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
5151 var_other = ((val*)NULL);
5152 {
5153 { /* Inline kernel$Object$is_same_instance (var_ret_type,var_other) on <var_ret_type:nullable MType(MType)> */
5154 var400 = var_ret_type == var_other;
5155 var398 = var400;
5156 goto RET_LABEL399;
5157 RET_LABEL399:(void)0;
5158 }
5159 }
5160 var396 = var398;
5161 goto RET_LABEL397;
5162 RET_LABEL397:(void)0;
5163 }
5164 var395 = var396;
5165 }
5166 var_401 = var395;
5167 if (var395){
5168 {
5169 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5170 var404 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5171 if (unlikely(var404 == NULL)) {
5172 if(catchStack.cursor >= 0){
5173 longjmp(catchStack.envs[catchStack.cursor], 1);
5174 }
5175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5176 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
5177 fatal_exit(1);
5178 }
5179 var402 = var404;
5180 RET_LABEL403:(void)0;
5181 }
5182 }
5183 {
5184 { /* Inline model$MMethod$is_new (var402) on <var402:MProperty(MMethod)> */
5185 var407 = var402->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var402:MProperty(MMethod)> */
5186 var405 = var407;
5187 RET_LABEL406:(void)0;
5188 }
5189 }
5190 var394 = var405;
5191 } else {
5192 var394 = var_401;
5193 }
5194 if (var394){
5195 {
5196 { /* Inline model$MClassDef$mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
5197 var410 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
5198 if (unlikely(var410 == NULL)) {
5199 if(catchStack.cursor >= 0){
5200 longjmp(catchStack.envs[catchStack.cursor], 1);
5201 }
5202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5203 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
5204 fatal_exit(1);
5205 }
5206 var408 = var410;
5207 RET_LABEL409:(void)0;
5208 }
5209 }
5210 {
5211 { /* Inline model$MClass$mclass_type (var408) on <var408:MClass> */
5212 var413 = var408->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var408:MClass> */
5213 if (unlikely(var413 == NULL)) {
5214 if(catchStack.cursor >= 0){
5215 longjmp(catchStack.envs[catchStack.cursor], 1);
5216 }
5217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5218 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
5219 fatal_exit(1);
5220 }
5221 var411 = var413;
5222 RET_LABEL412:(void)0;
5223 }
5224 }
5225 var_ret_type = var411;
5226 } else {
5227 }
5228 var416 = !var_accept_special_last_parameter;
5229 var_417 = var416;
5230 if (var416){
5231 {
5232 var418 = core___core__Collection___not_empty(var_mparameters);
5233 }
5234 var415 = var418;
5235 } else {
5236 var415 = var_417;
5237 }
5238 var_419 = var415;
5239 if (var415){
5240 {
5241 var420 = core___core__SequenceRead___last(var_mparameters);
5242 }
5243 {
5244 { /* Inline model$MParameter$is_vararg (var420) on <var420:nullable Object(MParameter)> */
5245 var423 = var420->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var420:nullable Object(MParameter)> */
5246 var421 = var423;
5247 RET_LABEL422:(void)0;
5248 }
5249 }
5250 var414 = var421;
5251 } else {
5252 var414 = var_419;
5253 }
5254 if (var414){
5255 {
5256 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
5257 var426 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
5258 var424 = var426;
5259 RET_LABEL425:(void)0;
5260 }
5261 }
5262 if (var424 == NULL) {
5263 if(catchStack.cursor >= 0){
5264 longjmp(catchStack.envs[catchStack.cursor], 1);
5265 }
5266 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 969);
5268 fatal_exit(1);
5269 } else {
5270 { /* Inline parser_nodes$ASignature$n_params (var424) on <var424:nullable ASignature> */
5271 if (unlikely(var424 == NULL)) {
5272 if(catchStack.cursor >= 0){
5273 longjmp(catchStack.envs[catchStack.cursor], 1);
5274 }
5275 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
5277 fatal_exit(1);
5278 }
5279 var429 = var424->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var424:nullable ASignature> */
5280 if (unlikely(var429 == NULL)) {
5281 if(catchStack.cursor >= 0){
5282 longjmp(catchStack.envs[catchStack.cursor], 1);
5283 }
5284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
5285 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
5286 fatal_exit(1);
5287 }
5288 var427 = var429;
5289 RET_LABEL428:(void)0;
5290 }
5291 }
5292 {
5293 var430 = core___core__SequenceRead___last(var427);
5294 }
5295 if (unlikely(varonce431==NULL)) {
5296 var432 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5297 if (likely(varonce433!=NULL)) {
5298 var434 = varonce433;
5299 } else {
5300 var435 = "Error: illegal variadic parameter `";
5301 var437 = (val*)(35l<<2|1);
5302 var438 = (val*)(35l<<2|1);
5303 var439 = (val*)((long)(0)<<2|3);
5304 var440 = (val*)((long)(0)<<2|3);
5305 var436 = core__flat___CString___to_s_unsafe(var435, var437, var438, var439, var440);
5306 var434 = var436;
5307 varonce433 = var434;
5308 }
5309 ((struct instance_core__NativeArray*)var432)->values[0]=var434;
5310 if (likely(varonce441!=NULL)) {
5311 var442 = varonce441;
5312 } else {
5313 var443 = "` for `";
5314 var445 = (val*)(7l<<2|1);
5315 var446 = (val*)(7l<<2|1);
5316 var447 = (val*)((long)(0)<<2|3);
5317 var448 = (val*)((long)(0)<<2|3);
5318 var444 = core__flat___CString___to_s_unsafe(var443, var445, var446, var447, var448);
5319 var442 = var444;
5320 varonce441 = var442;
5321 }
5322 ((struct instance_core__NativeArray*)var432)->values[2]=var442;
5323 if (likely(varonce449!=NULL)) {
5324 var450 = varonce449;
5325 } else {
5326 var451 = "`.";
5327 var453 = (val*)(2l<<2|1);
5328 var454 = (val*)(2l<<2|1);
5329 var455 = (val*)((long)(0)<<2|3);
5330 var456 = (val*)((long)(0)<<2|3);
5331 var452 = core__flat___CString___to_s_unsafe(var451, var453, var454, var455, var456);
5332 var450 = var452;
5333 varonce449 = var450;
5334 }
5335 ((struct instance_core__NativeArray*)var432)->values[4]=var450;
5336 } else {
5337 var432 = varonce431;
5338 varonce431 = NULL;
5339 }
5340 {
5341 var457 = core___core__SequenceRead___last(var_mparameters);
5342 }
5343 {
5344 var458 = ((val*(*)(val* self))(var457->class->vft[COLOR_core__abstract_text__Object__to_s]))(var457); /* to_s on <var457:nullable Object(MParameter)>*/
5345 }
5346 ((struct instance_core__NativeArray*)var432)->values[1]=var458;
5347 {
5348 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5349 var461 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5350 if (unlikely(var461 == NULL)) {
5351 if(catchStack.cursor >= 0){
5352 longjmp(catchStack.envs[catchStack.cursor], 1);
5353 }
5354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5355 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
5356 fatal_exit(1);
5357 }
5358 var459 = var461;
5359 RET_LABEL460:(void)0;
5360 }
5361 }
5362 {
5363 { /* Inline model$MProperty$name (var459) on <var459:MProperty(MMethod)> */
5364 var464 = var459->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var459:MProperty(MMethod)> */
5365 if (unlikely(var464 == NULL)) {
5366 if(catchStack.cursor >= 0){
5367 longjmp(catchStack.envs[catchStack.cursor], 1);
5368 }
5369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
5371 fatal_exit(1);
5372 }
5373 var462 = var464;
5374 RET_LABEL463:(void)0;
5375 }
5376 }
5377 ((struct instance_core__NativeArray*)var432)->values[3]=var462;
5378 {
5379 var465 = ((val*(*)(val* self))(var432->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var432); /* native_to_s on <var432:NativeArray[String]>*/
5380 }
5381 varonce431 = var432;
5382 {
5383 nitc___nitc__ModelBuilder___error(var_modelbuilder, var430, var465); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
5384 }
5385 } else {
5386 }
5387 if (var_ret_type == NULL) {
5388 var467 = 1; /* is null */
5389 } else {
5390 var467 = 0; /* arg is null but recv is not */
5391 }
5392 if (0) {
5393 { /* Inline kernel$Object$== (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
5394 var_other = ((val*)NULL);
5395 {
5396 { /* Inline kernel$Object$is_same_instance (var_ret_type,var_other) on <var_ret_type:nullable MType(MType)> */
5397 var472 = var_ret_type == var_other;
5398 var470 = var472;
5399 goto RET_LABEL471;
5400 RET_LABEL471:(void)0;
5401 }
5402 }
5403 var468 = var470;
5404 goto RET_LABEL469;
5405 RET_LABEL469:(void)0;
5406 }
5407 var467 = var468;
5408 }
5409 var_473 = var467;
5410 if (var467){
5411 var466 = var_return_is_mandatory;
5412 } else {
5413 var466 = var_473;
5414 }
5415 if (var466){
5416 {
5417 { /* Inline parser_nodes$AMethPropdef$n_methid (self) on <self:AMethPropdef> */
5418 var476 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
5419 var474 = var476;
5420 RET_LABEL475:(void)0;
5421 }
5422 }
5423 if (unlikely(varonce477==NULL)) {
5424 var478 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5425 if (likely(varonce479!=NULL)) {
5426 var480 = varonce479;
5427 } else {
5428 var481 = "Error: mandatory return type for `";
5429 var483 = (val*)(34l<<2|1);
5430 var484 = (val*)(34l<<2|1);
5431 var485 = (val*)((long)(0)<<2|3);
5432 var486 = (val*)((long)(0)<<2|3);
5433 var482 = core__flat___CString___to_s_unsafe(var481, var483, var484, var485, var486);
5434 var480 = var482;
5435 varonce479 = var480;
5436 }
5437 ((struct instance_core__NativeArray*)var478)->values[0]=var480;
5438 if (likely(varonce487!=NULL)) {
5439 var488 = varonce487;
5440 } else {
5441 var489 = "`.";
5442 var491 = (val*)(2l<<2|1);
5443 var492 = (val*)(2l<<2|1);
5444 var493 = (val*)((long)(0)<<2|3);
5445 var494 = (val*)((long)(0)<<2|3);
5446 var490 = core__flat___CString___to_s_unsafe(var489, var491, var492, var493, var494);
5447 var488 = var490;
5448 varonce487 = var488;
5449 }
5450 ((struct instance_core__NativeArray*)var478)->values[2]=var488;
5451 } else {
5452 var478 = varonce477;
5453 varonce477 = NULL;
5454 }
5455 {
5456 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5457 var497 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5458 if (unlikely(var497 == NULL)) {
5459 if(catchStack.cursor >= 0){
5460 longjmp(catchStack.envs[catchStack.cursor], 1);
5461 }
5462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
5464 fatal_exit(1);
5465 }
5466 var495 = var497;
5467 RET_LABEL496:(void)0;
5468 }
5469 }
5470 {
5471 { /* Inline model$MProperty$name (var495) on <var495:MProperty(MMethod)> */
5472 var500 = var495->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var495:MProperty(MMethod)> */
5473 if (unlikely(var500 == NULL)) {
5474 if(catchStack.cursor >= 0){
5475 longjmp(catchStack.envs[catchStack.cursor], 1);
5476 }
5477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5478 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
5479 fatal_exit(1);
5480 }
5481 var498 = var500;
5482 RET_LABEL499:(void)0;
5483 }
5484 }
5485 ((struct instance_core__NativeArray*)var478)->values[1]=var498;
5486 {
5487 var501 = ((val*(*)(val* self))(var478->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var478); /* native_to_s on <var478:NativeArray[String]>*/
5488 }
5489 varonce477 = var478;
5490 {
5491 nitc___nitc__ModelBuilder___error(var_modelbuilder, var474, var501); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
5492 }
5493 } else {
5494 }
5495 var502 = NEW_nitc__MSignature(&type_nitc__MSignature);
5496 {
5497 ((void(*)(val* self, val* p0))(var502->class->vft[COLOR_nitc__model__MSignature__mparameters_61d]))(var502, var_mparameters); /* mparameters= on <var502:MSignature>*/
5498 }
5499 {
5500 ((void(*)(val* self, val* p0))(var502->class->vft[COLOR_nitc__model__MSignature__return_mtype_61d]))(var502, var_ret_type); /* return_mtype= on <var502:MSignature>*/
5501 }
5502 {
5503 ((void(*)(val* self))(var502->class->vft[COLOR_core__kernel__Object__init]))(var502); /* init on <var502:MSignature>*/
5504 }
5505 var_msignature = var502;
5506 {
5507 { /* Inline model$MMethodDef$msignature= (var_mpropdef,var_msignature) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5508 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val = var_msignature; /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5509 RET_LABEL503:(void)0;
5510 }
5511 }
5512 if (likely(varonce504!=NULL)) {
5513 var505 = varonce504;
5514 } else {
5515 var506 = "abstract";
5516 var508 = (val*)(8l<<2|1);
5517 var509 = (val*)(8l<<2|1);
5518 var510 = (val*)((long)(0)<<2|3);
5519 var511 = (val*)((long)(0)<<2|3);
5520 var507 = core__flat___CString___to_s_unsafe(var506, var508, var509, var510, var511);
5521 var505 = var507;
5522 varonce504 = var505;
5523 }
5524 {
5525 var512 = nitc__annotation___Prod___get_single_annotation(self, var505, var_modelbuilder);
5526 }
5527 if (var512 == NULL) {
5528 var513 = 0; /* is null */
5529 } else {
5530 var513 = 1; /* arg is null and recv is not */
5531 }
5532 if (0) {
5533 { /* Inline kernel$Object$!= (var512,((val*)NULL)) on <var512:nullable AAnnotation> */
5534 var_other36 = ((val*)NULL);
5535 {
5536 var516 = ((short int(*)(val* self, val* p0))(var512->class->vft[COLOR_core__kernel__Object___61d_61d]))(var512, var_other36); /* == on <var512:nullable AAnnotation(AAnnotation)>*/
5537 }
5538 var517 = !var516;
5539 var514 = var517;
5540 goto RET_LABEL515;
5541 RET_LABEL515:(void)0;
5542 }
5543 var513 = var514;
5544 }
5545 {
5546 { /* Inline model$MMethodDef$is_abstract= (var_mpropdef,var513) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5547 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___is_abstract].s = var513; /* _is_abstract on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5548 RET_LABEL518:(void)0;
5549 }
5550 }
5551 if (likely(varonce519!=NULL)) {
5552 var520 = varonce519;
5553 } else {
5554 var521 = "intern";
5555 var523 = (val*)(6l<<2|1);
5556 var524 = (val*)(6l<<2|1);
5557 var525 = (val*)((long)(0)<<2|3);
5558 var526 = (val*)((long)(0)<<2|3);
5559 var522 = core__flat___CString___to_s_unsafe(var521, var523, var524, var525, var526);
5560 var520 = var522;
5561 varonce519 = var520;
5562 }
5563 {
5564 var527 = nitc__annotation___Prod___get_single_annotation(self, var520, var_modelbuilder);
5565 }
5566 if (var527 == NULL) {
5567 var528 = 0; /* is null */
5568 } else {
5569 var528 = 1; /* arg is null and recv is not */
5570 }
5571 if (0) {
5572 { /* Inline kernel$Object$!= (var527,((val*)NULL)) on <var527:nullable AAnnotation> */
5573 var_other36 = ((val*)NULL);
5574 {
5575 var531 = ((short int(*)(val* self, val* p0))(var527->class->vft[COLOR_core__kernel__Object___61d_61d]))(var527, var_other36); /* == on <var527:nullable AAnnotation(AAnnotation)>*/
5576 }
5577 var532 = !var531;
5578 var529 = var532;
5579 goto RET_LABEL530;
5580 RET_LABEL530:(void)0;
5581 }
5582 var528 = var529;
5583 }
5584 {
5585 { /* Inline model$MMethodDef$is_intern= (var_mpropdef,var528) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5586 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___is_intern].s = var528; /* _is_intern on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5587 RET_LABEL533:(void)0;
5588 }
5589 }
5590 {
5591 { /* Inline parser_nodes$AMethPropdef$n_extern_code_block (self) on <self:AMethPropdef> */
5592 var537 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AMethPropdef> */
5593 var535 = var537;
5594 RET_LABEL536:(void)0;
5595 }
5596 }
5597 if (var535 == NULL) {
5598 var538 = 0; /* is null */
5599 } else {
5600 var538 = 1; /* arg is null and recv is not */
5601 }
5602 if (0) {
5603 { /* Inline kernel$Object$!= (var535,((val*)NULL)) on <var535:nullable AExternCodeBlock> */
5604 var_other36 = ((val*)NULL);
5605 {
5606 var541 = ((short int(*)(val* self, val* p0))(var535->class->vft[COLOR_core__kernel__Object___61d_61d]))(var535, var_other36); /* == on <var535:nullable AExternCodeBlock(AExternCodeBlock)>*/
5607 }
5608 var542 = !var541;
5609 var539 = var542;
5610 goto RET_LABEL540;
5611 RET_LABEL540:(void)0;
5612 }
5613 var538 = var539;
5614 }
5615 var_543 = var538;
5616 if (var538){
5617 var534 = var_543;
5618 } else {
5619 if (likely(varonce544!=NULL)) {
5620 var545 = varonce544;
5621 } else {
5622 var546 = "extern";
5623 var548 = (val*)(6l<<2|1);
5624 var549 = (val*)(6l<<2|1);
5625 var550 = (val*)((long)(0)<<2|3);
5626 var551 = (val*)((long)(0)<<2|3);
5627 var547 = core__flat___CString___to_s_unsafe(var546, var548, var549, var550, var551);
5628 var545 = var547;
5629 varonce544 = var545;
5630 }
5631 {
5632 var552 = nitc__annotation___Prod___get_single_annotation(self, var545, var_modelbuilder);
5633 }
5634 if (var552 == NULL) {
5635 var553 = 0; /* is null */
5636 } else {
5637 var553 = 1; /* arg is null and recv is not */
5638 }
5639 if (0) {
5640 { /* Inline kernel$Object$!= (var552,((val*)NULL)) on <var552:nullable AAnnotation> */
5641 var_other36 = ((val*)NULL);
5642 {
5643 var556 = ((short int(*)(val* self, val* p0))(var552->class->vft[COLOR_core__kernel__Object___61d_61d]))(var552, var_other36); /* == on <var552:nullable AAnnotation(AAnnotation)>*/
5644 }
5645 var557 = !var556;
5646 var554 = var557;
5647 goto RET_LABEL555;
5648 RET_LABEL555:(void)0;
5649 }
5650 var553 = var554;
5651 }
5652 var534 = var553;
5653 }
5654 {
5655 { /* Inline model$MMethodDef$is_extern= (var_mpropdef,var534) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5656 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___is_extern].s = var534; /* _is_extern on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
5657 RET_LABEL558:(void)0;
5658 }
5659 }
5660 if (likely(varonce559!=NULL)) {
5661 var560 = varonce559;
5662 } else {
5663 var561 = "lazy";
5664 var563 = (val*)(4l<<2|1);
5665 var564 = (val*)(4l<<2|1);
5666 var565 = (val*)((long)(0)<<2|3);
5667 var566 = (val*)((long)(0)<<2|3);
5668 var562 = core__flat___CString___to_s_unsafe(var561, var563, var564, var565, var566);
5669 var560 = var562;
5670 varonce559 = var560;
5671 }
5672 {
5673 var567 = nitc__annotation___Prod___get_single_annotation(self, var560, var_modelbuilder);
5674 }
5675 var_at = var567;
5676 if (var_at == NULL) {
5677 var568 = 0; /* is null */
5678 } else {
5679 var568 = 1; /* arg is null and recv is not */
5680 }
5681 if (0) {
5682 { /* Inline kernel$Object$!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
5683 var_other36 = ((val*)NULL);
5684 {
5685 var571 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_at, var_other36); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
5686 }
5687 var572 = !var571;
5688 var569 = var572;
5689 goto RET_LABEL570;
5690 RET_LABEL570:(void)0;
5691 }
5692 var568 = var569;
5693 }
5694 if (var568){
5695 if (likely(varonce573!=NULL)) {
5696 var574 = varonce573;
5697 } else {
5698 var575 = "Syntax Error: `lazy` must be used on attributes.";
5699 var577 = (val*)(48l<<2|1);
5700 var578 = (val*)(48l<<2|1);
5701 var579 = (val*)((long)(0)<<2|3);
5702 var580 = (val*)((long)(0)<<2|3);
5703 var576 = core__flat___CString___to_s_unsafe(var575, var577, var578, var579, var580);
5704 var574 = var576;
5705 varonce573 = var574;
5706 }
5707 {
5708 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_at, var574); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
5709 }
5710 } else {
5711 }
5712 if (likely(varonce581!=NULL)) {
5713 var582 = varonce581;
5714 } else {
5715 var583 = "autoinit";
5716 var585 = (val*)(8l<<2|1);
5717 var586 = (val*)(8l<<2|1);
5718 var587 = (val*)((long)(0)<<2|3);
5719 var588 = (val*)((long)(0)<<2|3);
5720 var584 = core__flat___CString___to_s_unsafe(var583, var585, var586, var587, var588);
5721 var582 = var584;
5722 varonce581 = var582;
5723 }
5724 {
5725 var589 = nitc__annotation___Prod___get_single_annotation(self, var582, var_modelbuilder);
5726 }
5727 var_atautoinit = var589;
5728 if (var_atautoinit == NULL) {
5729 var590 = 0; /* is null */
5730 } else {
5731 var590 = 1; /* arg is null and recv is not */
5732 }
5733 if (0) {
5734 { /* Inline kernel$Object$!= (var_atautoinit,((val*)NULL)) on <var_atautoinit:nullable AAnnotation> */
5735 var_other36 = ((val*)NULL);
5736 {
5737 var593 = ((short int(*)(val* self, val* p0))(var_atautoinit->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_atautoinit, var_other36); /* == on <var_atautoinit:nullable AAnnotation(AAnnotation)>*/
5738 }
5739 var594 = !var593;
5740 var591 = var594;
5741 goto RET_LABEL592;
5742 RET_LABEL592:(void)0;
5743 }
5744 var590 = var591;
5745 }
5746 if (var590){
5747 {
5748 var595 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
5749 }
5750 var596 = !var595;
5751 if (var596){
5752 if (likely(varonce597!=NULL)) {
5753 var598 = varonce597;
5754 } else {
5755 var599 = "Error: `autoinit` cannot be set on redefinitions.";
5756 var601 = (val*)(49l<<2|1);
5757 var602 = (val*)(49l<<2|1);
5758 var603 = (val*)((long)(0)<<2|3);
5759 var604 = (val*)((long)(0)<<2|3);
5760 var600 = core__flat___CString___to_s_unsafe(var599, var601, var602, var603, var604);
5761 var598 = var600;
5762 varonce597 = var598;
5763 }
5764 {
5765 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_atautoinit, var598); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
5766 }
5767 } else {
5768 {
5769 var605 = nitc___nitc__MClassDef___is_intro(var_mclassdef);
5770 }
5771 var606 = !var605;
5772 if (var606){
5773 if (likely(varonce607!=NULL)) {
5774 var608 = varonce607;
5775 } else {
5776 var609 = "Error: `autoinit` cannot be used in class refinements.";
5777 var611 = (val*)(54l<<2|1);
5778 var612 = (val*)(54l<<2|1);
5779 var613 = (val*)((long)(0)<<2|3);
5780 var614 = (val*)((long)(0)<<2|3);
5781 var610 = core__flat___CString___to_s_unsafe(var609, var611, var612, var613, var614);
5782 var608 = var610;
5783 varonce607 = var608;
5784 }
5785 {
5786 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_atautoinit, var608); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
5787 }
5788 } else {
5789 {
5790 { /* Inline modelize_property$AMethPropdef$is_autoinit= (self,1) on <self:AMethPropdef> */
5791 self->attrs[COLOR_nitc__modelize_property__AMethPropdef___is_autoinit].s = 1; /* _is_autoinit on <self:AMethPropdef> */
5792 RET_LABEL615:(void)0;
5793 }
5794 }
5795 }
5796 }
5797 } else {
5798 }
5799 RET_LABEL:;
5800 }
5801 /* method modelize_property$AMethPropdef$check_signature for (self: AMethPropdef, ModelBuilder) */
5802 void nitc__modelize_property___AMethPropdef___APropdef__check_signature(val* self, val* p0) {
5803 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
5804 val* var /* : nullable MPropDef */;
5805 val* var2 /* : nullable MPropDef */;
5806 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
5807 short int var3 /* : Bool */;
5808 short int var4 /* : Bool */;
5809 val* var_other /* var other: nullable Object */;
5810 short int var6 /* : Bool */;
5811 short int var8 /* : Bool */;
5812 val* var9 /* : MClassDef */;
5813 val* var11 /* : MClassDef */;
5814 val* var_mclassdef /* var mclassdef: MClassDef */;
5815 val* var12 /* : MModule */;
5816 val* var14 /* : MModule */;
5817 val* var_mmodule /* var mmodule: MModule */;
5818 val* var15 /* : nullable ASignature */;
5819 val* var17 /* : nullable ASignature */;
5820 val* var_nsig /* var nsig: nullable ASignature */;
5821 val* var18 /* : nullable MSignature */;
5822 val* var20 /* : nullable MSignature */;
5823 val* var_mysignature /* var mysignature: nullable MSignature */;
5824 short int var21 /* : Bool */;
5825 short int var22 /* : Bool */;
5826 short int var24 /* : Bool */;
5827 short int var26 /* : Bool */;
5828 short int var27 /* : Bool */;
5829 short int var28 /* : Bool */;
5830 val* var_other30 /* var other: nullable Object */;
5831 short int var31 /* : Bool */;
5832 short int var32 /* : Bool */;
5833 short int var33 /* : Bool */;
5834 short int var34 /* : Bool */;
5835 short int var37 /* : Bool */;
5836 short int var38 /* : Bool */;
5837 val* var39 /* : MProperty */;
5838 val* var41 /* : MProperty */;
5839 val* var42 /* : MPropDef */;
5840 val* var44 /* : MPropDef */;
5841 val* var45 /* : nullable MSignature */;
5842 val* var47 /* : nullable MSignature */;
5843 val* var_msignature /* var msignature: nullable MSignature */;
5844 short int var48 /* : Bool */;
5845 short int var49 /* : Bool */;
5846 short int var51 /* : Bool */;
5847 short int var53 /* : Bool */;
5848 val* var54 /* : nullable MType */;
5849 val* var56 /* : nullable MType */;
5850 val* var_precursor_ret_type /* var precursor_ret_type: nullable MType */;
5851 val* var57 /* : nullable MType */;
5852 val* var59 /* : nullable MType */;
5853 val* var_ret_type /* var ret_type: nullable MType */;
5854 short int var60 /* : Bool */;
5855 short int var61 /* : Bool */;
5856 short int var62 /* : Bool */;
5857 short int var64 /* : Bool */;
5858 short int var65 /* : Bool */;
5859 short int var_ /* var : Bool */;
5860 short int var66 /* : Bool */;
5861 short int var67 /* : Bool */;
5862 short int var69 /* : Bool */;
5863 short int var71 /* : Bool */;
5864 val* var72 /* : nullable AType */;
5865 val* var74 /* : nullable AType */;
5866 val* var75 /* : NativeArray[String] */;
5867 static val* varonce;
5868 static val* varonce76;
5869 val* var77 /* : String */;
5870 char* var78 /* : CString */;
5871 val* var79 /* : String */;
5872 val* var80 /* : nullable Int */;
5873 val* var81 /* : nullable Int */;
5874 val* var82 /* : nullable Bool */;
5875 val* var83 /* : nullable Bool */;
5876 static val* varonce84;
5877 val* var85 /* : String */;
5878 char* var86 /* : CString */;
5879 val* var87 /* : String */;
5880 val* var88 /* : nullable Int */;
5881 val* var89 /* : nullable Int */;
5882 val* var90 /* : nullable Bool */;
5883 val* var91 /* : nullable Bool */;
5884 val* var92 /* : MProperty */;
5885 val* var94 /* : MProperty */;
5886 val* var95 /* : String */;
5887 val* var96 /* : String */;
5888 long var99 /* : Int */;
5889 short int var100 /* : Bool */;
5890 short int var102 /* : Bool */;
5891 int cltype;
5892 int idtype;
5893 const char* var_class_name;
5894 short int var103 /* : Bool */;
5895 long var_i /* var i: Int */;
5896 long var104 /* : Int */;
5897 long var_105 /* var : Int */;
5898 short int var106 /* : Bool */;
5899 short int var108 /* : Bool */;
5900 int cltype109;
5901 int idtype110;
5902 const char* var_class_name111;
5903 short int var112 /* : Bool */;
5904 val* var113 /* : Array[MParameter] */;
5905 val* var115 /* : Array[MParameter] */;
5906 val* var116 /* : nullable Object */;
5907 val* var117 /* : MType */;
5908 val* var119 /* : MType */;
5909 val* var_myt /* var myt: MType */;
5910 val* var120 /* : Array[MParameter] */;
5911 val* var122 /* : Array[MParameter] */;
5912 val* var123 /* : nullable Object */;
5913 val* var124 /* : MType */;
5914 val* var126 /* : MType */;
5915 val* var_prt /* var prt: MType */;
5916 val* var127 /* : ANodes[AParam] */;
5917 val* var129 /* : ANodes[AParam] */;
5918 val* var130 /* : ANode */;
5919 val* var_node /* var node: AParam */;
5920 val* var131 /* : MClassType */;
5921 val* var133 /* : MClassType */;
5922 short int var134 /* : Bool */;
5923 short int var135 /* : Bool */;
5924 val* var137 /* : NativeArray[String] */;
5925 static val* varonce136;
5926 static val* varonce138;
5927 val* var139 /* : String */;
5928 char* var140 /* : CString */;
5929 val* var141 /* : String */;
5930 val* var142 /* : nullable Int */;
5931 val* var143 /* : nullable Int */;
5932 val* var144 /* : nullable Bool */;
5933 val* var145 /* : nullable Bool */;
5934 static val* varonce146;
5935 val* var147 /* : String */;
5936 char* var148 /* : CString */;
5937 val* var149 /* : String */;
5938 val* var150 /* : nullable Int */;
5939 val* var151 /* : nullable Int */;
5940 val* var152 /* : nullable Bool */;
5941 val* var153 /* : nullable Bool */;
5942 static val* varonce154;
5943 val* var155 /* : String */;
5944 char* var156 /* : CString */;
5945 val* var157 /* : String */;
5946 val* var158 /* : nullable Int */;
5947 val* var159 /* : nullable Int */;
5948 val* var160 /* : nullable Bool */;
5949 val* var161 /* : nullable Bool */;
5950 static val* varonce162;
5951 val* var163 /* : String */;
5952 char* var164 /* : CString */;
5953 val* var165 /* : String */;
5954 val* var166 /* : nullable Int */;
5955 val* var167 /* : nullable Int */;
5956 val* var168 /* : nullable Bool */;
5957 val* var169 /* : nullable Bool */;
5958 val* var170 /* : String */;
5959 val* var171 /* : Array[MParameter] */;
5960 val* var173 /* : Array[MParameter] */;
5961 val* var174 /* : nullable Object */;
5962 val* var175 /* : String */;
5963 val* var177 /* : String */;
5964 val* var178 /* : String */;
5965 val* var179 /* : String */;
5966 long var182 /* : Int */;
5967 short int var183 /* : Bool */;
5968 short int var184 /* : Bool */;
5969 short int var186 /* : Bool */;
5970 short int var187 /* : Bool */;
5971 val* var_node188 /* var node: nullable ANode */;
5972 short int var189 /* : Bool */;
5973 short int var190 /* : Bool */;
5974 short int var192 /* : Bool */;
5975 short int var193 /* : Bool */;
5976 val* var194 /* : nullable AType */;
5977 val* var196 /* : nullable AType */;
5978 short int var197 /* : Bool */;
5979 short int var198 /* : Bool */;
5980 short int var200 /* : Bool */;
5981 short int var202 /* : Bool */;
5982 short int var203 /* : Bool */;
5983 short int var204 /* : Bool */;
5984 short int var206 /* : Bool */;
5985 short int var208 /* : Bool */;
5986 val* var209 /* : MClassType */;
5987 val* var211 /* : MClassType */;
5988 short int var212 /* : Bool */;
5989 short int var213 /* : Bool */;
5990 val* var215 /* : NativeArray[String] */;
5991 static val* varonce214;
5992 static val* varonce216;
5993 val* var217 /* : String */;
5994 char* var218 /* : CString */;
5995 val* var219 /* : String */;
5996 val* var220 /* : nullable Int */;
5997 val* var221 /* : nullable Int */;
5998 val* var222 /* : nullable Bool */;
5999 val* var223 /* : nullable Bool */;
6000 static val* varonce224;
6001 val* var225 /* : String */;
6002 char* var226 /* : CString */;
6003 val* var227 /* : String */;
6004 val* var228 /* : nullable Int */;
6005 val* var229 /* : nullable Int */;
6006 val* var230 /* : nullable Bool */;
6007 val* var231 /* : nullable Bool */;
6008 static val* varonce232;
6009 val* var233 /* : String */;
6010 char* var234 /* : CString */;
6011 val* var235 /* : String */;
6012 val* var236 /* : nullable Int */;
6013 val* var237 /* : nullable Int */;
6014 val* var238 /* : nullable Bool */;
6015 val* var239 /* : nullable Bool */;
6016 val* var240 /* : String */;
6017 val* var241 /* : String */;
6018 val* var242 /* : String */;
6019 short int var245 /* : Bool */;
6020 short int var246 /* : Bool */;
6021 short int var248 /* : Bool */;
6022 short int var249 /* : Bool */;
6023 long var_i250 /* var i: Int */;
6024 long var251 /* : Int */;
6025 long var_252 /* var : Int */;
6026 short int var253 /* : Bool */;
6027 short int var255 /* : Bool */;
6028 int cltype256;
6029 int idtype257;
6030 const char* var_class_name258;
6031 short int var259 /* : Bool */;
6032 val* var261 /* : ANodes[AParam] */;
6033 val* var263 /* : ANodes[AParam] */;
6034 val* var264 /* : ANode */;
6035 val* var265 /* : nullable AType */;
6036 val* var267 /* : nullable AType */;
6037 val* var_nt /* var nt: nullable AType */;
6038 short int var268 /* : Bool */;
6039 short int var269 /* : Bool */;
6040 short int var271 /* : Bool */;
6041 short int var272 /* : Bool */;
6042 val* var273 /* : nullable MType */;
6043 val* var275 /* : nullable MType */;
6044 long var276 /* : Int */;
6045 val* var277 /* : nullable AType */;
6046 val* var279 /* : nullable AType */;
6047 val* var_nt280 /* var nt: nullable AType */;
6048 short int var281 /* : Bool */;
6049 short int var282 /* : Bool */;
6050 short int var284 /* : Bool */;
6051 short int var285 /* : Bool */;
6052 val* var286 /* : nullable MType */;
6053 val* var288 /* : nullable MType */;
6054 var_modelbuilder = p0;
6055 {
6056 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
6057 var2 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
6058 var = var2;
6059 RET_LABEL1:(void)0;
6060 }
6061 }
6062 var_mpropdef = var;
6063 if (var_mpropdef == NULL) {
6064 var3 = 1; /* is null */
6065 } else {
6066 var3 = 0; /* arg is null but recv is not */
6067 }
6068 if (0) {
6069 { /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
6070 var_other = ((val*)NULL);
6071 {
6072 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6073 var8 = var_mpropdef == var_other;
6074 var6 = var8;
6075 goto RET_LABEL7;
6076 RET_LABEL7:(void)0;
6077 }
6078 }
6079 var4 = var6;
6080 goto RET_LABEL5;
6081 RET_LABEL5:(void)0;
6082 }
6083 var3 = var4;
6084 }
6085 if (var3){
6086 goto RET_LABEL;
6087 } else {
6088 }
6089 {
6090 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6091 var11 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6092 if (unlikely(var11 == NULL)) {
6093 if(catchStack.cursor >= 0){
6094 longjmp(catchStack.envs[catchStack.cursor], 1);
6095 }
6096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6097 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
6098 fatal_exit(1);
6099 }
6100 var9 = var11;
6101 RET_LABEL10:(void)0;
6102 }
6103 }
6104 var_mclassdef = var9;
6105 {
6106 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
6107 var14 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
6108 if (unlikely(var14 == NULL)) {
6109 if(catchStack.cursor >= 0){
6110 longjmp(catchStack.envs[catchStack.cursor], 1);
6111 }
6112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6113 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
6114 fatal_exit(1);
6115 }
6116 var12 = var14;
6117 RET_LABEL13:(void)0;
6118 }
6119 }
6120 var_mmodule = var12;
6121 {
6122 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
6123 var17 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
6124 var15 = var17;
6125 RET_LABEL16:(void)0;
6126 }
6127 }
6128 var_nsig = var15;
6129 {
6130 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6131 var20 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6132 var18 = var20;
6133 RET_LABEL19:(void)0;
6134 }
6135 }
6136 var_mysignature = var18;
6137 if (var_mysignature == NULL) {
6138 var21 = 1; /* is null */
6139 } else {
6140 var21 = 0; /* arg is null but recv is not */
6141 }
6142 if (0) {
6143 { /* Inline kernel$Object$== (var_mysignature,((val*)NULL)) on <var_mysignature:nullable MSignature> */
6144 var_other = ((val*)NULL);
6145 {
6146 { /* Inline kernel$Object$is_same_instance (var_mysignature,var_other) on <var_mysignature:nullable MSignature(MSignature)> */
6147 var26 = var_mysignature == var_other;
6148 var24 = var26;
6149 goto RET_LABEL25;
6150 RET_LABEL25:(void)0;
6151 }
6152 }
6153 var22 = var24;
6154 goto RET_LABEL23;
6155 RET_LABEL23:(void)0;
6156 }
6157 var21 = var22;
6158 }
6159 if (var21){
6160 goto RET_LABEL;
6161 } else {
6162 }
6163 if (var_nsig == NULL) {
6164 var27 = 0; /* is null */
6165 } else {
6166 var27 = 1; /* arg is null and recv is not */
6167 }
6168 if (0) {
6169 { /* Inline kernel$Object$!= (var_nsig,((val*)NULL)) on <var_nsig:nullable ASignature> */
6170 var_other30 = ((val*)NULL);
6171 {
6172 var31 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other30); /* == on <var_nsig:nullable ASignature(ASignature)>*/
6173 }
6174 var32 = !var31;
6175 var28 = var32;
6176 goto RET_LABEL29;
6177 RET_LABEL29:(void)0;
6178 }
6179 var27 = var28;
6180 }
6181 if (var27){
6182 {
6183 var33 = nitc__modelize_property___ASignature___check_signature(var_nsig, var_modelbuilder, var_mclassdef);
6184 }
6185 var34 = !var33;
6186 if (var34){
6187 {
6188 { /* Inline model$MMethodDef$msignature= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6189 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val = ((val*)NULL); /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6190 RET_LABEL35:(void)0;
6191 }
6192 }
6193 {
6194 { /* Inline model_base$MEntity$is_broken= (var_mpropdef,1) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6195 var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6196 RET_LABEL36:(void)0;
6197 }
6198 }
6199 goto RET_LABEL;
6200 } else {
6201 }
6202 } else {
6203 }
6204 {
6205 var37 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
6206 }
6207 var38 = !var37;
6208 if (var38){
6209 {
6210 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6211 var41 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6212 if (unlikely(var41 == NULL)) {
6213 if(catchStack.cursor >= 0){
6214 longjmp(catchStack.envs[catchStack.cursor], 1);
6215 }
6216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6217 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
6218 fatal_exit(1);
6219 }
6220 var39 = var41;
6221 RET_LABEL40:(void)0;
6222 }
6223 }
6224 {
6225 { /* Inline model$MProperty$intro (var39) on <var39:MProperty(MMethod)> */
6226 var44 = var39->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var39:MProperty(MMethod)> */
6227 if (unlikely(var44 == NULL)) {
6228 if(catchStack.cursor >= 0){
6229 longjmp(catchStack.envs[catchStack.cursor], 1);
6230 }
6231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6232 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
6233 fatal_exit(1);
6234 }
6235 var42 = var44;
6236 RET_LABEL43:(void)0;
6237 }
6238 }
6239 {
6240 { /* Inline model$MMethodDef$msignature (var42) on <var42:MPropDef(MMethodDef)> */
6241 var47 = var42->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var42:MPropDef(MMethodDef)> */
6242 var45 = var47;
6243 RET_LABEL46:(void)0;
6244 }
6245 }
6246 var_msignature = var45;
6247 if (var_msignature == NULL) {
6248 var48 = 1; /* is null */
6249 } else {
6250 var48 = 0; /* arg is null but recv is not */
6251 }
6252 if (0) {
6253 { /* Inline kernel$Object$== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
6254 var_other = ((val*)NULL);
6255 {
6256 { /* Inline kernel$Object$is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
6257 var53 = var_msignature == var_other;
6258 var51 = var53;
6259 goto RET_LABEL52;
6260 RET_LABEL52:(void)0;
6261 }
6262 }
6263 var49 = var51;
6264 goto RET_LABEL50;
6265 RET_LABEL50:(void)0;
6266 }
6267 var48 = var49;
6268 }
6269 if (var48){
6270 goto RET_LABEL;
6271 } else {
6272 }
6273 {
6274 { /* Inline model$MSignature$return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
6275 var56 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
6276 var54 = var56;
6277 RET_LABEL55:(void)0;
6278 }
6279 }
6280 var_precursor_ret_type = var54;
6281 {
6282 { /* Inline model$MSignature$return_mtype (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
6283 var59 = var_mysignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_mysignature:nullable MSignature(MSignature)> */
6284 var57 = var59;
6285 RET_LABEL58:(void)0;
6286 }
6287 }
6288 var_ret_type = var57;
6289 if (var_ret_type == NULL) {
6290 var61 = 0; /* is null */
6291 } else {
6292 var61 = 1; /* arg is null and recv is not */
6293 }
6294 if (0) {
6295 { /* Inline kernel$Object$!= (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
6296 var_other30 = ((val*)NULL);
6297 {
6298 var64 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other30); /* == on <var_ret_type:nullable MType(MType)>*/
6299 }
6300 var65 = !var64;
6301 var62 = var65;
6302 goto RET_LABEL63;
6303 RET_LABEL63:(void)0;
6304 }
6305 var61 = var62;
6306 }
6307 var_ = var61;
6308 if (var61){
6309 if (var_precursor_ret_type == NULL) {
6310 var66 = 1; /* is null */
6311 } else {
6312 var66 = 0; /* arg is null but recv is not */
6313 }
6314 if (0) {
6315 { /* Inline kernel$Object$== (var_precursor_ret_type,((val*)NULL)) on <var_precursor_ret_type:nullable MType> */
6316 var_other = ((val*)NULL);
6317 {
6318 { /* Inline kernel$Object$is_same_instance (var_precursor_ret_type,var_other) on <var_precursor_ret_type:nullable MType(MType)> */
6319 var71 = var_precursor_ret_type == var_other;
6320 var69 = var71;
6321 goto RET_LABEL70;
6322 RET_LABEL70:(void)0;
6323 }
6324 }
6325 var67 = var69;
6326 goto RET_LABEL68;
6327 RET_LABEL68:(void)0;
6328 }
6329 var66 = var67;
6330 }
6331 var60 = var66;
6332 } else {
6333 var60 = var_;
6334 }
6335 if (var60){
6336 if (var_nsig == NULL) {
6337 if(catchStack.cursor >= 0){
6338 longjmp(catchStack.envs[catchStack.cursor], 1);
6339 }
6340 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6341 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1025);
6342 fatal_exit(1);
6343 } else {
6344 { /* Inline parser_nodes$ASignature$n_type (var_nsig) on <var_nsig:nullable ASignature> */
6345 if (unlikely(var_nsig == NULL)) {
6346 if(catchStack.cursor >= 0){
6347 longjmp(catchStack.envs[catchStack.cursor], 1);
6348 }
6349 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6350 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1752);
6351 fatal_exit(1);
6352 }
6353 var74 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_type].val; /* _n_type on <var_nsig:nullable ASignature> */
6354 var72 = var74;
6355 RET_LABEL73:(void)0;
6356 }
6357 }
6358 if (unlikely(varonce==NULL)) {
6359 var75 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6360 if (likely(varonce76!=NULL)) {
6361 var77 = varonce76;
6362 } else {
6363 var78 = "Redef Error: `";
6364 var80 = (val*)(14l<<2|1);
6365 var81 = (val*)(14l<<2|1);
6366 var82 = (val*)((long)(0)<<2|3);
6367 var83 = (val*)((long)(0)<<2|3);
6368 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
6369 var77 = var79;
6370 varonce76 = var77;
6371 }
6372 ((struct instance_core__NativeArray*)var75)->values[0]=var77;
6373 if (likely(varonce84!=NULL)) {
6374 var85 = varonce84;
6375 } else {
6376 var86 = "` is a procedure, not a function.";
6377 var88 = (val*)(33l<<2|1);
6378 var89 = (val*)(33l<<2|1);
6379 var90 = (val*)((long)(0)<<2|3);
6380 var91 = (val*)((long)(0)<<2|3);
6381 var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
6382 var85 = var87;
6383 varonce84 = var85;
6384 }
6385 ((struct instance_core__NativeArray*)var75)->values[2]=var85;
6386 } else {
6387 var75 = varonce;
6388 varonce = NULL;
6389 }
6390 {
6391 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6392 var94 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6393 if (unlikely(var94 == NULL)) {
6394 if(catchStack.cursor >= 0){
6395 longjmp(catchStack.envs[catchStack.cursor], 1);
6396 }
6397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6398 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
6399 fatal_exit(1);
6400 }
6401 var92 = var94;
6402 RET_LABEL93:(void)0;
6403 }
6404 }
6405 {
6406 var95 = ((val*(*)(val* self))(var92->class->vft[COLOR_core__abstract_text__Object__to_s]))(var92); /* to_s on <var92:MProperty(MMethod)>*/
6407 }
6408 ((struct instance_core__NativeArray*)var75)->values[1]=var95;
6409 {
6410 var96 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on <var75:NativeArray[String]>*/
6411 }
6412 varonce = var75;
6413 {
6414 nitc___nitc__ModelBuilder___error(var_modelbuilder, var72, var96); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
6415 }
6416 {
6417 { /* Inline model$MMethodDef$msignature= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6418 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val = ((val*)NULL); /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6419 RET_LABEL97:(void)0;
6420 }
6421 }
6422 {
6423 { /* Inline model_base$MEntity$is_broken= (var_mpropdef,1) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6424 var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6425 RET_LABEL98:(void)0;
6426 }
6427 }
6428 goto RET_LABEL;
6429 } else {
6430 }
6431 {
6432 var99 = nitc___nitc__MSignature___arity(var_mysignature);
6433 }
6434 {
6435 { /* Inline kernel$Int$> (var99,0l) on <var99:Int> */
6436 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6437 /* <0l:Int> isa OTHER */
6438 var102 = 1; /* easy <0l:Int> isa OTHER*/
6439 if (unlikely(!var102)) {
6440 var_class_name = type_core__Int.name;
6441 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6442 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6443 fatal_exit(1);
6444 }
6445 var103 = var99 > 0l;
6446 var100 = var103;
6447 goto RET_LABEL101;
6448 RET_LABEL101:(void)0;
6449 }
6450 }
6451 if (var100){
6452 var_i = 0l;
6453 {
6454 var104 = nitc___nitc__MSignature___arity(var_mysignature);
6455 }
6456 var_105 = var104;
6457 for(;;) {
6458 {
6459 { /* Inline kernel$Int$< (var_i,var_105) on <var_i:Int> */
6460 /* Covariant cast for argument 0 (i) <var_105:Int> isa OTHER */
6461 /* <var_105:Int> isa OTHER */
6462 var108 = 1; /* easy <var_105:Int> isa OTHER*/
6463 if (unlikely(!var108)) {
6464 var_class_name111 = type_core__Int.name;
6465 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name111);
6466 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
6467 fatal_exit(1);
6468 }
6469 var112 = var_i < var_105;
6470 var106 = var112;
6471 goto RET_LABEL107;
6472 RET_LABEL107:(void)0;
6473 }
6474 }
6475 if (var106){
6476 } else {
6477 goto BREAK_label;
6478 }
6479 {
6480 { /* Inline model$MSignature$mparameters (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
6481 var115 = var_mysignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_mysignature:nullable MSignature(MSignature)> */
6482 if (unlikely(var115 == NULL)) {
6483 if(catchStack.cursor >= 0){
6484 longjmp(catchStack.envs[catchStack.cursor], 1);
6485 }
6486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6488 fatal_exit(1);
6489 }
6490 var113 = var115;
6491 RET_LABEL114:(void)0;
6492 }
6493 }
6494 {
6495 var116 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var113, var_i);
6496 }
6497 {
6498 { /* Inline model$MParameter$mtype (var116) on <var116:nullable Object(MParameter)> */
6499 var119 = var116->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var116:nullable Object(MParameter)> */
6500 if (unlikely(var119 == NULL)) {
6501 if(catchStack.cursor >= 0){
6502 longjmp(catchStack.envs[catchStack.cursor], 1);
6503 }
6504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6505 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6506 fatal_exit(1);
6507 }
6508 var117 = var119;
6509 RET_LABEL118:(void)0;
6510 }
6511 }
6512 var_myt = var117;
6513 {
6514 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
6515 var122 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
6516 if (unlikely(var122 == NULL)) {
6517 if(catchStack.cursor >= 0){
6518 longjmp(catchStack.envs[catchStack.cursor], 1);
6519 }
6520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6521 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6522 fatal_exit(1);
6523 }
6524 var120 = var122;
6525 RET_LABEL121:(void)0;
6526 }
6527 }
6528 {
6529 var123 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var120, var_i);
6530 }
6531 {
6532 { /* Inline model$MParameter$mtype (var123) on <var123:nullable Object(MParameter)> */
6533 var126 = var123->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var123:nullable Object(MParameter)> */
6534 if (unlikely(var126 == NULL)) {
6535 if(catchStack.cursor >= 0){
6536 longjmp(catchStack.envs[catchStack.cursor], 1);
6537 }
6538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6540 fatal_exit(1);
6541 }
6542 var124 = var126;
6543 RET_LABEL125:(void)0;
6544 }
6545 }
6546 var_prt = var124;
6547 if (var_nsig == NULL) {
6548 if(catchStack.cursor >= 0){
6549 longjmp(catchStack.envs[catchStack.cursor], 1);
6550 }
6551 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6552 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1036);
6553 fatal_exit(1);
6554 } else {
6555 { /* Inline parser_nodes$ASignature$n_params (var_nsig) on <var_nsig:nullable ASignature> */
6556 if (unlikely(var_nsig == NULL)) {
6557 if(catchStack.cursor >= 0){
6558 longjmp(catchStack.envs[catchStack.cursor], 1);
6559 }
6560 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6561 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
6562 fatal_exit(1);
6563 }
6564 var129 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var_nsig:nullable ASignature> */
6565 if (unlikely(var129 == NULL)) {
6566 if(catchStack.cursor >= 0){
6567 longjmp(catchStack.envs[catchStack.cursor], 1);
6568 }
6569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
6570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
6571 fatal_exit(1);
6572 }
6573 var127 = var129;
6574 RET_LABEL128:(void)0;
6575 }
6576 }
6577 {
6578 var130 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var127, var_i);
6579 }
6580 var_node = var130;
6581 {
6582 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
6583 var133 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
6584 if (unlikely(var133 == NULL)) {
6585 if(catchStack.cursor >= 0){
6586 longjmp(catchStack.envs[catchStack.cursor], 1);
6587 }
6588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
6590 fatal_exit(1);
6591 }
6592 var131 = var133;
6593 RET_LABEL132:(void)0;
6594 }
6595 }
6596 {
6597 var134 = nitc___nitc__ModelBuilder___check_sametype(var_modelbuilder, var_node, var_mmodule, var131, var_myt, var_prt);
6598 }
6599 var135 = !var134;
6600 if (var135){
6601 if (unlikely(varonce136==NULL)) {
6602 var137 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
6603 if (likely(varonce138!=NULL)) {
6604 var139 = varonce138;
6605 } else {
6606 var140 = "Redef Error: expected `";
6607 var142 = (val*)(23l<<2|1);
6608 var143 = (val*)(23l<<2|1);
6609 var144 = (val*)((long)(0)<<2|3);
6610 var145 = (val*)((long)(0)<<2|3);
6611 var141 = core__flat___CString___to_s_unsafe(var140, var142, var143, var144, var145);
6612 var139 = var141;
6613 varonce138 = var139;
6614 }
6615 ((struct instance_core__NativeArray*)var137)->values[0]=var139;
6616 if (likely(varonce146!=NULL)) {
6617 var147 = varonce146;
6618 } else {
6619 var148 = "` for parameter `";
6620 var150 = (val*)(17l<<2|1);
6621 var151 = (val*)(17l<<2|1);
6622 var152 = (val*)((long)(0)<<2|3);
6623 var153 = (val*)((long)(0)<<2|3);
6624 var149 = core__flat___CString___to_s_unsafe(var148, var150, var151, var152, var153);
6625 var147 = var149;
6626 varonce146 = var147;
6627 }
6628 ((struct instance_core__NativeArray*)var137)->values[2]=var147;
6629 if (likely(varonce154!=NULL)) {
6630 var155 = varonce154;
6631 } else {
6632 var156 = "\'; got `";
6633 var158 = (val*)(8l<<2|1);
6634 var159 = (val*)(8l<<2|1);
6635 var160 = (val*)((long)(0)<<2|3);
6636 var161 = (val*)((long)(0)<<2|3);
6637 var157 = core__flat___CString___to_s_unsafe(var156, var158, var159, var160, var161);
6638 var155 = var157;
6639 varonce154 = var155;
6640 }
6641 ((struct instance_core__NativeArray*)var137)->values[4]=var155;
6642 if (likely(varonce162!=NULL)) {
6643 var163 = varonce162;
6644 } else {
6645 var164 = "`.";
6646 var166 = (val*)(2l<<2|1);
6647 var167 = (val*)(2l<<2|1);
6648 var168 = (val*)((long)(0)<<2|3);
6649 var169 = (val*)((long)(0)<<2|3);
6650 var165 = core__flat___CString___to_s_unsafe(var164, var166, var167, var168, var169);
6651 var163 = var165;
6652 varonce162 = var163;
6653 }
6654 ((struct instance_core__NativeArray*)var137)->values[6]=var163;
6655 } else {
6656 var137 = varonce136;
6657 varonce136 = NULL;
6658 }
6659 {
6660 var170 = ((val*(*)(val* self))(var_prt->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prt); /* to_s on <var_prt:MType>*/
6661 }
6662 ((struct instance_core__NativeArray*)var137)->values[1]=var170;
6663 {
6664 { /* Inline model$MSignature$mparameters (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
6665 var173 = var_mysignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_mysignature:nullable MSignature(MSignature)> */
6666 if (unlikely(var173 == NULL)) {
6667 if(catchStack.cursor >= 0){
6668 longjmp(catchStack.envs[catchStack.cursor], 1);
6669 }
6670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6671 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6672 fatal_exit(1);
6673 }
6674 var171 = var173;
6675 RET_LABEL172:(void)0;
6676 }
6677 }
6678 {
6679 var174 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var171, var_i);
6680 }
6681 {
6682 { /* Inline model$MParameter$name (var174) on <var174:nullable Object(MParameter)> */
6683 var177 = var174->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var174:nullable Object(MParameter)> */
6684 if (unlikely(var177 == NULL)) {
6685 if(catchStack.cursor >= 0){
6686 longjmp(catchStack.envs[catchStack.cursor], 1);
6687 }
6688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
6690 fatal_exit(1);
6691 }
6692 var175 = var177;
6693 RET_LABEL176:(void)0;
6694 }
6695 }
6696 ((struct instance_core__NativeArray*)var137)->values[3]=var175;
6697 {
6698 var178 = ((val*(*)(val* self))(var_myt->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_myt); /* to_s on <var_myt:MType>*/
6699 }
6700 ((struct instance_core__NativeArray*)var137)->values[5]=var178;
6701 {
6702 var179 = ((val*(*)(val* self))(var137->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var137); /* native_to_s on <var137:NativeArray[String]>*/
6703 }
6704 varonce136 = var137;
6705 {
6706 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_node, var179); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
6707 }
6708 {
6709 { /* Inline model$MMethodDef$msignature= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6710 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val = ((val*)NULL); /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6711 RET_LABEL180:(void)0;
6712 }
6713 }
6714 {
6715 { /* Inline model_base$MEntity$is_broken= (var_mpropdef,1) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6716 var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6717 RET_LABEL181:(void)0;
6718 }
6719 }
6720 } else {
6721 }
6722 {
6723 var182 = core___core__Int___Discrete__successor(var_i, 1l);
6724 }
6725 var_i = var182;
6726 }
6727 BREAK_label: (void)0;
6728 } else {
6729 }
6730 if (var_precursor_ret_type == NULL) {
6731 var183 = 0; /* is null */
6732 } else {
6733 var183 = 1; /* arg is null and recv is not */
6734 }
6735 if (0) {
6736 { /* Inline kernel$Object$!= (var_precursor_ret_type,((val*)NULL)) on <var_precursor_ret_type:nullable MType> */
6737 var_other30 = ((val*)NULL);
6738 {
6739 var186 = ((short int(*)(val* self, val* p0))(var_precursor_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_precursor_ret_type, var_other30); /* == on <var_precursor_ret_type:nullable MType(MType)>*/
6740 }
6741 var187 = !var186;
6742 var184 = var187;
6743 goto RET_LABEL185;
6744 RET_LABEL185:(void)0;
6745 }
6746 var183 = var184;
6747 }
6748 if (var183){
6749 var_node188 = ((val*)NULL);
6750 if (var_nsig == NULL) {
6751 var189 = 0; /* is null */
6752 } else {
6753 var189 = 1; /* arg is null and recv is not */
6754 }
6755 if (0) {
6756 { /* Inline kernel$Object$!= (var_nsig,((val*)NULL)) on <var_nsig:nullable ASignature> */
6757 var_other30 = ((val*)NULL);
6758 {
6759 var192 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other30); /* == on <var_nsig:nullable ASignature(ASignature)>*/
6760 }
6761 var193 = !var192;
6762 var190 = var193;
6763 goto RET_LABEL191;
6764 RET_LABEL191:(void)0;
6765 }
6766 var189 = var190;
6767 }
6768 if (var189){
6769 {
6770 { /* Inline parser_nodes$ASignature$n_type (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
6771 var196 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_type].val; /* _n_type on <var_nsig:nullable ASignature(ASignature)> */
6772 var194 = var196;
6773 RET_LABEL195:(void)0;
6774 }
6775 }
6776 var_node188 = var194;
6777 } else {
6778 }
6779 if (var_node188 == NULL) {
6780 var197 = 1; /* is null */
6781 } else {
6782 var197 = 0; /* arg is null but recv is not */
6783 }
6784 if (0) {
6785 { /* Inline kernel$Object$== (var_node188,((val*)NULL)) on <var_node188:nullable ANode> */
6786 var_other = ((val*)NULL);
6787 {
6788 { /* Inline kernel$Object$is_same_instance (var_node188,var_other) on <var_node188:nullable ANode(ANode)> */
6789 var202 = var_node188 == var_other;
6790 var200 = var202;
6791 goto RET_LABEL201;
6792 RET_LABEL201:(void)0;
6793 }
6794 }
6795 var198 = var200;
6796 goto RET_LABEL199;
6797 RET_LABEL199:(void)0;
6798 }
6799 var197 = var198;
6800 }
6801 if (var197){
6802 var_node188 = self;
6803 } else {
6804 }
6805 if (var_ret_type == NULL) {
6806 var203 = 1; /* is null */
6807 } else {
6808 var203 = 0; /* arg is null but recv is not */
6809 }
6810 if (0) {
6811 { /* Inline kernel$Object$== (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
6812 var_other = ((val*)NULL);
6813 {
6814 { /* Inline kernel$Object$is_same_instance (var_ret_type,var_other) on <var_ret_type:nullable MType(MType)> */
6815 var208 = var_ret_type == var_other;
6816 var206 = var208;
6817 goto RET_LABEL207;
6818 RET_LABEL207:(void)0;
6819 }
6820 }
6821 var204 = var206;
6822 goto RET_LABEL205;
6823 RET_LABEL205:(void)0;
6824 }
6825 var203 = var204;
6826 }
6827 if (var203){
6828 var_ret_type = var_precursor_ret_type;
6829 } else {
6830 {
6831 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
6832 var211 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
6833 if (unlikely(var211 == NULL)) {
6834 if(catchStack.cursor >= 0){
6835 longjmp(catchStack.envs[catchStack.cursor], 1);
6836 }
6837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
6839 fatal_exit(1);
6840 }
6841 var209 = var211;
6842 RET_LABEL210:(void)0;
6843 }
6844 }
6845 {
6846 var212 = nitc___nitc__ModelBuilder___check_subtype(var_modelbuilder, var_node188, var_mmodule, var209, var_ret_type, var_precursor_ret_type);
6847 }
6848 var213 = !var212;
6849 if (var213){
6850 if (unlikely(varonce214==NULL)) {
6851 var215 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
6852 if (likely(varonce216!=NULL)) {
6853 var217 = varonce216;
6854 } else {
6855 var218 = "Redef Error: expected `";
6856 var220 = (val*)(23l<<2|1);
6857 var221 = (val*)(23l<<2|1);
6858 var222 = (val*)((long)(0)<<2|3);
6859 var223 = (val*)((long)(0)<<2|3);
6860 var219 = core__flat___CString___to_s_unsafe(var218, var220, var221, var222, var223);
6861 var217 = var219;
6862 varonce216 = var217;
6863 }
6864 ((struct instance_core__NativeArray*)var215)->values[0]=var217;
6865 if (likely(varonce224!=NULL)) {
6866 var225 = varonce224;
6867 } else {
6868 var226 = "` for return type; got `";
6869 var228 = (val*)(24l<<2|1);
6870 var229 = (val*)(24l<<2|1);
6871 var230 = (val*)((long)(0)<<2|3);
6872 var231 = (val*)((long)(0)<<2|3);
6873 var227 = core__flat___CString___to_s_unsafe(var226, var228, var229, var230, var231);
6874 var225 = var227;
6875 varonce224 = var225;
6876 }
6877 ((struct instance_core__NativeArray*)var215)->values[2]=var225;
6878 if (likely(varonce232!=NULL)) {
6879 var233 = varonce232;
6880 } else {
6881 var234 = "`.";
6882 var236 = (val*)(2l<<2|1);
6883 var237 = (val*)(2l<<2|1);
6884 var238 = (val*)((long)(0)<<2|3);
6885 var239 = (val*)((long)(0)<<2|3);
6886 var235 = core__flat___CString___to_s_unsafe(var234, var236, var237, var238, var239);
6887 var233 = var235;
6888 varonce232 = var233;
6889 }
6890 ((struct instance_core__NativeArray*)var215)->values[4]=var233;
6891 } else {
6892 var215 = varonce214;
6893 varonce214 = NULL;
6894 }
6895 {
6896 var240 = ((val*(*)(val* self))(var_precursor_ret_type->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_precursor_ret_type); /* to_s on <var_precursor_ret_type:nullable MType(MType)>*/
6897 }
6898 ((struct instance_core__NativeArray*)var215)->values[1]=var240;
6899 {
6900 var241 = ((val*(*)(val* self))(var_ret_type->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret_type); /* to_s on <var_ret_type:nullable MType(MType)>*/
6901 }
6902 ((struct instance_core__NativeArray*)var215)->values[3]=var241;
6903 {
6904 var242 = ((val*(*)(val* self))(var215->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var215); /* native_to_s on <var215:NativeArray[String]>*/
6905 }
6906 varonce214 = var215;
6907 {
6908 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_node188, var242); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
6909 }
6910 {
6911 { /* Inline model$MMethodDef$msignature= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6912 var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val = ((val*)NULL); /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6913 RET_LABEL243:(void)0;
6914 }
6915 }
6916 {
6917 { /* Inline model_base$MEntity$is_broken= (var_mpropdef,1) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6918 var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
6919 RET_LABEL244:(void)0;
6920 }
6921 }
6922 } else {
6923 }
6924 }
6925 } else {
6926 }
6927 } else {
6928 }
6929 if (var_nsig == NULL) {
6930 var245 = 0; /* is null */
6931 } else {
6932 var245 = 1; /* arg is null and recv is not */
6933 }
6934 if (0) {
6935 { /* Inline kernel$Object$!= (var_nsig,((val*)NULL)) on <var_nsig:nullable ASignature> */
6936 var_other30 = ((val*)NULL);
6937 {
6938 var248 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other30); /* == on <var_nsig:nullable ASignature(ASignature)>*/
6939 }
6940 var249 = !var248;
6941 var246 = var249;
6942 goto RET_LABEL247;
6943 RET_LABEL247:(void)0;
6944 }
6945 var245 = var246;
6946 }
6947 if (var245){
6948 var_i250 = 0l;
6949 {
6950 var251 = nitc___nitc__MSignature___arity(var_mysignature);
6951 }
6952 var_252 = var251;
6953 for(;;) {
6954 {
6955 { /* Inline kernel$Int$< (var_i250,var_252) on <var_i250:Int> */
6956 /* Covariant cast for argument 0 (i) <var_252:Int> isa OTHER */
6957 /* <var_252:Int> isa OTHER */
6958 var255 = 1; /* easy <var_252:Int> isa OTHER*/
6959 if (unlikely(!var255)) {
6960 var_class_name258 = type_core__Int.name;
6961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name258);
6962 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
6963 fatal_exit(1);
6964 }
6965 var259 = var_i250 < var_252;
6966 var253 = var259;
6967 goto RET_LABEL254;
6968 RET_LABEL254:(void)0;
6969 }
6970 }
6971 if (var253){
6972 } else {
6973 goto BREAK_label260;
6974 }
6975 {
6976 { /* Inline parser_nodes$ASignature$n_params (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
6977 var263 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var_nsig:nullable ASignature(ASignature)> */
6978 if (unlikely(var263 == NULL)) {
6979 if(catchStack.cursor >= 0){
6980 longjmp(catchStack.envs[catchStack.cursor], 1);
6981 }
6982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
6983 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
6984 fatal_exit(1);
6985 }
6986 var261 = var263;
6987 RET_LABEL262:(void)0;
6988 }
6989 }
6990 {
6991 var264 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var261, var_i250);
6992 }
6993 {
6994 { /* Inline parser_nodes$AParam$n_type (var264) on <var264:ANode(AParam)> */
6995 var267 = var264->attrs[COLOR_nitc__parser_nodes__AParam___n_type].val; /* _n_type on <var264:ANode(AParam)> */
6996 var265 = var267;
6997 RET_LABEL266:(void)0;
6998 }
6999 }
7000 var_nt = var265;
7001 if (var_nt == NULL) {
7002 var268 = 0; /* is null */
7003 } else {
7004 var268 = 1; /* arg is null and recv is not */
7005 }
7006 if (0) {
7007 { /* Inline kernel$Object$!= (var_nt,((val*)NULL)) on <var_nt:nullable AType> */
7008 var_other30 = ((val*)NULL);
7009 {
7010 var271 = ((short int(*)(val* self, val* p0))(var_nt->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nt, var_other30); /* == on <var_nt:nullable AType(AType)>*/
7011 }
7012 var272 = !var271;
7013 var269 = var272;
7014 goto RET_LABEL270;
7015 RET_LABEL270:(void)0;
7016 }
7017 var268 = var269;
7018 }
7019 if (var268){
7020 {
7021 { /* Inline modelbuilder_base$AType$mtype (var_nt) on <var_nt:nullable AType(AType)> */
7022 var275 = var_nt->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val; /* _mtype on <var_nt:nullable AType(AType)> */
7023 var273 = var275;
7024 RET_LABEL274:(void)0;
7025 }
7026 }
7027 if (unlikely(var273 == NULL)) {
7028 if(catchStack.cursor >= 0){
7029 longjmp(catchStack.envs[catchStack.cursor], 1);
7030 }
7031 PRINT_ERROR("Runtime error: %s", "Cast failed");
7032 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1063);
7033 fatal_exit(1);
7034 }
7035 {
7036 nitc__modelize_property___ModelBuilder___check_visibility(var_modelbuilder, var_nt, var273, var_mpropdef); /* Direct call modelize_property$ModelBuilder$check_visibility on <var_modelbuilder:ModelBuilder>*/
7037 }
7038 } else {
7039 }
7040 {
7041 var276 = core___core__Int___Discrete__successor(var_i250, 1l);
7042 }
7043 var_i250 = var276;
7044 }
7045 BREAK_label260: (void)0;
7046 {
7047 { /* Inline parser_nodes$ASignature$n_type (var_nsig) on <var_nsig:nullable ASignature(ASignature)> */
7048 var279 = var_nsig->attrs[COLOR_nitc__parser_nodes__ASignature___n_type].val; /* _n_type on <var_nsig:nullable ASignature(ASignature)> */
7049 var277 = var279;
7050 RET_LABEL278:(void)0;
7051 }
7052 }
7053 var_nt280 = var277;
7054 if (var_nt280 == NULL) {
7055 var281 = 0; /* is null */
7056 } else {
7057 var281 = 1; /* arg is null and recv is not */
7058 }
7059 if (0) {
7060 { /* Inline kernel$Object$!= (var_nt280,((val*)NULL)) on <var_nt280:nullable AType> */
7061 var_other30 = ((val*)NULL);
7062 {
7063 var284 = ((short int(*)(val* self, val* p0))(var_nt280->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nt280, var_other30); /* == on <var_nt280:nullable AType(AType)>*/
7064 }
7065 var285 = !var284;
7066 var282 = var285;
7067 goto RET_LABEL283;
7068 RET_LABEL283:(void)0;
7069 }
7070 var281 = var282;
7071 }
7072 if (var281){
7073 {
7074 { /* Inline modelbuilder_base$AType$mtype (var_nt280) on <var_nt280:nullable AType(AType)> */
7075 var288 = var_nt280->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val; /* _mtype on <var_nt280:nullable AType(AType)> */
7076 var286 = var288;
7077 RET_LABEL287:(void)0;
7078 }
7079 }
7080 if (unlikely(var286 == NULL)) {
7081 if(catchStack.cursor >= 0){
7082 longjmp(catchStack.envs[catchStack.cursor], 1);
7083 }
7084 PRINT_ERROR("Runtime error: %s", "Cast failed");
7085 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1066);
7086 fatal_exit(1);
7087 }
7088 {
7089 nitc__modelize_property___ModelBuilder___check_visibility(var_modelbuilder, var_nt280, var286, var_mpropdef); /* Direct call modelize_property$ModelBuilder$check_visibility on <var_modelbuilder:ModelBuilder>*/
7090 }
7091 } else {
7092 }
7093 } else {
7094 }
7095 {
7096 nitc__modelize_property___AMethPropdef___APropdef__check_repeated_types(self, var_modelbuilder); /* Direct call modelize_property$AMethPropdef$check_repeated_types on <self:AMethPropdef>*/
7097 }
7098 RET_LABEL:;
7099 }
7100 /* method modelize_property$AMethPropdef$check_repeated_types for (self: AMethPropdef, ModelBuilder) */
7101 void nitc__modelize_property___AMethPropdef___APropdef__check_repeated_types(val* self, val* p0) {
7102 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
7103 val* var /* : nullable MPropDef */;
7104 val* var2 /* : nullable MPropDef */;
7105 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
7106 short int var3 /* : Bool */;
7107 short int var4 /* : Bool */;
7108 val* var_other /* var other: nullable Object */;
7109 short int var6 /* : Bool */;
7110 short int var8 /* : Bool */;
7111 short int var9 /* : Bool */;
7112 short int var10 /* : Bool */;
7113 short int var_ /* var : Bool */;
7114 val* var11 /* : nullable ASignature */;
7115 val* var13 /* : nullable ASignature */;
7116 short int var14 /* : Bool */;
7117 short int var15 /* : Bool */;
7118 short int var17 /* : Bool */;
7119 short int var19 /* : Bool */;
7120 val* var20 /* : nullable ASignature */;
7121 val* var22 /* : nullable ASignature */;
7122 val* var23 /* : ANodes[AParam] */;
7123 val* var25 /* : ANodes[AParam] */;
7124 val* var_26 /* var : ANodes[AParam] */;
7125 val* var27 /* : Iterator[ANode] */;
7126 val* var_28 /* var : Iterator[AParam] */;
7127 short int var29 /* : Bool */;
7128 val* var30 /* : nullable Object */;
7129 val* var_param /* var param: AParam */;
7130 val* var31 /* : nullable AType */;
7131 val* var33 /* : nullable AType */;
7132 short int var34 /* : Bool */;
7133 short int var35 /* : Bool */;
7134 val* var_other37 /* var other: nullable Object */;
7135 short int var38 /* : Bool */;
7136 short int var39 /* : Bool */;
7137 val* var40 /* : nullable AType */;
7138 val* var42 /* : nullable AType */;
7139 static val* varonce;
7140 val* var43 /* : String */;
7141 char* var44 /* : CString */;
7142 val* var45 /* : String */;
7143 val* var46 /* : nullable Int */;
7144 val* var47 /* : nullable Int */;
7145 val* var48 /* : nullable Bool */;
7146 val* var49 /* : nullable Bool */;
7147 val* var51 /* : NativeArray[String] */;
7148 static val* varonce50;
7149 static val* varonce52;
7150 val* var53 /* : String */;
7151 char* var54 /* : CString */;
7152 val* var55 /* : String */;
7153 val* var56 /* : nullable Int */;
7154 val* var57 /* : nullable Int */;
7155 val* var58 /* : nullable Bool */;
7156 val* var59 /* : nullable Bool */;
7157 static val* varonce60;
7158 val* var61 /* : String */;
7159 char* var62 /* : CString */;
7160 val* var63 /* : String */;
7161 val* var64 /* : nullable Int */;
7162 val* var65 /* : nullable Int */;
7163 val* var66 /* : nullable Bool */;
7164 val* var67 /* : nullable Bool */;
7165 static val* varonce68;
7166 val* var69 /* : String */;
7167 char* var70 /* : CString */;
7168 val* var71 /* : String */;
7169 val* var72 /* : nullable Int */;
7170 val* var73 /* : nullable Int */;
7171 val* var74 /* : nullable Bool */;
7172 val* var75 /* : nullable Bool */;
7173 val* var76 /* : TId */;
7174 val* var78 /* : TId */;
7175 val* var79 /* : String */;
7176 val* var80 /* : String */;
7177 val* var81 /* : String */;
7178 val* var82 /* : MProperty */;
7179 val* var84 /* : MProperty */;
7180 val* var85 /* : MPropDef */;
7181 val* var87 /* : MPropDef */;
7182 val* var_intro /* var intro: MMethodDef */;
7183 val* var88 /* : HashMap[MPropDef, APropdef] */;
7184 val* var90 /* : HashMap[MPropDef, APropdef] */;
7185 val* var91 /* : nullable Object */;
7186 val* var_n_intro /* var n_intro: nullable APropdef */;
7187 short int var92 /* : Bool */;
7188 short int var93 /* : Bool */;
7189 short int var94 /* : Bool */;
7190 short int var96 /* : Bool */;
7191 short int var98 /* : Bool */;
7192 short int var_99 /* var : Bool */;
7193 short int var100 /* : Bool */;
7194 int cltype;
7195 int idtype;
7196 short int var101 /* : Bool */;
7197 val* var102 /* : nullable ASignature */;
7198 val* var104 /* : nullable ASignature */;
7199 val* var105 /* : nullable MType */;
7200 val* var107 /* : nullable MType */;
7201 val* var_ret_type /* var ret_type: nullable MType */;
7202 short int var108 /* : Bool */;
7203 short int var109 /* : Bool */;
7204 short int var110 /* : Bool */;
7205 short int var112 /* : Bool */;
7206 short int var113 /* : Bool */;
7207 short int var_114 /* var : Bool */;
7208 val* var115 /* : nullable ASignature */;
7209 val* var117 /* : nullable ASignature */;
7210 val* var118 /* : nullable MType */;
7211 val* var120 /* : nullable MType */;
7212 short int var121 /* : Bool */;
7213 short int var123 /* : Bool */;
7214 short int var125 /* : Bool */;
7215 val* var126 /* : nullable ASignature */;
7216 val* var128 /* : nullable ASignature */;
7217 val* var129 /* : nullable AType */;
7218 val* var131 /* : nullable AType */;
7219 static val* varonce132;
7220 val* var133 /* : String */;
7221 char* var134 /* : CString */;
7222 val* var135 /* : String */;
7223 val* var136 /* : nullable Int */;
7224 val* var137 /* : nullable Int */;
7225 val* var138 /* : nullable Bool */;
7226 val* var139 /* : nullable Bool */;
7227 val* var141 /* : NativeArray[String] */;
7228 static val* varonce140;
7229 static val* varonce142;
7230 val* var143 /* : String */;
7231 char* var144 /* : CString */;
7232 val* var145 /* : String */;
7233 val* var146 /* : nullable Int */;
7234 val* var147 /* : nullable Int */;
7235 val* var148 /* : nullable Bool */;
7236 val* var149 /* : nullable Bool */;
7237 static val* varonce150;
7238 val* var151 /* : String */;
7239 char* var152 /* : CString */;
7240 val* var153 /* : String */;
7241 val* var154 /* : nullable Int */;
7242 val* var155 /* : nullable Int */;
7243 val* var156 /* : nullable Bool */;
7244 val* var157 /* : nullable Bool */;
7245 val* var158 /* : String */;
7246 val* var159 /* : String */;
7247 var_modelbuilder = p0;
7248 {
7249 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
7250 var2 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
7251 var = var2;
7252 RET_LABEL1:(void)0;
7253 }
7254 }
7255 var_mpropdef = var;
7256 if (var_mpropdef == NULL) {
7257 var3 = 1; /* is null */
7258 } else {
7259 var3 = 0; /* arg is null but recv is not */
7260 }
7261 if (0) {
7262 { /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
7263 var_other = ((val*)NULL);
7264 {
7265 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
7266 var8 = var_mpropdef == var_other;
7267 var6 = var8;
7268 goto RET_LABEL7;
7269 RET_LABEL7:(void)0;
7270 }
7271 }
7272 var4 = var6;
7273 goto RET_LABEL5;
7274 RET_LABEL5:(void)0;
7275 }
7276 var3 = var4;
7277 }
7278 if (var3){
7279 goto RET_LABEL;
7280 } else {
7281 }
7282 {
7283 var10 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
7284 }
7285 var_ = var10;
7286 if (var10){
7287 var9 = var_;
7288 } else {
7289 {
7290 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
7291 var13 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
7292 var11 = var13;
7293 RET_LABEL12:(void)0;
7294 }
7295 }
7296 if (var11 == NULL) {
7297 var14 = 1; /* is null */
7298 } else {
7299 var14 = 0; /* arg is null but recv is not */
7300 }
7301 if (0) {
7302 { /* Inline kernel$Object$== (var11,((val*)NULL)) on <var11:nullable ASignature> */
7303 var_other = ((val*)NULL);
7304 {
7305 { /* Inline kernel$Object$is_same_instance (var11,var_other) on <var11:nullable ASignature(ASignature)> */
7306 var19 = var11 == var_other;
7307 var17 = var19;
7308 goto RET_LABEL18;
7309 RET_LABEL18:(void)0;
7310 }
7311 }
7312 var15 = var17;
7313 goto RET_LABEL16;
7314 RET_LABEL16:(void)0;
7315 }
7316 var14 = var15;
7317 }
7318 var9 = var14;
7319 }
7320 if (var9){
7321 goto RET_LABEL;
7322 } else {
7323 }
7324 {
7325 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
7326 var22 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
7327 var20 = var22;
7328 RET_LABEL21:(void)0;
7329 }
7330 }
7331 if (var20 == NULL) {
7332 if(catchStack.cursor >= 0){
7333 longjmp(catchStack.envs[catchStack.cursor], 1);
7334 }
7335 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7336 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1078);
7337 fatal_exit(1);
7338 } else {
7339 { /* Inline parser_nodes$ASignature$n_params (var20) on <var20:nullable ASignature> */
7340 if (unlikely(var20 == NULL)) {
7341 if(catchStack.cursor >= 0){
7342 longjmp(catchStack.envs[catchStack.cursor], 1);
7343 }
7344 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
7346 fatal_exit(1);
7347 }
7348 var25 = var20->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var20:nullable ASignature> */
7349 if (unlikely(var25 == NULL)) {
7350 if(catchStack.cursor >= 0){
7351 longjmp(catchStack.envs[catchStack.cursor], 1);
7352 }
7353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
7354 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
7355 fatal_exit(1);
7356 }
7357 var23 = var25;
7358 RET_LABEL24:(void)0;
7359 }
7360 }
7361 var_26 = var23;
7362 {
7363 var27 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_26);
7364 }
7365 var_28 = var27;
7366 for(;;) {
7367 {
7368 var29 = ((short int(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_28); /* is_ok on <var_28:Iterator[AParam]>*/
7369 }
7370 if (var29){
7371 } else {
7372 goto BREAK_label;
7373 }
7374 {
7375 var30 = ((val*(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_28); /* item on <var_28:Iterator[AParam]>*/
7376 }
7377 var_param = var30;
7378 {
7379 { /* Inline parser_nodes$AParam$n_type (var_param) on <var_param:AParam> */
7380 var33 = var_param->attrs[COLOR_nitc__parser_nodes__AParam___n_type].val; /* _n_type on <var_param:AParam> */
7381 var31 = var33;
7382 RET_LABEL32:(void)0;
7383 }
7384 }
7385 if (var31 == NULL) {
7386 var34 = 0; /* is null */
7387 } else {
7388 var34 = 1; /* arg is null and recv is not */
7389 }
7390 if (0) {
7391 { /* Inline kernel$Object$!= (var31,((val*)NULL)) on <var31:nullable AType> */
7392 var_other37 = ((val*)NULL);
7393 {
7394 var38 = ((short int(*)(val* self, val* p0))(var31->class->vft[COLOR_core__kernel__Object___61d_61d]))(var31, var_other37); /* == on <var31:nullable AType(AType)>*/
7395 }
7396 var39 = !var38;
7397 var35 = var39;
7398 goto RET_LABEL36;
7399 RET_LABEL36:(void)0;
7400 }
7401 var34 = var35;
7402 }
7403 if (var34){
7404 {
7405 { /* Inline parser_nodes$AParam$n_type (var_param) on <var_param:AParam> */
7406 var42 = var_param->attrs[COLOR_nitc__parser_nodes__AParam___n_type].val; /* _n_type on <var_param:AParam> */
7407 var40 = var42;
7408 RET_LABEL41:(void)0;
7409 }
7410 }
7411 if (likely(varonce!=NULL)) {
7412 var43 = varonce;
7413 } else {
7414 var44 = "useless-signature";
7415 var46 = (val*)(17l<<2|1);
7416 var47 = (val*)(17l<<2|1);
7417 var48 = (val*)((long)(0)<<2|3);
7418 var49 = (val*)((long)(0)<<2|3);
7419 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
7420 var43 = var45;
7421 varonce = var43;
7422 }
7423 if (unlikely(varonce50==NULL)) {
7424 var51 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7425 if (likely(varonce52!=NULL)) {
7426 var53 = varonce52;
7427 } else {
7428 var54 = "Warning: useless type repetition on parameter `";
7429 var56 = (val*)(47l<<2|1);
7430 var57 = (val*)(47l<<2|1);
7431 var58 = (val*)((long)(0)<<2|3);
7432 var59 = (val*)((long)(0)<<2|3);
7433 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
7434 var53 = var55;
7435 varonce52 = var53;
7436 }
7437 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
7438 if (likely(varonce60!=NULL)) {
7439 var61 = varonce60;
7440 } else {
7441 var62 = "` for redefined method `";
7442 var64 = (val*)(24l<<2|1);
7443 var65 = (val*)(24l<<2|1);
7444 var66 = (val*)((long)(0)<<2|3);
7445 var67 = (val*)((long)(0)<<2|3);
7446 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
7447 var61 = var63;
7448 varonce60 = var61;
7449 }
7450 ((struct instance_core__NativeArray*)var51)->values[2]=var61;
7451 if (likely(varonce68!=NULL)) {
7452 var69 = varonce68;
7453 } else {
7454 var70 = "`";
7455 var72 = (val*)(1l<<2|1);
7456 var73 = (val*)(1l<<2|1);
7457 var74 = (val*)((long)(0)<<2|3);
7458 var75 = (val*)((long)(0)<<2|3);
7459 var71 = core__flat___CString___to_s_unsafe(var70, var72, var73, var74, var75);
7460 var69 = var71;
7461 varonce68 = var69;
7462 }
7463 ((struct instance_core__NativeArray*)var51)->values[4]=var69;
7464 } else {
7465 var51 = varonce50;
7466 varonce50 = NULL;
7467 }
7468 {
7469 { /* Inline parser_nodes$AParam$n_id (var_param) on <var_param:AParam> */
7470 var78 = var_param->attrs[COLOR_nitc__parser_nodes__AParam___n_id].val; /* _n_id on <var_param:AParam> */
7471 if (unlikely(var78 == NULL)) {
7472 if(catchStack.cursor >= 0){
7473 longjmp(catchStack.envs[catchStack.cursor], 1);
7474 }
7475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
7476 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1760);
7477 fatal_exit(1);
7478 }
7479 var76 = var78;
7480 RET_LABEL77:(void)0;
7481 }
7482 }
7483 {
7484 var79 = nitc__lexer_work___Token___text(var76);
7485 }
7486 ((struct instance_core__NativeArray*)var51)->values[1]=var79;
7487 {
7488 var80 = nitc___nitc__MPropDef___nitc__model_base__MEntity__name(var_mpropdef);
7489 }
7490 ((struct instance_core__NativeArray*)var51)->values[3]=var80;
7491 {
7492 var81 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
7493 }
7494 varonce50 = var51;
7495 {
7496 nitc___nitc__ModelBuilder___advice(var_modelbuilder, var40, var43, var81); /* Direct call modelbuilder_base$ModelBuilder$advice on <var_modelbuilder:ModelBuilder>*/
7497 }
7498 } else {
7499 }
7500 {
7501 ((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_28); /* next on <var_28:Iterator[AParam]>*/
7502 }
7503 }
7504 BREAK_label: (void)0;
7505 {
7506 ((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_28); /* finish on <var_28:Iterator[AParam]>*/
7507 }
7508 {
7509 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
7510 var84 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
7511 if (unlikely(var84 == NULL)) {
7512 if(catchStack.cursor >= 0){
7513 longjmp(catchStack.envs[catchStack.cursor], 1);
7514 }
7515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7516 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
7517 fatal_exit(1);
7518 }
7519 var82 = var84;
7520 RET_LABEL83:(void)0;
7521 }
7522 }
7523 {
7524 { /* Inline model$MProperty$intro (var82) on <var82:MProperty(MMethod)> */
7525 var87 = var82->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var82:MProperty(MMethod)> */
7526 if (unlikely(var87 == NULL)) {
7527 if(catchStack.cursor >= 0){
7528 longjmp(catchStack.envs[catchStack.cursor], 1);
7529 }
7530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
7531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
7532 fatal_exit(1);
7533 }
7534 var85 = var87;
7535 RET_LABEL86:(void)0;
7536 }
7537 }
7538 var_intro = var85;
7539 {
7540 { /* Inline modelize_property$ModelBuilder$mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
7541 var90 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
7542 if (unlikely(var90 == NULL)) {
7543 if(catchStack.cursor >= 0){
7544 longjmp(catchStack.envs[catchStack.cursor], 1);
7545 }
7546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
7547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 40);
7548 fatal_exit(1);
7549 }
7550 var88 = var90;
7551 RET_LABEL89:(void)0;
7552 }
7553 }
7554 {
7555 var91 = core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var88, var_intro);
7556 }
7557 var_n_intro = var91;
7558 if (var_n_intro == NULL) {
7559 var93 = 1; /* is null */
7560 } else {
7561 var93 = 0; /* arg is null but recv is not */
7562 }
7563 if (0) {
7564 { /* Inline kernel$Object$== (var_n_intro,((val*)NULL)) on <var_n_intro:nullable APropdef> */
7565 var_other = ((val*)NULL);
7566 {
7567 { /* Inline kernel$Object$is_same_instance (var_n_intro,var_other) on <var_n_intro:nullable APropdef(APropdef)> */
7568 var98 = var_n_intro == var_other;
7569 var96 = var98;
7570 goto RET_LABEL97;
7571 RET_LABEL97:(void)0;
7572 }
7573 }
7574 var94 = var96;
7575 goto RET_LABEL95;
7576 RET_LABEL95:(void)0;
7577 }
7578 var93 = var94;
7579 }
7580 var_99 = var93;
7581 if (var93){
7582 var92 = var_99;
7583 } else {
7584 /* <var_n_intro:nullable APropdef(APropdef)> isa AMethPropdef */
7585 cltype = type_nitc__AMethPropdef.color;
7586 idtype = type_nitc__AMethPropdef.id;
7587 if(cltype >= var_n_intro->type->table_size) {
7588 var100 = 0;
7589 } else {
7590 var100 = var_n_intro->type->type_table[cltype] == idtype;
7591 }
7592 var101 = !var100;
7593 var92 = var101;
7594 }
7595 if (var92){
7596 goto RET_LABEL;
7597 } else {
7598 }
7599 {
7600 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
7601 var104 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
7602 var102 = var104;
7603 RET_LABEL103:(void)0;
7604 }
7605 }
7606 if (var102 == NULL) {
7607 if(catchStack.cursor >= 0){
7608 longjmp(catchStack.envs[catchStack.cursor], 1);
7609 }
7610 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7611 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1088);
7612 fatal_exit(1);
7613 } else {
7614 { /* Inline modelize_property$ASignature$ret_type (var102) on <var102:nullable ASignature> */
7615 if (unlikely(var102 == NULL)) {
7616 if(catchStack.cursor >= 0){
7617 longjmp(catchStack.envs[catchStack.cursor], 1);
7618 }
7619 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7620 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 668);
7621 fatal_exit(1);
7622 }
7623 var107 = var102->attrs[COLOR_nitc__modelize_property__ASignature___ret_type].val; /* _ret_type on <var102:nullable ASignature> */
7624 var105 = var107;
7625 RET_LABEL106:(void)0;
7626 }
7627 }
7628 var_ret_type = var105;
7629 if (var_ret_type == NULL) {
7630 var109 = 0; /* is null */
7631 } else {
7632 var109 = 1; /* arg is null and recv is not */
7633 }
7634 if (0) {
7635 { /* Inline kernel$Object$!= (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
7636 var_other37 = ((val*)NULL);
7637 {
7638 var112 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other37); /* == on <var_ret_type:nullable MType(MType)>*/
7639 }
7640 var113 = !var112;
7641 var110 = var113;
7642 goto RET_LABEL111;
7643 RET_LABEL111:(void)0;
7644 }
7645 var109 = var110;
7646 }
7647 var_114 = var109;
7648 if (var109){
7649 {
7650 { /* Inline parser_nodes$AMethPropdef$n_signature (var_n_intro) on <var_n_intro:nullable APropdef(AMethPropdef)> */
7651 var117 = var_n_intro->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <var_n_intro:nullable APropdef(AMethPropdef)> */
7652 var115 = var117;
7653 RET_LABEL116:(void)0;
7654 }
7655 }
7656 if (var115 == NULL) {
7657 if(catchStack.cursor >= 0){
7658 longjmp(catchStack.envs[catchStack.cursor], 1);
7659 }
7660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7661 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1089);
7662 fatal_exit(1);
7663 } else {
7664 { /* Inline modelize_property$ASignature$ret_type (var115) on <var115:nullable ASignature> */
7665 if (unlikely(var115 == NULL)) {
7666 if(catchStack.cursor >= 0){
7667 longjmp(catchStack.envs[catchStack.cursor], 1);
7668 }
7669 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7670 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 668);
7671 fatal_exit(1);
7672 }
7673 var120 = var115->attrs[COLOR_nitc__modelize_property__ASignature___ret_type].val; /* _ret_type on <var115:nullable ASignature> */
7674 var118 = var120;
7675 RET_LABEL119:(void)0;
7676 }
7677 }
7678 {
7679 { /* Inline kernel$Object$== (var_ret_type,var118) on <var_ret_type:nullable MType(MType)> */
7680 var_other = var118;
7681 {
7682 { /* Inline kernel$Object$is_same_instance (var_ret_type,var_other) on <var_ret_type:nullable MType(MType)> */
7683 var125 = var_ret_type == var_other;
7684 var123 = var125;
7685 goto RET_LABEL124;
7686 RET_LABEL124:(void)0;
7687 }
7688 }
7689 var121 = var123;
7690 goto RET_LABEL122;
7691 RET_LABEL122:(void)0;
7692 }
7693 }
7694 var108 = var121;
7695 } else {
7696 var108 = var_114;
7697 }
7698 if (var108){
7699 {
7700 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
7701 var128 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
7702 var126 = var128;
7703 RET_LABEL127:(void)0;
7704 }
7705 }
7706 if (var126 == NULL) {
7707 if(catchStack.cursor >= 0){
7708 longjmp(catchStack.envs[catchStack.cursor], 1);
7709 }
7710 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1090);
7712 fatal_exit(1);
7713 } else {
7714 { /* Inline parser_nodes$ASignature$n_type (var126) on <var126:nullable ASignature> */
7715 if (unlikely(var126 == NULL)) {
7716 if(catchStack.cursor >= 0){
7717 longjmp(catchStack.envs[catchStack.cursor], 1);
7718 }
7719 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1752);
7721 fatal_exit(1);
7722 }
7723 var131 = var126->attrs[COLOR_nitc__parser_nodes__ASignature___n_type].val; /* _n_type on <var126:nullable ASignature> */
7724 var129 = var131;
7725 RET_LABEL130:(void)0;
7726 }
7727 }
7728 if (likely(varonce132!=NULL)) {
7729 var133 = varonce132;
7730 } else {
7731 var134 = "useless-signature";
7732 var136 = (val*)(17l<<2|1);
7733 var137 = (val*)(17l<<2|1);
7734 var138 = (val*)((long)(0)<<2|3);
7735 var139 = (val*)((long)(0)<<2|3);
7736 var135 = core__flat___CString___to_s_unsafe(var134, var136, var137, var138, var139);
7737 var133 = var135;
7738 varonce132 = var133;
7739 }
7740 if (unlikely(varonce140==NULL)) {
7741 var141 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7742 if (likely(varonce142!=NULL)) {
7743 var143 = varonce142;
7744 } else {
7745 var144 = "Warning: useless return type repetition for redefined method `";
7746 var146 = (val*)(62l<<2|1);
7747 var147 = (val*)(62l<<2|1);
7748 var148 = (val*)((long)(0)<<2|3);
7749 var149 = (val*)((long)(0)<<2|3);
7750 var145 = core__flat___CString___to_s_unsafe(var144, var146, var147, var148, var149);
7751 var143 = var145;
7752 varonce142 = var143;
7753 }
7754 ((struct instance_core__NativeArray*)var141)->values[0]=var143;
7755 if (likely(varonce150!=NULL)) {
7756 var151 = varonce150;
7757 } else {
7758 var152 = "`";
7759 var154 = (val*)(1l<<2|1);
7760 var155 = (val*)(1l<<2|1);
7761 var156 = (val*)((long)(0)<<2|3);
7762 var157 = (val*)((long)(0)<<2|3);
7763 var153 = core__flat___CString___to_s_unsafe(var152, var154, var155, var156, var157);
7764 var151 = var153;
7765 varonce150 = var151;
7766 }
7767 ((struct instance_core__NativeArray*)var141)->values[2]=var151;
7768 } else {
7769 var141 = varonce140;
7770 varonce140 = NULL;
7771 }
7772 {
7773 var158 = nitc___nitc__MPropDef___nitc__model_base__MEntity__name(var_mpropdef);
7774 }
7775 ((struct instance_core__NativeArray*)var141)->values[1]=var158;
7776 {
7777 var159 = ((val*(*)(val* self))(var141->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var141); /* native_to_s on <var141:NativeArray[String]>*/
7778 }
7779 varonce140 = var141;
7780 {
7781 nitc___nitc__ModelBuilder___advice(var_modelbuilder, var129, var133, var159); /* Direct call modelbuilder_base$ModelBuilder$advice on <var_modelbuilder:ModelBuilder>*/
7782 }
7783 } else {
7784 }
7785 RET_LABEL:;
7786 }
7787 /* method modelize_property$AMethid$return_is_mandatory for (self: AMethid): Bool */
7788 short int nitc__modelize_property___AMethid___return_is_mandatory(val* self) {
7789 short int var /* : Bool */;
7790 var = 1;
7791 goto RET_LABEL;
7792 RET_LABEL:;
7793 return var;
7794 }
7795 /* method modelize_property$AMethid$accept_special_last_parameter for (self: AMethid): Bool */
7796 short int nitc__modelize_property___AMethid___accept_special_last_parameter(val* self) {
7797 short int var /* : Bool */;
7798 var = 0;
7799 goto RET_LABEL;
7800 RET_LABEL:;
7801 return var;
7802 }
7803 /* method modelize_property$AMethid$min_arity for (self: AMethid): Int */
7804 long nitc__modelize_property___AMethid___min_arity(val* self) {
7805 long var /* : Int */;
7806 var = 1l;
7807 goto RET_LABEL;
7808 RET_LABEL:;
7809 return var;
7810 }
7811 /* method modelize_property$AMethid$is_binary for (self: AMethid): Bool */
7812 short int nitc__modelize_property___AMethid___is_binary(val* self) {
7813 short int var /* : Bool */;
7814 var = 1;
7815 goto RET_LABEL;
7816 RET_LABEL:;
7817 return var;
7818 }
7819 /* method modelize_property$AIdMethid$return_is_mandatory for (self: AIdMethid): Bool */
7820 short int nitc__modelize_property___AIdMethid___AMethid__return_is_mandatory(val* self) {
7821 short int var /* : Bool */;
7822 var = 0;
7823 goto RET_LABEL;
7824 RET_LABEL:;
7825 return var;
7826 }
7827 /* method modelize_property$AIdMethid$accept_special_last_parameter for (self: AIdMethid): Bool */
7828 short int nitc__modelize_property___AIdMethid___AMethid__accept_special_last_parameter(val* self) {
7829 short int var /* : Bool */;
7830 var = 1;
7831 goto RET_LABEL;
7832 RET_LABEL:;
7833 return var;
7834 }
7835 /* method modelize_property$AIdMethid$min_arity for (self: AIdMethid): Int */
7836 long nitc__modelize_property___AIdMethid___AMethid__min_arity(val* self) {
7837 long var /* : Int */;
7838 var = 0l;
7839 goto RET_LABEL;
7840 RET_LABEL:;
7841 return var;
7842 }
7843 /* method modelize_property$AIdMethid$is_binary for (self: AIdMethid): Bool */
7844 short int nitc__modelize_property___AIdMethid___AMethid__is_binary(val* self) {
7845 short int var /* : Bool */;
7846 var = 0;
7847 goto RET_LABEL;
7848 RET_LABEL:;
7849 return var;
7850 }
7851 /* method modelize_property$ABraMethid$accept_special_last_parameter for (self: ABraMethid): Bool */
7852 short int nitc__modelize_property___ABraMethid___AMethid__accept_special_last_parameter(val* self) {
7853 short int var /* : Bool */;
7854 var = 1;
7855 goto RET_LABEL;
7856 RET_LABEL:;
7857 return var;
7858 }
7859 /* method modelize_property$ABraMethid$is_binary for (self: ABraMethid): Bool */
7860 short int nitc__modelize_property___ABraMethid___AMethid__is_binary(val* self) {
7861 short int var /* : Bool */;
7862 var = 0;
7863 goto RET_LABEL;
7864 RET_LABEL:;
7865 return var;
7866 }
7867 /* method modelize_property$ABraassignMethid$return_is_mandatory for (self: ABraassignMethid): Bool */
7868 short int nitc__modelize_property___ABraassignMethid___AMethid__return_is_mandatory(val* self) {
7869 short int var /* : Bool */;
7870 var = 0;
7871 goto RET_LABEL;
7872 RET_LABEL:;
7873 return var;
7874 }
7875 /* method modelize_property$ABraassignMethid$min_arity for (self: ABraassignMethid): Int */
7876 long nitc__modelize_property___ABraassignMethid___AMethid__min_arity(val* self) {
7877 long var /* : Int */;
7878 var = 2l;
7879 goto RET_LABEL;
7880 RET_LABEL:;
7881 return var;
7882 }
7883 /* method modelize_property$ABraassignMethid$is_binary for (self: ABraassignMethid): Bool */
7884 short int nitc__modelize_property___ABraassignMethid___AMethid__is_binary(val* self) {
7885 short int var /* : Bool */;
7886 var = 0;
7887 goto RET_LABEL;
7888 RET_LABEL:;
7889 return var;
7890 }
7891 /* method modelize_property$AAssignMethid$return_is_mandatory for (self: AAssignMethid): Bool */
7892 short int nitc__modelize_property___AAssignMethid___AMethid__return_is_mandatory(val* self) {
7893 short int var /* : Bool */;
7894 var = 0;
7895 goto RET_LABEL;
7896 RET_LABEL:;
7897 return var;
7898 }
7899 /* method modelize_property$AAssignMethid$is_binary for (self: AAssignMethid): Bool */
7900 short int nitc__modelize_property___AAssignMethid___AMethid__is_binary(val* self) {
7901 short int var /* : Bool */;
7902 var = 0;
7903 goto RET_LABEL;
7904 RET_LABEL:;
7905 return var;
7906 }
7907 /* method modelize_property$AAttrPropdef$mtype for (self: AAttrPropdef): nullable MType */
7908 val* nitc__modelize_property___AAttrPropdef___mtype(val* self) {
7909 val* var /* : nullable MType */;
7910 val* var1 /* : nullable MType */;
7911 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
7912 var = var1;
7913 RET_LABEL:;
7914 return var;
7915 }
7916 /* method modelize_property$AAttrPropdef$mtype= for (self: AAttrPropdef, nullable MType) */
7917 void nitc__modelize_property___AAttrPropdef___mtype_61d(val* self, val* p0) {
7918 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val = p0; /* _mtype on <self:AAttrPropdef> */
7919 RET_LABEL:;
7920 }
7921 /* method modelize_property$AAttrPropdef$noinit for (self: AAttrPropdef): Bool */
7922 short int nitc__modelize_property___AAttrPropdef___noinit(val* self) {
7923 short int var /* : Bool */;
7924 short int var1 /* : Bool */;
7925 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___noinit].s; /* _noinit on <self:AAttrPropdef> */
7926 var = var1;
7927 RET_LABEL:;
7928 return var;
7929 }
7930 /* method modelize_property$AAttrPropdef$noinit= for (self: AAttrPropdef, Bool) */
7931 void nitc__modelize_property___AAttrPropdef___noinit_61d(val* self, short int p0) {
7932 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___noinit].s = p0; /* _noinit on <self:AAttrPropdef> */
7933 RET_LABEL:;
7934 }
7935 /* method modelize_property$AAttrPropdef$is_lazy for (self: AAttrPropdef): Bool */
7936 short int nitc__modelize_property___AAttrPropdef___is_lazy(val* self) {
7937 short int var /* : Bool */;
7938 short int var1 /* : Bool */;
7939 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
7940 var = var1;
7941 RET_LABEL:;
7942 return var;
7943 }
7944 /* method modelize_property$AAttrPropdef$is_lazy= for (self: AAttrPropdef, Bool) */
7945 void nitc__modelize_property___AAttrPropdef___is_lazy_61d(val* self, short int p0) {
7946 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s = p0; /* _is_lazy on <self:AAttrPropdef> */
7947 RET_LABEL:;
7948 }
7949 /* method modelize_property$AAttrPropdef$is_optional for (self: AAttrPropdef): Bool */
7950 short int nitc__modelize_property___AAttrPropdef___is_optional(val* self) {
7951 short int var /* : Bool */;
7952 short int var1 /* : Bool */;
7953 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_optional].s; /* _is_optional on <self:AAttrPropdef> */
7954 var = var1;
7955 RET_LABEL:;
7956 return var;
7957 }
7958 /* method modelize_property$AAttrPropdef$is_optional= for (self: AAttrPropdef, Bool) */
7959 void nitc__modelize_property___AAttrPropdef___is_optional_61d(val* self, short int p0) {
7960 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_optional].s = p0; /* _is_optional on <self:AAttrPropdef> */
7961 RET_LABEL:;
7962 }
7963 /* method modelize_property$AAttrPropdef$has_value for (self: AAttrPropdef): Bool */
7964 short int nitc__modelize_property___AAttrPropdef___has_value(val* self) {
7965 short int var /* : Bool */;
7966 short int var1 /* : Bool */;
7967 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
7968 var = var1;
7969 RET_LABEL:;
7970 return var;
7971 }
7972 /* method modelize_property$AAttrPropdef$has_value= for (self: AAttrPropdef, Bool) */
7973 void nitc__modelize_property___AAttrPropdef___has_value_61d(val* self, short int p0) {
7974 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s = p0; /* _has_value on <self:AAttrPropdef> */
7975 RET_LABEL:;
7976 }
7977 /* method modelize_property$AAttrPropdef$mlazypropdef for (self: AAttrPropdef): nullable MAttributeDef */
7978 val* nitc__modelize_property___AAttrPropdef___mlazypropdef(val* self) {
7979 val* var /* : nullable MAttributeDef */;
7980 val* var1 /* : nullable MAttributeDef */;
7981 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
7982 var = var1;
7983 RET_LABEL:;
7984 return var;
7985 }
7986 /* method modelize_property$AAttrPropdef$mlazypropdef= for (self: AAttrPropdef, nullable MAttributeDef) */
7987 void nitc__modelize_property___AAttrPropdef___mlazypropdef_61d(val* self, val* p0) {
7988 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val = p0; /* _mlazypropdef on <self:AAttrPropdef> */
7989 RET_LABEL:;
7990 }
7991 /* method modelize_property$AAttrPropdef$mreadpropdef for (self: AAttrPropdef): nullable MMethodDef */
7992 val* nitc__modelize_property___AAttrPropdef___mreadpropdef(val* self) {
7993 val* var /* : nullable MMethodDef */;
7994 val* var1 /* : nullable MMethodDef */;
7995 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
7996 var = var1;
7997 RET_LABEL:;
7998 return var;
7999 }
8000 /* method modelize_property$AAttrPropdef$mreadpropdef= for (self: AAttrPropdef, nullable MMethodDef) */
8001 void nitc__modelize_property___AAttrPropdef___mreadpropdef_61d(val* self, val* p0) {
8002 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val = p0; /* _mreadpropdef on <self:AAttrPropdef> */
8003 RET_LABEL:;
8004 }
8005 /* method modelize_property$AAttrPropdef$mwritepropdef for (self: AAttrPropdef): nullable MMethodDef */
8006 val* nitc__modelize_property___AAttrPropdef___mwritepropdef(val* self) {
8007 val* var /* : nullable MMethodDef */;
8008 val* var1 /* : nullable MMethodDef */;
8009 var1 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <self:AAttrPropdef> */
8010 var = var1;
8011 RET_LABEL:;
8012 return var;
8013 }
8014 /* method modelize_property$AAttrPropdef$mwritepropdef= for (self: AAttrPropdef, nullable MMethodDef) */
8015 void nitc__modelize_property___AAttrPropdef___mwritepropdef_61d(val* self, val* p0) {
8016 self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mwritepropdef].val = p0; /* _mwritepropdef on <self:AAttrPropdef> */
8017 RET_LABEL:;
8018 }