Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__mixin.sep.1.c
1 #include "nitc__mixin.sep.0.h"
2 /* method mixin$ToolContext$opt_mixins for (self: ToolContext): OptionArray */
3 val* nitc__mixin___ToolContext___opt_mixins(val* self) {
4 val* var /* : OptionArray */;
5 val* var1 /* : OptionArray */;
6 var1 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 if(catchStack.cursor >= 0){
9 longjmp(catchStack.envs[catchStack.cursor], 1);
10 }
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
12 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 23);
13 fatal_exit(1);
14 }
15 var = var1;
16 RET_LABEL:;
17 return var;
18 }
19 /* method mixin$ToolContext$opt_defines for (self: ToolContext): OptionArray */
20 val* nitc__mixin___ToolContext___opt_defines(val* self) {
21 val* var /* : OptionArray */;
22 val* var1 /* : OptionArray */;
23 var1 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:ToolContext> */
24 if (unlikely(var1 == NULL)) {
25 if(catchStack.cursor >= 0){
26 longjmp(catchStack.envs[catchStack.cursor], 1);
27 }
28 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
29 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 25);
30 fatal_exit(1);
31 }
32 var = var1;
33 RET_LABEL:;
34 return var;
35 }
36 /* method mixin$ToolContext$init for (self: ToolContext) */
37 void nitc__mixin___ToolContext___core__kernel__Object__init(val* self) {
38 val* var /* : OptionContext */;
39 val* var2 /* : OptionContext */;
40 val* var3 /* : OptionArray */;
41 val* var5 /* : OptionArray */;
42 val* var6 /* : OptionArray */;
43 val* var8 /* : OptionArray */;
44 val* var9 /* : Array[Option] */;
45 val* var10 /* : NativeArray[Option] */;
46 {
47 ((void(*)(val* self))(self->class->vft[COLOR_nitc__mixin___ToolContext___core__kernel__Object__init]))(self); /* init on <self:ToolContext>*/
48 }
49 {
50 { /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
51 var2 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
52 if (unlikely(var2 == NULL)) {
53 if(catchStack.cursor >= 0){
54 longjmp(catchStack.envs[catchStack.cursor], 1);
55 }
56 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
57 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
58 fatal_exit(1);
59 }
60 var = var2;
61 RET_LABEL1:(void)0;
62 }
63 }
64 {
65 { /* Inline mixin$ToolContext$opt_mixins (self) on <self:ToolContext> */
66 var5 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
67 if (unlikely(var5 == NULL)) {
68 if(catchStack.cursor >= 0){
69 longjmp(catchStack.envs[catchStack.cursor], 1);
70 }
71 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
72 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 23);
73 fatal_exit(1);
74 }
75 var3 = var5;
76 RET_LABEL4:(void)0;
77 }
78 }
79 {
80 { /* Inline mixin$ToolContext$opt_defines (self) on <self:ToolContext> */
81 var8 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:ToolContext> */
82 if (unlikely(var8 == NULL)) {
83 if(catchStack.cursor >= 0){
84 longjmp(catchStack.envs[catchStack.cursor], 1);
85 }
86 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
87 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 25);
88 fatal_exit(1);
89 }
90 var6 = var8;
91 RET_LABEL7:(void)0;
92 }
93 }
94 var9 = NEW_core__Array(&type_core__Array__opts__Option);
95 { /* var9 = array_instance Array[Option] */
96 var10 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__opts__Option);
97 ((struct instance_core__NativeArray*)var10)->values[0] = (val*) var3;
98 ((struct instance_core__NativeArray*)var10)->values[1] = (val*) var6;
99 {
100 ((void(*)(val* self, val* p0, long p1))(var9->class->vft[COLOR_core__array__Array__with_native]))(var9, var10, 2l); /* with_native on <var9:Array[Option]>*/
101 }
102 }
103 {
104 opts___opts__OptionContext___add_option(var, var9); /* Direct call opts$OptionContext$add_option on <var:OptionContext>*/
105 }
106 RET_LABEL:;
107 }
108 /* method mixin$ToolContext$make_main_module for (self: ToolContext, Array[MModule]): MModule */
109 val* nitc__mixin___ToolContext___make_main_module(val* self, val* p0) {
110 val* var /* : MModule */;
111 val* var_mmodules /* var mmodules: Array[MModule] */;
112 val* var1 /* : OptionArray */;
113 val* var3 /* : OptionArray */;
114 val* var4 /* : nullable Object */;
115 val* var6 /* : nullable Object */;
116 val* var_mixins /* var mixins: Array[String] */;
117 short int var7 /* : Bool */;
118 short int var8 /* : Bool */;
119 val* var9 /* : ModelBuilder */;
120 val* var10 /* : OptionArray */;
121 val* var12 /* : OptionArray */;
122 val* var13 /* : nullable Object */;
123 val* var15 /* : nullable Object */;
124 val* var16 /* : Array[MModule] */;
125 val* var17 /* : ModelBuilder */;
126 val* var18 /* : MModule */;
127 val* var_mainmodule /* var mainmodule: MModule */;
128 val* var19 /* : OptionArray */;
129 val* var21 /* : OptionArray */;
130 val* var22 /* : nullable Object */;
131 val* var24 /* : nullable Object */;
132 val* var_defines /* var defines: Array[String] */;
133 short int var25 /* : Bool */;
134 short int var26 /* : Bool */;
135 val* var27 /* : Location */;
136 val* var29 /* : Location */;
137 val* var_location /* var location: Location */;
138 val* var30 /* : Model */;
139 val* var32 /* : Model */;
140 val* var_model /* var model: Model */;
141 val* var33 /* : nullable Object */;
142 short int var34 /* : Bool */;
143 val* var_other /* var other: nullable Object */;
144 short int var36 /* : Bool */;
145 short int var38 /* : Bool */;
146 val* var39 /* : MModule */;
147 val* var40 /* : String */;
148 val* var42 /* : String */;
149 static val* varonce;
150 val* var43 /* : String */;
151 char* var44 /* : CString */;
152 val* var45 /* : String */;
153 val* var46 /* : nullable Int */;
154 val* var47 /* : nullable Int */;
155 val* var48 /* : nullable Bool */;
156 val* var49 /* : nullable Bool */;
157 val* var50 /* : Text */;
158 val* var52 /* : nullable Object */;
159 val* var54 /* : nullable MClassType */;
160 val* var_recv /* var recv: nullable MClassType */;
161 short int var55 /* : Bool */;
162 short int var56 /* : Bool */;
163 val* var_other58 /* var other: nullable Object */;
164 short int var59 /* : Bool */;
165 short int var60 /* : Bool */;
166 val* var61 /* : MClassDef */;
167 val* var_mclassdef /* var mclassdef: MClassDef */;
168 val* var_ /* var : Array[String] */;
169 val* var62 /* : IndexedIterator[nullable Object] */;
170 val* var_63 /* var : IndexedIterator[String] */;
171 short int var64 /* : Bool */;
172 val* var65 /* : nullable Object */;
173 val* var_define /* var define: String */;
174 val* var66 /* : Array[Text] */;
175 val* var67 /* : Pattern */;
176 val* var_spl /* var spl: Array[String] */;
177 val* var68 /* : nullable Object */;
178 val* var_name /* var name: String */;
179 val* var_val /* var val: nullable Object */;
180 long var69 /* : Int */;
181 long var71 /* : Int */;
182 short int var72 /* : Bool */;
183 short int var74 /* : Bool */;
184 int cltype;
185 int idtype;
186 const char* var_class_name;
187 short int var75 /* : Bool */;
188 val* var76 /* : nullable Object */;
189 val* var77 /* : MClass */;
190 val* var79 /* : MClass */;
191 val* var80 /* : nullable MMethod */;
192 val* var_prop /* var prop: nullable MMethod */;
193 short int var81 /* : Bool */;
194 short int var82 /* : Bool */;
195 short int var84 /* : Bool */;
196 short int var86 /* : Bool */;
197 val* var88 /* : NativeArray[String] */;
198 static val* varonce87;
199 static val* varonce89;
200 val* var90 /* : String */;
201 char* var91 /* : CString */;
202 val* var92 /* : String */;
203 val* var93 /* : nullable Int */;
204 val* var94 /* : nullable Int */;
205 val* var95 /* : nullable Bool */;
206 val* var96 /* : nullable Bool */;
207 static val* varonce97;
208 val* var98 /* : String */;
209 char* var99 /* : CString */;
210 val* var100 /* : String */;
211 val* var101 /* : nullable Int */;
212 val* var102 /* : nullable Int */;
213 val* var103 /* : nullable Bool */;
214 val* var104 /* : nullable Bool */;
215 val* var105 /* : String */;
216 val* var106 /* : Message */;
217 val* var108 /* : MPropDef */;
218 val* var110 /* : MPropDef */;
219 val* var111 /* : nullable MSignature */;
220 val* var113 /* : nullable MSignature */;
221 val* var114 /* : nullable MType */;
222 val* var116 /* : nullable MType */;
223 val* var_ret /* var ret: nullable MType */;
224 short int var117 /* : Bool */;
225 short int var118 /* : Bool */;
226 short int var120 /* : Bool */;
227 short int var122 /* : Bool */;
228 val* var124 /* : NativeArray[String] */;
229 static val* varonce123;
230 static val* varonce125;
231 val* var126 /* : String */;
232 char* var127 /* : CString */;
233 val* var128 /* : String */;
234 val* var129 /* : nullable Int */;
235 val* var130 /* : nullable Int */;
236 val* var131 /* : nullable Bool */;
237 val* var132 /* : nullable Bool */;
238 static val* varonce133;
239 val* var134 /* : String */;
240 char* var135 /* : CString */;
241 val* var136 /* : String */;
242 val* var137 /* : nullable Int */;
243 val* var138 /* : nullable Int */;
244 val* var139 /* : nullable Bool */;
245 val* var140 /* : nullable Bool */;
246 val* var141 /* : String */;
247 val* var142 /* : String */;
248 val* var143 /* : Message */;
249 val* var144 /* : String */;
250 static val* varonce145;
251 val* var146 /* : String */;
252 char* var147 /* : CString */;
253 val* var148 /* : String */;
254 val* var149 /* : nullable Int */;
255 val* var150 /* : nullable Int */;
256 val* var151 /* : nullable Bool */;
257 val* var152 /* : nullable Bool */;
258 short int var153 /* : Bool */;
259 short int var154 /* : Bool */;
260 short int var155 /* : Bool */;
261 short int var156 /* : Bool */;
262 short int var_157 /* var : Bool */;
263 static val* varonce158;
264 val* var159 /* : String */;
265 char* var160 /* : CString */;
266 val* var161 /* : String */;
267 val* var162 /* : nullable Int */;
268 val* var163 /* : nullable Int */;
269 val* var164 /* : nullable Bool */;
270 val* var165 /* : nullable Bool */;
271 short int var166 /* : Bool */;
272 val* var167 /* : nullable Object */;
273 val* var_v /* var v: nullable Object */;
274 static val* varonce168;
275 val* var169 /* : String */;
276 char* var170 /* : CString */;
277 val* var171 /* : String */;
278 val* var172 /* : nullable Int */;
279 val* var173 /* : nullable Int */;
280 val* var174 /* : nullable Bool */;
281 val* var175 /* : nullable Bool */;
282 short int var176 /* : Bool */;
283 val* var177 /* : nullable Object */;
284 val* var179 /* : NativeArray[String] */;
285 static val* varonce178;
286 static val* varonce180;
287 val* var181 /* : String */;
288 char* var182 /* : CString */;
289 val* var183 /* : String */;
290 val* var184 /* : nullable Int */;
291 val* var185 /* : nullable Int */;
292 val* var186 /* : nullable Bool */;
293 val* var187 /* : nullable Bool */;
294 static val* varonce188;
295 val* var189 /* : String */;
296 char* var190 /* : CString */;
297 val* var191 /* : String */;
298 val* var192 /* : nullable Int */;
299 val* var193 /* : nullable Int */;
300 val* var194 /* : nullable Bool */;
301 val* var195 /* : nullable Bool */;
302 val* var196 /* : String */;
303 val* var197 /* : String */;
304 val* var198 /* : Message */;
305 val* var199 /* : String */;
306 static val* varonce200;
307 val* var201 /* : String */;
308 char* var202 /* : CString */;
309 val* var203 /* : String */;
310 val* var204 /* : nullable Int */;
311 val* var205 /* : nullable Int */;
312 val* var206 /* : nullable Bool */;
313 val* var207 /* : nullable Bool */;
314 short int var208 /* : Bool */;
315 short int var209 /* : Bool */;
316 short int var210 /* : Bool */;
317 short int var211 /* : Bool */;
318 short int var213 /* : Bool */;
319 short int var214 /* : Bool */;
320 short int var_215 /* var : Bool */;
321 short int var216 /* : Bool */;
322 long var217 /* : Int */;
323 val* var218 /* : nullable Object */;
324 val* var220 /* : NativeArray[String] */;
325 static val* varonce219;
326 static val* varonce221;
327 val* var222 /* : String */;
328 char* var223 /* : CString */;
329 val* var224 /* : String */;
330 val* var225 /* : nullable Int */;
331 val* var226 /* : nullable Int */;
332 val* var227 /* : nullable Bool */;
333 val* var228 /* : nullable Bool */;
334 static val* varonce229;
335 val* var230 /* : String */;
336 char* var231 /* : CString */;
337 val* var232 /* : String */;
338 val* var233 /* : nullable Int */;
339 val* var234 /* : nullable Int */;
340 val* var235 /* : nullable Bool */;
341 val* var236 /* : nullable Bool */;
342 val* var237 /* : String */;
343 val* var238 /* : String */;
344 val* var239 /* : Message */;
345 val* var240 /* : String */;
346 static val* varonce241;
347 val* var242 /* : String */;
348 char* var243 /* : CString */;
349 val* var244 /* : String */;
350 val* var245 /* : nullable Int */;
351 val* var246 /* : nullable Int */;
352 val* var247 /* : nullable Bool */;
353 val* var248 /* : nullable Bool */;
354 short int var249 /* : Bool */;
355 short int var250 /* : Bool */;
356 short int var251 /* : Bool */;
357 short int var253 /* : Bool */;
358 short int var254 /* : Bool */;
359 val* var256 /* : NativeArray[String] */;
360 static val* varonce255;
361 static val* varonce257;
362 val* var258 /* : String */;
363 char* var259 /* : CString */;
364 val* var260 /* : String */;
365 val* var261 /* : nullable Int */;
366 val* var262 /* : nullable Int */;
367 val* var263 /* : nullable Bool */;
368 val* var264 /* : nullable Bool */;
369 static val* varonce265;
370 val* var266 /* : String */;
371 char* var267 /* : CString */;
372 val* var268 /* : String */;
373 val* var269 /* : nullable Int */;
374 val* var270 /* : nullable Int */;
375 val* var271 /* : nullable Bool */;
376 val* var272 /* : nullable Bool */;
377 val* var273 /* : String */;
378 val* var274 /* : String */;
379 val* var275 /* : Message */;
380 val* var277 /* : NativeArray[String] */;
381 static val* varonce276;
382 static val* varonce278;
383 val* var279 /* : String */;
384 char* var280 /* : CString */;
385 val* var281 /* : String */;
386 val* var282 /* : nullable Int */;
387 val* var283 /* : nullable Int */;
388 val* var284 /* : nullable Bool */;
389 val* var285 /* : nullable Bool */;
390 static val* varonce286;
391 val* var287 /* : String */;
392 char* var288 /* : CString */;
393 val* var289 /* : String */;
394 val* var290 /* : nullable Int */;
395 val* var291 /* : nullable Int */;
396 val* var292 /* : nullable Bool */;
397 val* var293 /* : nullable Bool */;
398 static val* varonce294;
399 val* var295 /* : String */;
400 char* var296 /* : CString */;
401 val* var297 /* : String */;
402 val* var298 /* : nullable Int */;
403 val* var299 /* : nullable Int */;
404 val* var300 /* : nullable Bool */;
405 val* var301 /* : nullable Bool */;
406 val* var302 /* : String */;
407 val* var303 /* : String */;
408 val* var304 /* : String */;
409 val* var305 /* : Message */;
410 val* var306 /* : MMethodDef */;
411 val* var_pd /* var pd: MMethodDef */;
412 val* var307 /* : MPropDef */;
413 val* var309 /* : MPropDef */;
414 val* var310 /* : nullable MSignature */;
415 val* var312 /* : nullable MSignature */;
416 short int var315 /* : Bool */;
417 var_mmodules = p0;
418 {
419 { /* Inline mixin$ToolContext$opt_mixins (self) on <self:ToolContext> */
420 var3 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
421 if (unlikely(var3 == NULL)) {
422 if(catchStack.cursor >= 0){
423 longjmp(catchStack.envs[catchStack.cursor], 1);
424 }
425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
426 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 23);
427 fatal_exit(1);
428 }
429 var1 = var3;
430 RET_LABEL2:(void)0;
431 }
432 }
433 {
434 { /* Inline opts$Option$value (var1) on <var1:OptionArray> */
435 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionArray> */
436 var4 = var6;
437 RET_LABEL5:(void)0;
438 }
439 }
440 var_mixins = var4;
441 {
442 var7 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_mixins);
443 }
444 var8 = !var7;
445 if (var8){
446 {
447 var9 = nitc__modelbuilder_base___ToolContext___modelbuilder(self);
448 }
449 {
450 { /* Inline mixin$ToolContext$opt_mixins (self) on <self:ToolContext> */
451 var12 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
452 if (unlikely(var12 == NULL)) {
453 if(catchStack.cursor >= 0){
454 longjmp(catchStack.envs[catchStack.cursor], 1);
455 }
456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
457 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 23);
458 fatal_exit(1);
459 }
460 var10 = var12;
461 RET_LABEL11:(void)0;
462 }
463 }
464 {
465 { /* Inline opts$Option$value (var10) on <var10:OptionArray> */
466 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionArray> */
467 var13 = var15;
468 RET_LABEL14:(void)0;
469 }
470 }
471 {
472 var16 = nitc__loader___ModelBuilder___parse(var9, var13);
473 }
474 {
475 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_mmodules, var16); /* Direct call array$Array$add_all on <var_mmodules:Array[MModule]>*/
476 }
477 {
478 var17 = nitc__modelbuilder_base___ToolContext___modelbuilder(self);
479 }
480 {
481 nitc__modelbuilder___ModelBuilder___run_phases(var17); /* Direct call modelbuilder$ModelBuilder$run_phases on <var17:ModelBuilder>*/
482 }
483 } else {
484 }
485 {
486 var18 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__mixin___ToolContext___make_main_module]))(self, p0); /* make_main_module on <self:ToolContext>*/
487 }
488 var_mainmodule = var18;
489 {
490 { /* Inline mixin$ToolContext$opt_defines (self) on <self:ToolContext> */
491 var21 = self->attrs[COLOR_nitc__mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:ToolContext> */
492 if (unlikely(var21 == NULL)) {
493 if(catchStack.cursor >= 0){
494 longjmp(catchStack.envs[catchStack.cursor], 1);
495 }
496 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
497 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 25);
498 fatal_exit(1);
499 }
500 var19 = var21;
501 RET_LABEL20:(void)0;
502 }
503 }
504 {
505 { /* Inline opts$Option$value (var19) on <var19:OptionArray> */
506 var24 = var19->attrs[COLOR_opts__Option___value].val; /* _value on <var19:OptionArray> */
507 var22 = var24;
508 RET_LABEL23:(void)0;
509 }
510 }
511 var_defines = var22;
512 {
513 var25 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_defines);
514 }
515 var26 = !var25;
516 if (var26){
517 {
518 { /* Inline mmodule$MModule$location (var_mainmodule) on <var_mainmodule:MModule> */
519 var29 = var_mainmodule->attrs[COLOR_nitc__mmodule__MModule___location].val; /* _location on <var_mainmodule:MModule> */
520 if (unlikely(var29 == NULL)) {
521 if(catchStack.cursor >= 0){
522 longjmp(catchStack.envs[catchStack.cursor], 1);
523 }
524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 103);
526 fatal_exit(1);
527 }
528 var27 = var29;
529 RET_LABEL28:(void)0;
530 }
531 }
532 var_location = var27;
533 {
534 { /* Inline mmodule$MModule$model (var_mainmodule) on <var_mainmodule:MModule> */
535 var32 = var_mainmodule->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var_mainmodule:MModule> */
536 if (unlikely(var32 == NULL)) {
537 if(catchStack.cursor >= 0){
538 longjmp(catchStack.envs[catchStack.cursor], 1);
539 }
540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
541 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
542 fatal_exit(1);
543 }
544 var30 = var32;
545 RET_LABEL31:(void)0;
546 }
547 }
548 var_model = var30;
549 {
550 var33 = core___core__SequenceRead___Collection__first(var_mmodules);
551 }
552 {
553 { /* Inline kernel$Object$== (var_mainmodule,var33) on <var_mainmodule:MModule> */
554 var_other = var33;
555 {
556 { /* Inline kernel$Object$is_same_instance (var_mainmodule,var_other) on <var_mainmodule:MModule> */
557 var38 = var_mainmodule == var_other;
558 var36 = var38;
559 goto RET_LABEL37;
560 RET_LABEL37:(void)0;
561 }
562 }
563 var34 = var36;
564 goto RET_LABEL35;
565 RET_LABEL35:(void)0;
566 }
567 }
568 if (var34){
569 var39 = NEW_nitc__MModule(&type_nitc__MModule);
570 {
571 { /* Inline mmodule$MModule$name (var_mainmodule) on <var_mainmodule:MModule> */
572 var42 = var_mainmodule->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <var_mainmodule:MModule> */
573 if (unlikely(var42 == NULL)) {
574 if(catchStack.cursor >= 0){
575 longjmp(catchStack.envs[catchStack.cursor], 1);
576 }
577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
578 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 100);
579 fatal_exit(1);
580 }
581 var40 = var42;
582 RET_LABEL41:(void)0;
583 }
584 }
585 if (likely(varonce!=NULL)) {
586 var43 = varonce;
587 } else {
588 var44 = "-d";
589 var46 = (val*)(2l<<2|1);
590 var47 = (val*)(2l<<2|1);
591 var48 = (val*)((long)(0)<<2|3);
592 var49 = (val*)((long)(0)<<2|3);
593 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
594 var43 = var45;
595 varonce = var43;
596 }
597 {
598 var50 = ((val*(*)(val* self, val* p0))(var40->class->vft[COLOR_core__abstract_text__Text___43d]))(var40, var43); /* + on <var40:String>*/
599 }
600 {
601 ((void(*)(val* self, val* p0))(var39->class->vft[COLOR_nitc__mmodule__MModule__model_61d]))(var39, var_model); /* model= on <var39:MModule>*/
602 }
603 {
604 ((void(*)(val* self, val* p0))(var39->class->vft[COLOR_nitc__mmodule__MModule__mgroup_61d]))(var39, ((val*)NULL)); /* mgroup= on <var39:MModule>*/
605 }
606 {
607 ((void(*)(val* self, val* p0))(var39->class->vft[COLOR_nitc__mmodule__MModule__name_61d]))(var39, var50); /* name= on <var39:MModule>*/
608 }
609 {
610 ((void(*)(val* self, val* p0))(var39->class->vft[COLOR_nitc__mmodule__MModule__location_61d]))(var39, var_location); /* location= on <var39:MModule>*/
611 }
612 {
613 ((void(*)(val* self))(var39->class->vft[COLOR_core__kernel__Object__init]))(var39); /* init on <var39:MModule>*/
614 }
615 var_mainmodule = var39;
616 {
617 nitc___nitc__MModule___set_imported_mmodules(var_mainmodule, var_mmodules); /* Direct call mmodule$MModule$set_imported_mmodules on <var_mainmodule:MModule>*/
618 }
619 {
620 { /* Inline model_base$MEntity$is_fictive= (var_mainmodule,1) on <var_mainmodule:MModule> */
621 var_mainmodule->attrs[COLOR_nitc__model_base__MEntity___is_fictive].s = 1; /* _is_fictive on <var_mainmodule:MModule> */
622 RET_LABEL51:(void)0;
623 }
624 }
625 {
626 var52 = core___core__SequenceRead___Collection__first(var_mmodules);
627 }
628 {
629 { /* Inline mmodule$MModule$first_real_mmodule= (var_mainmodule,var52) on <var_mainmodule:MModule> */
630 var_mainmodule->attrs[COLOR_nitc__mmodule__MModule___first_real_mmodule].val = var52; /* _first_real_mmodule on <var_mainmodule:MModule> */
631 RET_LABEL53:(void)0;
632 }
633 }
634 } else {
635 }
636 {
637 var54 = nitc__model___MModule___sys_type(var_mainmodule);
638 }
639 var_recv = var54;
640 if (var_recv == NULL) {
641 var55 = 0; /* is null */
642 } else {
643 var55 = 1; /* arg is null and recv is not */
644 }
645 if (0) {
646 { /* Inline kernel$Object$!= (var_recv,((val*)NULL)) on <var_recv:nullable MClassType> */
647 var_other58 = ((val*)NULL);
648 {
649 var59 = ((short int(*)(val* self, val* p0))(var_recv->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_recv, var_other58); /* == on <var_recv:nullable MClassType(MClassType)>*/
650 }
651 var60 = !var59;
652 var56 = var60;
653 goto RET_LABEL57;
654 RET_LABEL57:(void)0;
655 }
656 var55 = var56;
657 }
658 if (unlikely(!var55)) {
659 if(catchStack.cursor >= 0){
660 longjmp(catchStack.envs[catchStack.cursor], 1);
661 }
662 PRINT_ERROR("Runtime error: %s", "Assert failed");
663 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 58);
664 fatal_exit(1);
665 }
666 var61 = NEW_nitc__MClassDef(&type_nitc__MClassDef);
667 {
668 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_nitc__model__MClassDef__mmodule_61d]))(var61, var_mainmodule); /* mmodule= on <var61:MClassDef>*/
669 }
670 {
671 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_nitc__model__MClassDef__bound_mtype_61d]))(var61, var_recv); /* bound_mtype= on <var61:MClassDef>*/
672 }
673 {
674 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_nitc__model__MClassDef__location_61d]))(var61, var_location); /* location= on <var61:MClassDef>*/
675 }
676 {
677 ((void(*)(val* self))(var61->class->vft[COLOR_core__kernel__Object__init]))(var61); /* init on <var61:MClassDef>*/
678 }
679 var_mclassdef = var61;
680 {
681 nitc___nitc__MClassDef___add_in_hierarchy(var_mclassdef); /* Direct call model$MClassDef$add_in_hierarchy on <var_mclassdef:MClassDef>*/
682 }
683 var_ = var_defines;
684 {
685 var62 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
686 }
687 var_63 = var62;
688 for(;;) {
689 {
690 var64 = ((short int(*)(val* self))((((long)var_63&3)?class_info[((long)var_63&3)]:var_63->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_63); /* is_ok on <var_63:IndexedIterator[String]>*/
691 }
692 if (var64){
693 } else {
694 goto BREAK_label;
695 }
696 {
697 var65 = ((val*(*)(val* self))((((long)var_63&3)?class_info[((long)var_63&3)]:var_63->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_63); /* item on <var_63:IndexedIterator[String]>*/
698 }
699 var_define = var65;
700 {
701 var67 = (val*)((long)('=')<<2|2);
702 var66 = core__string_search___Text___split_once_on(var_define, var67);
703 }
704 var_spl = var66;
705 {
706 var68 = core___core__SequenceRead___Collection__first(var_spl);
707 }
708 var_name = var68;
709 var_val = ((val*)NULL);
710 {
711 { /* Inline array$AbstractArrayRead$length (var_spl) on <var_spl:Array[String]> */
712 var71 = var_spl->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_spl:Array[String]> */
713 var69 = var71;
714 RET_LABEL70:(void)0;
715 }
716 }
717 {
718 { /* Inline kernel$Int$> (var69,1l) on <var69:Int> */
719 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
720 /* <1l:Int> isa OTHER */
721 var74 = 1; /* easy <1l:Int> isa OTHER*/
722 if (unlikely(!var74)) {
723 var_class_name = type_core__Int.name;
724 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
725 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
726 fatal_exit(1);
727 }
728 var75 = var69 > 1l;
729 var72 = var75;
730 goto RET_LABEL73;
731 RET_LABEL73:(void)0;
732 }
733 }
734 if (var72){
735 {
736 var76 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_spl, 1l);
737 }
738 var_val = var76;
739 } else {
740 }
741 {
742 { /* Inline model$MClassType$mclass (var_recv) on <var_recv:nullable MClassType(MClassType)> */
743 var79 = var_recv->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_recv:nullable MClassType(MClassType)> */
744 if (unlikely(var79 == NULL)) {
745 if(catchStack.cursor >= 0){
746 longjmp(catchStack.envs[catchStack.cursor], 1);
747 }
748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
749 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
750 fatal_exit(1);
751 }
752 var77 = var79;
753 RET_LABEL78:(void)0;
754 }
755 }
756 {
757 var80 = nitc__model___MModule___try_get_primitive_method(var_mainmodule, var_name, var77);
758 }
759 var_prop = var80;
760 if (var_prop == NULL) {
761 var81 = 1; /* is null */
762 } else {
763 var81 = 0; /* arg is null but recv is not */
764 }
765 if (0) {
766 { /* Inline kernel$Object$== (var_prop,((val*)NULL)) on <var_prop:nullable MMethod> */
767 var_other = ((val*)NULL);
768 {
769 { /* Inline kernel$Object$is_same_instance (var_prop,var_other) on <var_prop:nullable MMethod(MMethod)> */
770 var86 = var_prop == var_other;
771 var84 = var86;
772 goto RET_LABEL85;
773 RET_LABEL85:(void)0;
774 }
775 }
776 var82 = var84;
777 goto RET_LABEL83;
778 RET_LABEL83:(void)0;
779 }
780 var81 = var82;
781 }
782 if (var81){
783 if (unlikely(varonce87==NULL)) {
784 var88 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
785 if (likely(varonce89!=NULL)) {
786 var90 = varonce89;
787 } else {
788 var91 = "Error: --define: no top-level function `";
789 var93 = (val*)(40l<<2|1);
790 var94 = (val*)(40l<<2|1);
791 var95 = (val*)((long)(0)<<2|3);
792 var96 = (val*)((long)(0)<<2|3);
793 var92 = core__flat___CString___to_s_unsafe(var91, var93, var94, var95, var96);
794 var90 = var92;
795 varonce89 = var90;
796 }
797 ((struct instance_core__NativeArray*)var88)->values[0]=var90;
798 if (likely(varonce97!=NULL)) {
799 var98 = varonce97;
800 } else {
801 var99 = "`.";
802 var101 = (val*)(2l<<2|1);
803 var102 = (val*)(2l<<2|1);
804 var103 = (val*)((long)(0)<<2|3);
805 var104 = (val*)((long)(0)<<2|3);
806 var100 = core__flat___CString___to_s_unsafe(var99, var101, var102, var103, var104);
807 var98 = var100;
808 varonce97 = var98;
809 }
810 ((struct instance_core__NativeArray*)var88)->values[2]=var98;
811 } else {
812 var88 = varonce87;
813 varonce87 = NULL;
814 }
815 ((struct instance_core__NativeArray*)var88)->values[1]=var_name;
816 {
817 var105 = ((val*(*)(val* self))(var88->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var88); /* native_to_s on <var88:NativeArray[String]>*/
818 }
819 varonce87 = var88;
820 {
821 var106 = nitc___nitc__ToolContext___error(self, ((val*)NULL), var105);
822 }
823 goto BREAK_label107;
824 } else {
825 }
826 {
827 { /* Inline model$MProperty$intro (var_prop) on <var_prop:nullable MMethod(MMethod)> */
828 var110 = var_prop->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_prop:nullable MMethod(MMethod)> */
829 if (unlikely(var110 == NULL)) {
830 if(catchStack.cursor >= 0){
831 longjmp(catchStack.envs[catchStack.cursor], 1);
832 }
833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
834 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
835 fatal_exit(1);
836 }
837 var108 = var110;
838 RET_LABEL109:(void)0;
839 }
840 }
841 {
842 { /* Inline model$MMethodDef$msignature (var108) on <var108:MPropDef(MMethodDef)> */
843 var113 = var108->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var108:MPropDef(MMethodDef)> */
844 var111 = var113;
845 RET_LABEL112:(void)0;
846 }
847 }
848 if (var111 == NULL) {
849 if(catchStack.cursor >= 0){
850 longjmp(catchStack.envs[catchStack.cursor], 1);
851 }
852 PRINT_ERROR("Runtime error: %s", "Receiver is null");
853 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mixin, 72);
854 fatal_exit(1);
855 } else {
856 { /* Inline model$MSignature$return_mtype (var111) on <var111:nullable MSignature> */
857 if (unlikely(var111 == NULL)) {
858 if(catchStack.cursor >= 0){
859 longjmp(catchStack.envs[catchStack.cursor], 1);
860 }
861 PRINT_ERROR("Runtime error: %s", "Receiver is null");
862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1891);
863 fatal_exit(1);
864 }
865 var116 = var111->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var111:nullable MSignature> */
866 var114 = var116;
867 RET_LABEL115:(void)0;
868 }
869 }
870 var_ret = var114;
871 if (var_ret == NULL) {
872 var117 = 1; /* is null */
873 } else {
874 var117 = 0; /* arg is null but recv is not */
875 }
876 if (0) {
877 { /* Inline kernel$Object$== (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
878 var_other = ((val*)NULL);
879 {
880 { /* Inline kernel$Object$is_same_instance (var_ret,var_other) on <var_ret:nullable MType(MType)> */
881 var122 = var_ret == var_other;
882 var120 = var122;
883 goto RET_LABEL121;
884 RET_LABEL121:(void)0;
885 }
886 }
887 var118 = var120;
888 goto RET_LABEL119;
889 RET_LABEL119:(void)0;
890 }
891 var117 = var118;
892 }
893 if (var117){
894 if (unlikely(varonce123==NULL)) {
895 var124 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
896 if (likely(varonce125!=NULL)) {
897 var126 = varonce125;
898 } else {
899 var127 = "Error: --define: method `";
900 var129 = (val*)(25l<<2|1);
901 var130 = (val*)(25l<<2|1);
902 var131 = (val*)((long)(0)<<2|3);
903 var132 = (val*)((long)(0)<<2|3);
904 var128 = core__flat___CString___to_s_unsafe(var127, var129, var130, var131, var132);
905 var126 = var128;
906 varonce125 = var126;
907 }
908 ((struct instance_core__NativeArray*)var124)->values[0]=var126;
909 if (likely(varonce133!=NULL)) {
910 var134 = varonce133;
911 } else {
912 var135 = "` is not a function.";
913 var137 = (val*)(20l<<2|1);
914 var138 = (val*)(20l<<2|1);
915 var139 = (val*)((long)(0)<<2|3);
916 var140 = (val*)((long)(0)<<2|3);
917 var136 = core__flat___CString___to_s_unsafe(var135, var137, var138, var139, var140);
918 var134 = var136;
919 varonce133 = var134;
920 }
921 ((struct instance_core__NativeArray*)var124)->values[2]=var134;
922 } else {
923 var124 = varonce123;
924 varonce123 = NULL;
925 }
926 {
927 var141 = ((val*(*)(val* self))(var_prop->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prop); /* to_s on <var_prop:nullable MMethod(MMethod)>*/
928 }
929 ((struct instance_core__NativeArray*)var124)->values[1]=var141;
930 {
931 var142 = ((val*(*)(val* self))(var124->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var124); /* native_to_s on <var124:NativeArray[String]>*/
932 }
933 varonce123 = var124;
934 {
935 var143 = nitc___nitc__ToolContext___error(self, ((val*)NULL), var142);
936 }
937 goto BREAK_label107;
938 } else {
939 {
940 var144 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
941 }
942 if (likely(varonce145!=NULL)) {
943 var146 = varonce145;
944 } else {
945 var147 = "Bool";
946 var149 = (val*)(4l<<2|1);
947 var150 = (val*)(4l<<2|1);
948 var151 = (val*)((long)(0)<<2|3);
949 var152 = (val*)((long)(0)<<2|3);
950 var148 = core__flat___CString___to_s_unsafe(var147, var149, var150, var151, var152);
951 var146 = var148;
952 varonce145 = var146;
953 }
954 {
955 var153 = ((short int(*)(val* self, val* p0))(var144->class->vft[COLOR_core__kernel__Object___61d_61d]))(var144, var146); /* == on <var144:String>*/
956 }
957 if (var153){
958 if (var_val == NULL) {
959 var155 = 1; /* is null */
960 } else {
961 var155 = 0; /* arg is null but recv is not */
962 }
963 if (0) {
964 var156 = ((short int(*)(val* self, val* p0))(var_val->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_val, ((val*)NULL)); /* == on <var_val:nullable Object(nullable String)>*/
965 var155 = var156;
966 }
967 var_157 = var155;
968 if (var155){
969 var154 = var_157;
970 } else {
971 if (likely(varonce158!=NULL)) {
972 var159 = varonce158;
973 } else {
974 var160 = "true";
975 var162 = (val*)(4l<<2|1);
976 var163 = (val*)(4l<<2|1);
977 var164 = (val*)((long)(0)<<2|3);
978 var165 = (val*)((long)(0)<<2|3);
979 var161 = core__flat___CString___to_s_unsafe(var160, var162, var163, var164, var165);
980 var159 = var161;
981 varonce158 = var159;
982 }
983 {
984 var166 = ((short int(*)(val* self, val* p0))(var_val->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_val, var159); /* == on <var_val:nullable Object(String)>*/
985 }
986 var154 = var166;
987 }
988 if (var154){
989 var167 = (val*)((long)(1)<<2|3);
990 var_v = var167;
991 } else {
992 if (likely(varonce168!=NULL)) {
993 var169 = varonce168;
994 } else {
995 var170 = "false";
996 var172 = (val*)(5l<<2|1);
997 var173 = (val*)(5l<<2|1);
998 var174 = (val*)((long)(0)<<2|3);
999 var175 = (val*)((long)(0)<<2|3);
1000 var171 = core__flat___CString___to_s_unsafe(var170, var172, var173, var174, var175);
1001 var169 = var171;
1002 varonce168 = var169;
1003 }
1004 {
1005 var176 = ((short int(*)(val* self, val* p0))(var_val->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_val, var169); /* == on <var_val:nullable Object(String)>*/
1006 }
1007 if (var176){
1008 var177 = (val*)((long)(0)<<2|3);
1009 var_v = var177;
1010 } else {
1011 if (unlikely(varonce178==NULL)) {
1012 var179 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1013 if (likely(varonce180!=NULL)) {
1014 var181 = varonce180;
1015 } else {
1016 var182 = "Error: --define: method `";
1017 var184 = (val*)(25l<<2|1);
1018 var185 = (val*)(25l<<2|1);
1019 var186 = (val*)((long)(0)<<2|3);
1020 var187 = (val*)((long)(0)<<2|3);
1021 var183 = core__flat___CString___to_s_unsafe(var182, var184, var185, var186, var187);
1022 var181 = var183;
1023 varonce180 = var181;
1024 }
1025 ((struct instance_core__NativeArray*)var179)->values[0]=var181;
1026 if (likely(varonce188!=NULL)) {
1027 var189 = varonce188;
1028 } else {
1029 var190 = "` needs a Bool.";
1030 var192 = (val*)(15l<<2|1);
1031 var193 = (val*)(15l<<2|1);
1032 var194 = (val*)((long)(0)<<2|3);
1033 var195 = (val*)((long)(0)<<2|3);
1034 var191 = core__flat___CString___to_s_unsafe(var190, var192, var193, var194, var195);
1035 var189 = var191;
1036 varonce188 = var189;
1037 }
1038 ((struct instance_core__NativeArray*)var179)->values[2]=var189;
1039 } else {
1040 var179 = varonce178;
1041 varonce178 = NULL;
1042 }
1043 {
1044 var196 = ((val*(*)(val* self))(var_prop->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prop); /* to_s on <var_prop:nullable MMethod(MMethod)>*/
1045 }
1046 ((struct instance_core__NativeArray*)var179)->values[1]=var196;
1047 {
1048 var197 = ((val*(*)(val* self))(var179->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var179); /* native_to_s on <var179:NativeArray[String]>*/
1049 }
1050 varonce178 = var179;
1051 {
1052 var198 = nitc___nitc__ToolContext___error(self, ((val*)NULL), var197);
1053 }
1054 goto BREAK_label107;
1055 }
1056 }
1057 } else {
1058 {
1059 var199 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
1060 }
1061 if (likely(varonce200!=NULL)) {
1062 var201 = varonce200;
1063 } else {
1064 var202 = "Int";
1065 var204 = (val*)(3l<<2|1);
1066 var205 = (val*)(3l<<2|1);
1067 var206 = (val*)((long)(0)<<2|3);
1068 var207 = (val*)((long)(0)<<2|3);
1069 var203 = core__flat___CString___to_s_unsafe(var202, var204, var205, var206, var207);
1070 var201 = var203;
1071 varonce200 = var201;
1072 }
1073 {
1074 var208 = ((short int(*)(val* self, val* p0))(var199->class->vft[COLOR_core__kernel__Object___61d_61d]))(var199, var201); /* == on <var199:String>*/
1075 }
1076 if (var208){
1077 if (var_val == NULL) {
1078 var210 = 0; /* is null */
1079 } else {
1080 var210 = 1; /* arg is null and recv is not */
1081 }
1082 if (0) {
1083 { /* Inline kernel$Object$!= (var_val,((val*)NULL)) on <var_val:nullable Object(nullable String)> */
1084 var_other58 = ((val*)NULL);
1085 {
1086 var213 = ((short int(*)(val* self, val* p0))(var_val->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_val, var_other58); /* == on <var_val:nullable Object(String)>*/
1087 }
1088 var214 = !var213;
1089 var211 = var214;
1090 goto RET_LABEL212;
1091 RET_LABEL212:(void)0;
1092 }
1093 var210 = var211;
1094 }
1095 var_215 = var210;
1096 if (var210){
1097 {
1098 var216 = core___core__Text___is_numeric(var_val);
1099 }
1100 var209 = var216;
1101 } else {
1102 var209 = var_215;
1103 }
1104 if (var209){
1105 {
1106 var217 = core__fixed_ints_text___Text___to_i(var_val);
1107 }
1108 var218 = (val*)(var217<<2|1);
1109 var_v = var218;
1110 } else {
1111 if (unlikely(varonce219==NULL)) {
1112 var220 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1113 if (likely(varonce221!=NULL)) {
1114 var222 = varonce221;
1115 } else {
1116 var223 = "Error: --define: method `";
1117 var225 = (val*)(25l<<2|1);
1118 var226 = (val*)(25l<<2|1);
1119 var227 = (val*)((long)(0)<<2|3);
1120 var228 = (val*)((long)(0)<<2|3);
1121 var224 = core__flat___CString___to_s_unsafe(var223, var225, var226, var227, var228);
1122 var222 = var224;
1123 varonce221 = var222;
1124 }
1125 ((struct instance_core__NativeArray*)var220)->values[0]=var222;
1126 if (likely(varonce229!=NULL)) {
1127 var230 = varonce229;
1128 } else {
1129 var231 = "` needs a Int.";
1130 var233 = (val*)(14l<<2|1);
1131 var234 = (val*)(14l<<2|1);
1132 var235 = (val*)((long)(0)<<2|3);
1133 var236 = (val*)((long)(0)<<2|3);
1134 var232 = core__flat___CString___to_s_unsafe(var231, var233, var234, var235, var236);
1135 var230 = var232;
1136 varonce229 = var230;
1137 }
1138 ((struct instance_core__NativeArray*)var220)->values[2]=var230;
1139 } else {
1140 var220 = varonce219;
1141 varonce219 = NULL;
1142 }
1143 {
1144 var237 = ((val*(*)(val* self))(var_prop->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prop); /* to_s on <var_prop:nullable MMethod(MMethod)>*/
1145 }
1146 ((struct instance_core__NativeArray*)var220)->values[1]=var237;
1147 {
1148 var238 = ((val*(*)(val* self))(var220->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var220); /* native_to_s on <var220:NativeArray[String]>*/
1149 }
1150 varonce219 = var220;
1151 {
1152 var239 = nitc___nitc__ToolContext___error(self, ((val*)NULL), var238);
1153 }
1154 goto BREAK_label107;
1155 }
1156 } else {
1157 {
1158 var240 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
1159 }
1160 if (likely(varonce241!=NULL)) {
1161 var242 = varonce241;
1162 } else {
1163 var243 = "String";
1164 var245 = (val*)(6l<<2|1);
1165 var246 = (val*)(6l<<2|1);
1166 var247 = (val*)((long)(0)<<2|3);
1167 var248 = (val*)((long)(0)<<2|3);
1168 var244 = core__flat___CString___to_s_unsafe(var243, var245, var246, var247, var248);
1169 var242 = var244;
1170 varonce241 = var242;
1171 }
1172 {
1173 var249 = ((short int(*)(val* self, val* p0))(var240->class->vft[COLOR_core__kernel__Object___61d_61d]))(var240, var242); /* == on <var240:String>*/
1174 }
1175 if (var249){
1176 if (var_val == NULL) {
1177 var250 = 0; /* is null */
1178 } else {
1179 var250 = 1; /* arg is null and recv is not */
1180 }
1181 if (0) {
1182 { /* Inline kernel$Object$!= (var_val,((val*)NULL)) on <var_val:nullable Object(nullable String)> */
1183 var_other58 = ((val*)NULL);
1184 {
1185 var253 = ((short int(*)(val* self, val* p0))(var_val->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_val, var_other58); /* == on <var_val:nullable Object(String)>*/
1186 }
1187 var254 = !var253;
1188 var251 = var254;
1189 goto RET_LABEL252;
1190 RET_LABEL252:(void)0;
1191 }
1192 var250 = var251;
1193 }
1194 if (var250){
1195 var_v = var_val;
1196 } else {
1197 if (unlikely(varonce255==NULL)) {
1198 var256 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1199 if (likely(varonce257!=NULL)) {
1200 var258 = varonce257;
1201 } else {
1202 var259 = "Error: --define: method `";
1203 var261 = (val*)(25l<<2|1);
1204 var262 = (val*)(25l<<2|1);
1205 var263 = (val*)((long)(0)<<2|3);
1206 var264 = (val*)((long)(0)<<2|3);
1207 var260 = core__flat___CString___to_s_unsafe(var259, var261, var262, var263, var264);
1208 var258 = var260;
1209 varonce257 = var258;
1210 }
1211 ((struct instance_core__NativeArray*)var256)->values[0]=var258;
1212 if (likely(varonce265!=NULL)) {
1213 var266 = varonce265;
1214 } else {
1215 var267 = "` needs a String.";
1216 var269 = (val*)(17l<<2|1);
1217 var270 = (val*)(17l<<2|1);
1218 var271 = (val*)((long)(0)<<2|3);
1219 var272 = (val*)((long)(0)<<2|3);
1220 var268 = core__flat___CString___to_s_unsafe(var267, var269, var270, var271, var272);
1221 var266 = var268;
1222 varonce265 = var266;
1223 }
1224 ((struct instance_core__NativeArray*)var256)->values[2]=var266;
1225 } else {
1226 var256 = varonce255;
1227 varonce255 = NULL;
1228 }
1229 {
1230 var273 = ((val*(*)(val* self))(var_prop->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prop); /* to_s on <var_prop:nullable MMethod(MMethod)>*/
1231 }
1232 ((struct instance_core__NativeArray*)var256)->values[1]=var273;
1233 {
1234 var274 = ((val*(*)(val* self))(var256->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var256); /* native_to_s on <var256:NativeArray[String]>*/
1235 }
1236 varonce255 = var256;
1237 {
1238 var275 = nitc___nitc__ToolContext___error(self, ((val*)NULL), var274);
1239 }
1240 goto BREAK_label107;
1241 }
1242 } else {
1243 if (unlikely(varonce276==NULL)) {
1244 var277 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
1245 if (likely(varonce278!=NULL)) {
1246 var279 = varonce278;
1247 } else {
1248 var280 = "Error: --define: method `";
1249 var282 = (val*)(25l<<2|1);
1250 var283 = (val*)(25l<<2|1);
1251 var284 = (val*)((long)(0)<<2|3);
1252 var285 = (val*)((long)(0)<<2|3);
1253 var281 = core__flat___CString___to_s_unsafe(var280, var282, var283, var284, var285);
1254 var279 = var281;
1255 varonce278 = var279;
1256 }
1257 ((struct instance_core__NativeArray*)var277)->values[0]=var279;
1258 if (likely(varonce286!=NULL)) {
1259 var287 = varonce286;
1260 } else {
1261 var288 = "` returns an unsupported type `";
1262 var290 = (val*)(31l<<2|1);
1263 var291 = (val*)(31l<<2|1);
1264 var292 = (val*)((long)(0)<<2|3);
1265 var293 = (val*)((long)(0)<<2|3);
1266 var289 = core__flat___CString___to_s_unsafe(var288, var290, var291, var292, var293);
1267 var287 = var289;
1268 varonce286 = var287;
1269 }
1270 ((struct instance_core__NativeArray*)var277)->values[2]=var287;
1271 if (likely(varonce294!=NULL)) {
1272 var295 = varonce294;
1273 } else {
1274 var296 = "`.";
1275 var298 = (val*)(2l<<2|1);
1276 var299 = (val*)(2l<<2|1);
1277 var300 = (val*)((long)(0)<<2|3);
1278 var301 = (val*)((long)(0)<<2|3);
1279 var297 = core__flat___CString___to_s_unsafe(var296, var298, var299, var300, var301);
1280 var295 = var297;
1281 varonce294 = var295;
1282 }
1283 ((struct instance_core__NativeArray*)var277)->values[4]=var295;
1284 } else {
1285 var277 = varonce276;
1286 varonce276 = NULL;
1287 }
1288 {
1289 var302 = ((val*(*)(val* self))(var_prop->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prop); /* to_s on <var_prop:nullable MMethod(MMethod)>*/
1290 }
1291 ((struct instance_core__NativeArray*)var277)->values[1]=var302;
1292 {
1293 var303 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
1294 }
1295 ((struct instance_core__NativeArray*)var277)->values[3]=var303;
1296 {
1297 var304 = ((val*(*)(val* self))(var277->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var277); /* native_to_s on <var277:NativeArray[String]>*/
1298 }
1299 varonce276 = var277;
1300 {
1301 var305 = nitc___nitc__ToolContext___error(self, ((val*)NULL), var304);
1302 }
1303 goto BREAK_label107;
1304 }
1305 }
1306 }
1307 }
1308 var306 = NEW_nitc__MMethodDef(&type_nitc__MMethodDef);
1309 {
1310 ((void(*)(val* self, val* p0))(var306->class->vft[COLOR_nitc__model__MPropDef__mclassdef_61d]))(var306, var_mclassdef); /* mclassdef= on <var306:MMethodDef>*/
1311 }
1312 {
1313 ((void(*)(val* self, val* p0))(var306->class->vft[COLOR_nitc__model__MPropDef__mproperty_61d]))(var306, var_prop); /* mproperty= on <var306:MMethodDef>*/
1314 }
1315 {
1316 ((void(*)(val* self, val* p0))(var306->class->vft[COLOR_nitc__model__MPropDef__location_61d]))(var306, var_location); /* location= on <var306:MMethodDef>*/
1317 }
1318 {
1319 ((void(*)(val* self))(var306->class->vft[COLOR_core__kernel__Object__init]))(var306); /* init on <var306:MMethodDef>*/
1320 }
1321 var_pd = var306;
1322 {
1323 { /* Inline model$MProperty$intro (var_prop) on <var_prop:nullable MMethod(MMethod)> */
1324 var309 = var_prop->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_prop:nullable MMethod(MMethod)> */
1325 if (unlikely(var309 == NULL)) {
1326 if(catchStack.cursor >= 0){
1327 longjmp(catchStack.envs[catchStack.cursor], 1);
1328 }
1329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1330 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
1331 fatal_exit(1);
1332 }
1333 var307 = var309;
1334 RET_LABEL308:(void)0;
1335 }
1336 }
1337 {
1338 { /* Inline model$MMethodDef$msignature (var307) on <var307:MPropDef(MMethodDef)> */
1339 var312 = var307->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var307:MPropDef(MMethodDef)> */
1340 var310 = var312;
1341 RET_LABEL311:(void)0;
1342 }
1343 }
1344 {
1345 { /* Inline model$MMethodDef$msignature= (var_pd,var310) on <var_pd:MMethodDef> */
1346 var_pd->attrs[COLOR_nitc__model__MMethodDef___msignature].val = var310; /* _msignature on <var_pd:MMethodDef> */
1347 RET_LABEL313:(void)0;
1348 }
1349 }
1350 {
1351 { /* Inline model$MMethodDef$constant_value= (var_pd,var_v) on <var_pd:MMethodDef> */
1352 var_pd->attrs[COLOR_nitc__model__MMethodDef___constant_value].val = var_v; /* _constant_value on <var_pd:MMethodDef> */
1353 RET_LABEL314:(void)0;
1354 }
1355 }
1356 BREAK_label107: (void)0;
1357 {
1358 ((void(*)(val* self))((((long)var_63&3)?class_info[((long)var_63&3)]:var_63->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_63); /* next on <var_63:IndexedIterator[String]>*/
1359 }
1360 }
1361 BREAK_label: (void)0;
1362 {
1363 ((void(*)(val* self))((((long)var_63&3)?class_info[((long)var_63&3)]:var_63->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_63); /* finish on <var_63:IndexedIterator[String]>*/
1364 }
1365 {
1366 var315 = nitc___nitc__ToolContext___check_errors(self);
1367 }
1368 } else {
1369 }
1370 var = var_mainmodule;
1371 goto RET_LABEL;
1372 RET_LABEL:;
1373 return var;
1374 }