nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / mixin.sep.1.c
1 #include "mixin.sep.0.h"
2 /* method mixin#ToolContext#opt_mixins for (self: ToolContext): OptionArray */
3 val* mixin__ToolContext__opt_mixins(val* self) {
4 val* var /* : OptionArray */;
5 val* var1 /* : OptionArray */;
6 var1 = self->attrs[COLOR_mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
9 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method mixin#ToolContext#opt_mixins for (self: Object): OptionArray */
17 val* VIRTUAL_mixin__ToolContext__opt_mixins(val* self) {
18 val* var /* : OptionArray */;
19 val* var1 /* : OptionArray */;
20 val* var3 /* : OptionArray */;
21 { /* Inline mixin#ToolContext#opt_mixins (self) on <self:Object(ToolContext)> */
22 var3 = self->attrs[COLOR_mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:Object(ToolContext)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
25 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 23);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method mixin#ToolContext#opt_defines for (self: ToolContext): OptionArray */
36 val* mixin__ToolContext__opt_defines(val* self) {
37 val* var /* : OptionArray */;
38 val* var1 /* : OptionArray */;
39 var1 = self->attrs[COLOR_mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:ToolContext> */
40 if (unlikely(var1 == NULL)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
42 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 25);
43 show_backtrace(1);
44 }
45 var = var1;
46 RET_LABEL:;
47 return var;
48 }
49 /* method mixin#ToolContext#opt_defines for (self: Object): OptionArray */
50 val* VIRTUAL_mixin__ToolContext__opt_defines(val* self) {
51 val* var /* : OptionArray */;
52 val* var1 /* : OptionArray */;
53 val* var3 /* : OptionArray */;
54 { /* Inline mixin#ToolContext#opt_defines (self) on <self:Object(ToolContext)> */
55 var3 = self->attrs[COLOR_mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:Object(ToolContext)> */
56 if (unlikely(var3 == NULL)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
58 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 25);
59 show_backtrace(1);
60 }
61 var1 = var3;
62 RET_LABEL2:(void)0;
63 }
64 var = var1;
65 RET_LABEL:;
66 return var;
67 }
68 /* method mixin#ToolContext#init for (self: ToolContext) */
69 void mixin__ToolContext__init(val* self) {
70 val* var /* : OptionContext */;
71 val* var2 /* : OptionContext */;
72 val* var3 /* : OptionArray */;
73 val* var5 /* : OptionArray */;
74 val* var6 /* : OptionArray */;
75 val* var8 /* : OptionArray */;
76 val* var9 /* : Array[Option] */;
77 long var10 /* : Int */;
78 val* var11 /* : NativeArray[Option] */;
79 {
80 ((void (*)(val*))(self->class->vft[COLOR_mixin__ToolContext__init]))(self) /* init on <self:ToolContext>*/;
81 }
82 {
83 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
84 var2 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
85 if (unlikely(var2 == NULL)) {
86 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
87 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
88 show_backtrace(1);
89 }
90 var = var2;
91 RET_LABEL1:(void)0;
92 }
93 }
94 {
95 { /* Inline mixin#ToolContext#opt_mixins (self) on <self:ToolContext> */
96 var5 = self->attrs[COLOR_mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
97 if (unlikely(var5 == NULL)) {
98 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
99 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 23);
100 show_backtrace(1);
101 }
102 var3 = var5;
103 RET_LABEL4:(void)0;
104 }
105 }
106 {
107 { /* Inline mixin#ToolContext#opt_defines (self) on <self:ToolContext> */
108 var8 = self->attrs[COLOR_mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:ToolContext> */
109 if (unlikely(var8 == NULL)) {
110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
111 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 25);
112 show_backtrace(1);
113 }
114 var6 = var8;
115 RET_LABEL7:(void)0;
116 }
117 }
118 var9 = NEW_array__Array(&type_array__Arrayopts__Option);
119 { /* var9 = array_instance Array[Option] */
120 var10 = 2;
121 var11 = NEW_array__NativeArray(var10, &type_array__NativeArrayopts__Option);
122 ((struct instance_array__NativeArray*)var11)->values[0] = (val*) var3;
123 ((struct instance_array__NativeArray*)var11)->values[1] = (val*) var6;
124 {
125 ((void (*)(val*, val*, long))(var9->class->vft[COLOR_array__Array__with_native]))(var9, var11, var10) /* with_native on <var9:Array[Option]>*/;
126 }
127 }
128 {
129 opts__OptionContext__add_option(var, var9); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
130 }
131 RET_LABEL:;
132 }
133 /* method mixin#ToolContext#init for (self: Object) */
134 void VIRTUAL_mixin__ToolContext__init(val* self) {
135 mixin__ToolContext__init(self); /* Direct call mixin#ToolContext#init on <self:Object(ToolContext)>*/
136 RET_LABEL:;
137 }
138 /* method mixin#ToolContext#make_main_module for (self: ToolContext, Array[MModule]): MModule */
139 val* mixin__ToolContext__make_main_module(val* self, val* p0) {
140 val* var /* : MModule */;
141 val* var_mmodules /* var mmodules: Array[MModule] */;
142 val* var1 /* : OptionArray */;
143 val* var3 /* : OptionArray */;
144 val* var4 /* : nullable Object */;
145 val* var6 /* : nullable Object */;
146 val* var_mixins /* var mixins: Array[String] */;
147 short int var7 /* : Bool */;
148 short int var8 /* : Bool */;
149 val* var9 /* : ModelBuilder */;
150 val* var10 /* : OptionArray */;
151 val* var12 /* : OptionArray */;
152 val* var13 /* : nullable Object */;
153 val* var15 /* : nullable Object */;
154 val* var16 /* : Array[MModule] */;
155 val* var17 /* : ModelBuilder */;
156 val* var18 /* : MModule */;
157 val* var_mainmodule /* var mainmodule: MModule */;
158 val* var19 /* : OptionArray */;
159 val* var21 /* : OptionArray */;
160 val* var22 /* : nullable Object */;
161 val* var24 /* : nullable Object */;
162 val* var_defines /* var defines: Array[String] */;
163 short int var25 /* : Bool */;
164 short int var26 /* : Bool */;
165 val* var27 /* : Location */;
166 val* var29 /* : Location */;
167 val* var_location /* var location: Location */;
168 val* var30 /* : Model */;
169 val* var32 /* : Model */;
170 val* var_model /* var model: Model */;
171 val* var33 /* : nullable Object */;
172 short int var34 /* : Bool */;
173 short int var35 /* : Bool */;
174 val* var_other /* var other: nullable Object */;
175 short int var37 /* : Bool */;
176 short int var39 /* : Bool */;
177 val* var40 /* : MModule */;
178 val* var41 /* : null */;
179 val* var42 /* : String */;
180 val* var44 /* : String */;
181 static val* varonce;
182 val* var45 /* : String */;
183 char* var46 /* : NativeString */;
184 long var47 /* : Int */;
185 val* var48 /* : FlatString */;
186 val* var49 /* : String */;
187 short int var50 /* : Bool */;
188 val* var52 /* : MClassType */;
189 val* var_recv /* var recv: MClassType */;
190 val* var53 /* : MClassDef */;
191 val* var_mclassdef /* var mclassdef: MClassDef */;
192 val* var_ /* var : Array[String] */;
193 val* var54 /* : ArrayIterator[nullable Object] */;
194 val* var_55 /* var : ArrayIterator[String] */;
195 short int var56 /* : Bool */;
196 val* var57 /* : nullable Object */;
197 val* var_define /* var define: String */;
198 char var58 /* : Char */;
199 val* var59 /* : Array[Text] */;
200 val* var60 /* : Pattern */;
201 val* var_spl /* var spl: Array[String] */;
202 val* var61 /* : nullable Object */;
203 val* var_name /* var name: String */;
204 val* var62 /* : null */;
205 val* var_val /* var val: nullable Object */;
206 long var63 /* : Int */;
207 long var65 /* : Int */;
208 long var66 /* : Int */;
209 short int var67 /* : Bool */;
210 short int var69 /* : Bool */;
211 int cltype;
212 int idtype;
213 const char* var_class_name;
214 short int var70 /* : Bool */;
215 long var71 /* : Int */;
216 val* var72 /* : nullable Object */;
217 val* var73 /* : MClass */;
218 val* var75 /* : MClass */;
219 val* var76 /* : nullable MMethod */;
220 val* var_prop /* var prop: nullable MMethod */;
221 val* var77 /* : null */;
222 short int var78 /* : Bool */;
223 short int var79 /* : Bool */;
224 short int var81 /* : Bool */;
225 short int var83 /* : Bool */;
226 val* var84 /* : null */;
227 static val* varonce85;
228 val* var86 /* : String */;
229 char* var87 /* : NativeString */;
230 long var88 /* : Int */;
231 val* var89 /* : FlatString */;
232 static val* varonce90;
233 val* var91 /* : String */;
234 char* var92 /* : NativeString */;
235 long var93 /* : Int */;
236 val* var94 /* : FlatString */;
237 val* var95 /* : Array[Object] */;
238 long var96 /* : Int */;
239 val* var97 /* : NativeArray[Object] */;
240 val* var98 /* : String */;
241 val* var99 /* : MPropDef */;
242 val* var101 /* : MPropDef */;
243 val* var102 /* : nullable MSignature */;
244 val* var104 /* : nullable MSignature */;
245 val* var105 /* : nullable MType */;
246 val* var107 /* : nullable MType */;
247 val* var_ret /* var ret: nullable MType */;
248 val* var108 /* : null */;
249 short int var109 /* : Bool */;
250 short int var110 /* : Bool */;
251 short int var112 /* : Bool */;
252 short int var114 /* : Bool */;
253 val* var115 /* : null */;
254 static val* varonce116;
255 val* var117 /* : String */;
256 char* var118 /* : NativeString */;
257 long var119 /* : Int */;
258 val* var120 /* : FlatString */;
259 static val* varonce121;
260 val* var122 /* : String */;
261 char* var123 /* : NativeString */;
262 long var124 /* : Int */;
263 val* var125 /* : FlatString */;
264 val* var126 /* : Array[Object] */;
265 long var127 /* : Int */;
266 val* var128 /* : NativeArray[Object] */;
267 val* var129 /* : String */;
268 val* var130 /* : String */;
269 static val* varonce131;
270 val* var132 /* : String */;
271 char* var133 /* : NativeString */;
272 long var134 /* : Int */;
273 val* var135 /* : FlatString */;
274 short int var136 /* : Bool */;
275 short int var137 /* : Bool */;
276 short int var138 /* : Bool */;
277 val* var139 /* : null */;
278 short int var140 /* : Bool */;
279 short int var141 /* : Bool */;
280 short int var_142 /* var : Bool */;
281 static val* varonce143;
282 val* var144 /* : String */;
283 char* var145 /* : NativeString */;
284 long var146 /* : Int */;
285 val* var147 /* : FlatString */;
286 short int var148 /* : Bool */;
287 short int var149 /* : Bool */;
288 short int var150 /* : Bool */;
289 val* var151 /* : nullable Object */;
290 val* var_v /* var v: nullable Object */;
291 static val* varonce152;
292 val* var153 /* : String */;
293 char* var154 /* : NativeString */;
294 long var155 /* : Int */;
295 val* var156 /* : FlatString */;
296 short int var157 /* : Bool */;
297 short int var158 /* : Bool */;
298 short int var159 /* : Bool */;
299 val* var160 /* : nullable Object */;
300 val* var161 /* : null */;
301 static val* varonce162;
302 val* var163 /* : String */;
303 char* var164 /* : NativeString */;
304 long var165 /* : Int */;
305 val* var166 /* : FlatString */;
306 static val* varonce167;
307 val* var168 /* : String */;
308 char* var169 /* : NativeString */;
309 long var170 /* : Int */;
310 val* var171 /* : FlatString */;
311 val* var172 /* : Array[Object] */;
312 long var173 /* : Int */;
313 val* var174 /* : NativeArray[Object] */;
314 val* var175 /* : String */;
315 val* var176 /* : String */;
316 static val* varonce177;
317 val* var178 /* : String */;
318 char* var179 /* : NativeString */;
319 long var180 /* : Int */;
320 val* var181 /* : FlatString */;
321 short int var182 /* : Bool */;
322 short int var183 /* : Bool */;
323 short int var184 /* : Bool */;
324 val* var185 /* : null */;
325 short int var186 /* : Bool */;
326 short int var187 /* : Bool */;
327 val* var_other189 /* var other: nullable Object */;
328 short int var190 /* : Bool */;
329 short int var191 /* : Bool */;
330 short int var192 /* : Bool */;
331 short int var_193 /* var : Bool */;
332 short int var194 /* : Bool */;
333 long var195 /* : Int */;
334 val* var196 /* : nullable Object */;
335 val* var197 /* : null */;
336 static val* varonce198;
337 val* var199 /* : String */;
338 char* var200 /* : NativeString */;
339 long var201 /* : Int */;
340 val* var202 /* : FlatString */;
341 static val* varonce203;
342 val* var204 /* : String */;
343 char* var205 /* : NativeString */;
344 long var206 /* : Int */;
345 val* var207 /* : FlatString */;
346 val* var208 /* : Array[Object] */;
347 long var209 /* : Int */;
348 val* var210 /* : NativeArray[Object] */;
349 val* var211 /* : String */;
350 val* var212 /* : String */;
351 static val* varonce213;
352 val* var214 /* : String */;
353 char* var215 /* : NativeString */;
354 long var216 /* : Int */;
355 val* var217 /* : FlatString */;
356 short int var218 /* : Bool */;
357 short int var219 /* : Bool */;
358 val* var220 /* : null */;
359 short int var221 /* : Bool */;
360 short int var222 /* : Bool */;
361 short int var224 /* : Bool */;
362 short int var225 /* : Bool */;
363 short int var226 /* : Bool */;
364 val* var227 /* : null */;
365 static val* varonce228;
366 val* var229 /* : String */;
367 char* var230 /* : NativeString */;
368 long var231 /* : Int */;
369 val* var232 /* : FlatString */;
370 static val* varonce233;
371 val* var234 /* : String */;
372 char* var235 /* : NativeString */;
373 long var236 /* : Int */;
374 val* var237 /* : FlatString */;
375 val* var238 /* : Array[Object] */;
376 long var239 /* : Int */;
377 val* var240 /* : NativeArray[Object] */;
378 val* var241 /* : String */;
379 val* var242 /* : null */;
380 static val* varonce243;
381 val* var244 /* : String */;
382 char* var245 /* : NativeString */;
383 long var246 /* : Int */;
384 val* var247 /* : FlatString */;
385 static val* varonce248;
386 val* var249 /* : String */;
387 char* var250 /* : NativeString */;
388 long var251 /* : Int */;
389 val* var252 /* : FlatString */;
390 static val* varonce253;
391 val* var254 /* : String */;
392 char* var255 /* : NativeString */;
393 long var256 /* : Int */;
394 val* var257 /* : FlatString */;
395 val* var258 /* : Array[Object] */;
396 long var259 /* : Int */;
397 val* var260 /* : NativeArray[Object] */;
398 val* var261 /* : String */;
399 val* var262 /* : MMethodDef */;
400 val* var_pd /* var pd: MMethodDef */;
401 val* var263 /* : MPropDef */;
402 val* var265 /* : MPropDef */;
403 val* var266 /* : nullable MSignature */;
404 val* var268 /* : nullable MSignature */;
405 var_mmodules = p0;
406 {
407 { /* Inline mixin#ToolContext#opt_mixins (self) on <self:ToolContext> */
408 var3 = self->attrs[COLOR_mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
409 if (unlikely(var3 == NULL)) {
410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
411 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 23);
412 show_backtrace(1);
413 }
414 var1 = var3;
415 RET_LABEL2:(void)0;
416 }
417 }
418 {
419 { /* Inline opts#Option#value (var1) on <var1:OptionArray> */
420 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionArray> */
421 var4 = var6;
422 RET_LABEL5:(void)0;
423 }
424 }
425 var_mixins = var4;
426 {
427 var7 = array__AbstractArrayRead__is_empty(var_mixins);
428 }
429 var8 = !var7;
430 if (var8){
431 {
432 var9 = modelbuilder__ToolContext__modelbuilder(self);
433 }
434 {
435 { /* Inline mixin#ToolContext#opt_mixins (self) on <self:ToolContext> */
436 var12 = self->attrs[COLOR_mixin__ToolContext___opt_mixins].val; /* _opt_mixins on <self:ToolContext> */
437 if (unlikely(var12 == NULL)) {
438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_mixins");
439 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 23);
440 show_backtrace(1);
441 }
442 var10 = var12;
443 RET_LABEL11:(void)0;
444 }
445 }
446 {
447 { /* Inline opts#Option#value (var10) on <var10:OptionArray> */
448 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionArray> */
449 var13 = var15;
450 RET_LABEL14:(void)0;
451 }
452 }
453 {
454 var16 = modelbuilder__ModelBuilder__parse(var9, var13);
455 }
456 {
457 abstract_collection__SimpleCollection__add_all(var_mmodules, var16); /* Direct call abstract_collection#SimpleCollection#add_all on <var_mmodules:Array[MModule]>*/
458 }
459 {
460 var17 = modelbuilder__ToolContext__modelbuilder(self);
461 }
462 {
463 modelbuilder__ModelBuilder__run_phases(var17); /* Direct call modelbuilder#ModelBuilder#run_phases on <var17:ModelBuilder>*/
464 }
465 } else {
466 }
467 {
468 var18 = ((val* (*)(val*, val*))(self->class->vft[COLOR_mixin__ToolContext__make_main_module]))(self, p0) /* make_main_module on <self:ToolContext>*/;
469 }
470 var_mainmodule = var18;
471 {
472 { /* Inline mixin#ToolContext#opt_defines (self) on <self:ToolContext> */
473 var21 = self->attrs[COLOR_mixin__ToolContext___opt_defines].val; /* _opt_defines on <self:ToolContext> */
474 if (unlikely(var21 == NULL)) {
475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_defines");
476 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 25);
477 show_backtrace(1);
478 }
479 var19 = var21;
480 RET_LABEL20:(void)0;
481 }
482 }
483 {
484 { /* Inline opts#Option#value (var19) on <var19:OptionArray> */
485 var24 = var19->attrs[COLOR_opts__Option___value].val; /* _value on <var19:OptionArray> */
486 var22 = var24;
487 RET_LABEL23:(void)0;
488 }
489 }
490 var_defines = var22;
491 {
492 var25 = array__AbstractArrayRead__is_empty(var_defines);
493 }
494 var26 = !var25;
495 if (var26){
496 {
497 { /* Inline mmodule#MModule#location (var_mainmodule) on <var_mainmodule:MModule> */
498 var29 = var_mainmodule->attrs[COLOR_mmodule__MModule___location].val; /* _location on <var_mainmodule:MModule> */
499 if (unlikely(var29 == NULL)) {
500 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
501 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 81);
502 show_backtrace(1);
503 }
504 var27 = var29;
505 RET_LABEL28:(void)0;
506 }
507 }
508 var_location = var27;
509 {
510 { /* Inline mmodule#MModule#model (var_mainmodule) on <var_mainmodule:MModule> */
511 var32 = var_mainmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var_mainmodule:MModule> */
512 if (unlikely(var32 == NULL)) {
513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
514 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
515 show_backtrace(1);
516 }
517 var30 = var32;
518 RET_LABEL31:(void)0;
519 }
520 }
521 var_model = var30;
522 {
523 var33 = abstract_collection__SequenceRead__first(var_mmodules);
524 }
525 {
526 { /* Inline kernel#Object#== (var_mainmodule,var33) on <var_mainmodule:MModule> */
527 var_other = var33;
528 {
529 { /* Inline kernel#Object#is_same_instance (var_mainmodule,var_other) on <var_mainmodule:MModule> */
530 var39 = var_mainmodule == var_other;
531 var37 = var39;
532 goto RET_LABEL38;
533 RET_LABEL38:(void)0;
534 }
535 }
536 var35 = var37;
537 goto RET_LABEL36;
538 RET_LABEL36:(void)0;
539 }
540 var34 = var35;
541 }
542 if (var34){
543 var40 = NEW_mmodule__MModule(&type_mmodule__MModule);
544 var41 = NULL;
545 {
546 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
547 var44 = var_mainmodule->attrs[COLOR_mmodule__MModule___name].val; /* _name on <var_mainmodule:MModule> */
548 if (unlikely(var44 == NULL)) {
549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
550 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
551 show_backtrace(1);
552 }
553 var42 = var44;
554 RET_LABEL43:(void)0;
555 }
556 }
557 if (varonce) {
558 var45 = varonce;
559 } else {
560 var46 = "-d";
561 var47 = 2;
562 var48 = string__NativeString__to_s_with_length(var46, var47);
563 var45 = var48;
564 varonce = var45;
565 }
566 {
567 var49 = string__FlatString___43d(var42, var45);
568 }
569 {
570 mmodule__MModule__init(var40, var_model, var41, var49, var_location); /* Direct call mmodule#MModule#init on <var40:MModule>*/
571 }
572 var_mainmodule = var40;
573 {
574 mmodule__MModule__set_imported_mmodules(var_mainmodule, var_mmodules); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:MModule>*/
575 }
576 var50 = 1;
577 {
578 { /* Inline mmodule#MModule#is_fictive= (var_mainmodule,var50) on <var_mainmodule:MModule> */
579 var_mainmodule->attrs[COLOR_mmodule__MModule___is_fictive].s = var50; /* _is_fictive on <var_mainmodule:MModule> */
580 RET_LABEL51:(void)0;
581 }
582 }
583 } else {
584 }
585 {
586 var52 = model__MModule__object_type(var_mainmodule);
587 }
588 var_recv = var52;
589 var53 = NEW_model__MClassDef(&type_model__MClassDef);
590 {
591 model__MClassDef__init(var53, var_mainmodule, var_recv, var_location); /* Direct call model#MClassDef#init on <var53:MClassDef>*/
592 }
593 var_mclassdef = var53;
594 {
595 model__MClassDef__add_in_hierarchy(var_mclassdef); /* Direct call model#MClassDef#add_in_hierarchy on <var_mclassdef:MClassDef>*/
596 }
597 var_ = var_defines;
598 {
599 var54 = array__AbstractArrayRead__iterator(var_);
600 }
601 var_55 = var54;
602 for(;;) {
603 {
604 var56 = array__ArrayIterator__is_ok(var_55);
605 }
606 if (var56){
607 {
608 var57 = array__ArrayIterator__item(var_55);
609 }
610 var_define = var57;
611 var58 = '=';
612 {
613 var60 = BOX_kernel__Char(var58); /* autobox from Char to Pattern */
614 var59 = string_search__Text__split_once_on(var_define, var60);
615 }
616 var_spl = var59;
617 {
618 var61 = abstract_collection__SequenceRead__first(var_spl);
619 }
620 var_name = var61;
621 var62 = NULL;
622 var_val = var62;
623 {
624 { /* Inline array#AbstractArrayRead#length (var_spl) on <var_spl:Array[String]> */
625 var65 = var_spl->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_spl:Array[String]> */
626 var63 = var65;
627 RET_LABEL64:(void)0;
628 }
629 }
630 var66 = 1;
631 {
632 { /* Inline kernel#Int#> (var63,var66) on <var63:Int> */
633 /* Covariant cast for argument 0 (i) <var66:Int> isa OTHER */
634 /* <var66:Int> isa OTHER */
635 var69 = 1; /* easy <var66:Int> isa OTHER*/
636 if (unlikely(!var69)) {
637 var_class_name = type_kernel__Int.name;
638 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
639 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
640 show_backtrace(1);
641 }
642 var70 = var63 > var66;
643 var67 = var70;
644 goto RET_LABEL68;
645 RET_LABEL68:(void)0;
646 }
647 }
648 if (var67){
649 var71 = 1;
650 {
651 var72 = array__Array___91d_93d(var_spl, var71);
652 }
653 var_val = var72;
654 } else {
655 }
656 {
657 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
658 var75 = var_recv->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_recv:MClassType> */
659 if (unlikely(var75 == NULL)) {
660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
661 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
662 show_backtrace(1);
663 }
664 var73 = var75;
665 RET_LABEL74:(void)0;
666 }
667 }
668 {
669 var76 = model__MModule__try_get_primitive_method(var_mainmodule, var_name, var73);
670 }
671 var_prop = var76;
672 var77 = NULL;
673 if (var_prop == NULL) {
674 var78 = 1; /* is null */
675 } else {
676 var78 = 0; /* arg is null but recv is not */
677 }
678 if (0) {
679 { /* Inline kernel#Object#== (var_prop,var77) on <var_prop:nullable MMethod> */
680 var_other = var77;
681 {
682 { /* Inline kernel#Object#is_same_instance (var_prop,var_other) on <var_prop:nullable MMethod(MMethod)> */
683 var83 = var_prop == var_other;
684 var81 = var83;
685 goto RET_LABEL82;
686 RET_LABEL82:(void)0;
687 }
688 }
689 var79 = var81;
690 goto RET_LABEL80;
691 RET_LABEL80:(void)0;
692 }
693 var78 = var79;
694 }
695 if (var78){
696 var84 = NULL;
697 if (varonce85) {
698 var86 = varonce85;
699 } else {
700 var87 = "Error: --define: no top-level function `";
701 var88 = 40;
702 var89 = string__NativeString__to_s_with_length(var87, var88);
703 var86 = var89;
704 varonce85 = var86;
705 }
706 if (varonce90) {
707 var91 = varonce90;
708 } else {
709 var92 = "`";
710 var93 = 1;
711 var94 = string__NativeString__to_s_with_length(var92, var93);
712 var91 = var94;
713 varonce90 = var91;
714 }
715 var95 = NEW_array__Array(&type_array__Arraykernel__Object);
716 { /* var95 = array_instance Array[Object] */
717 var96 = 3;
718 var97 = NEW_array__NativeArray(var96, &type_array__NativeArraykernel__Object);
719 ((struct instance_array__NativeArray*)var97)->values[0] = (val*) var86;
720 ((struct instance_array__NativeArray*)var97)->values[1] = (val*) var_name;
721 ((struct instance_array__NativeArray*)var97)->values[2] = (val*) var91;
722 {
723 ((void (*)(val*, val*, long))(var95->class->vft[COLOR_array__Array__with_native]))(var95, var97, var96) /* with_native on <var95:Array[Object]>*/;
724 }
725 }
726 {
727 var98 = ((val* (*)(val*))(var95->class->vft[COLOR_string__Object__to_s]))(var95) /* to_s on <var95:Array[Object]>*/;
728 }
729 {
730 toolcontext__ToolContext__error(self, var84, var98); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
731 }
732 goto BREAK_label;
733 } else {
734 }
735 {
736 { /* Inline model#MProperty#intro (var_prop) on <var_prop:nullable MMethod(MMethod)> */
737 var101 = var_prop->attrs[COLOR_model__MProperty___intro].val; /* _intro on <var_prop:nullable MMethod(MMethod)> */
738 if (unlikely(var101 == NULL)) {
739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
740 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
741 show_backtrace(1);
742 }
743 var99 = var101;
744 RET_LABEL100:(void)0;
745 }
746 }
747 {
748 { /* Inline model#MMethodDef#msignature (var99) on <var99:MPropDef(MMethodDef)> */
749 var104 = var99->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var99:MPropDef(MMethodDef)> */
750 var102 = var104;
751 RET_LABEL103:(void)0;
752 }
753 }
754 if (var102 == NULL) {
755 PRINT_ERROR("Runtime error: %s", "Receiver is null");
756 PRINT_ERROR(" (%s:%d)\n", "mixin.nit", 69);
757 show_backtrace(1);
758 } else {
759 { /* Inline model#MSignature#return_mtype (var102) on <var102:nullable MSignature> */
760 if (unlikely(var102 == NULL)) {
761 PRINT_ERROR("Runtime error: %s", "Receiver is null");
762 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
763 show_backtrace(1);
764 }
765 var107 = var102->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <var102:nullable MSignature> */
766 var105 = var107;
767 RET_LABEL106:(void)0;
768 }
769 }
770 var_ret = var105;
771 var108 = NULL;
772 if (var_ret == NULL) {
773 var109 = 1; /* is null */
774 } else {
775 var109 = 0; /* arg is null but recv is not */
776 }
777 if (0) {
778 { /* Inline kernel#Object#== (var_ret,var108) on <var_ret:nullable MType> */
779 var_other = var108;
780 {
781 { /* Inline kernel#Object#is_same_instance (var_ret,var_other) on <var_ret:nullable MType(MType)> */
782 var114 = var_ret == var_other;
783 var112 = var114;
784 goto RET_LABEL113;
785 RET_LABEL113:(void)0;
786 }
787 }
788 var110 = var112;
789 goto RET_LABEL111;
790 RET_LABEL111:(void)0;
791 }
792 var109 = var110;
793 }
794 if (var109){
795 var115 = NULL;
796 if (varonce116) {
797 var117 = varonce116;
798 } else {
799 var118 = "Error: --define: Method `";
800 var119 = 25;
801 var120 = string__NativeString__to_s_with_length(var118, var119);
802 var117 = var120;
803 varonce116 = var117;
804 }
805 if (varonce121) {
806 var122 = varonce121;
807 } else {
808 var123 = "` is not a function";
809 var124 = 19;
810 var125 = string__NativeString__to_s_with_length(var123, var124);
811 var122 = var125;
812 varonce121 = var122;
813 }
814 var126 = NEW_array__Array(&type_array__Arraykernel__Object);
815 { /* var126 = array_instance Array[Object] */
816 var127 = 3;
817 var128 = NEW_array__NativeArray(var127, &type_array__NativeArraykernel__Object);
818 ((struct instance_array__NativeArray*)var128)->values[0] = (val*) var117;
819 ((struct instance_array__NativeArray*)var128)->values[1] = (val*) var_prop;
820 ((struct instance_array__NativeArray*)var128)->values[2] = (val*) var122;
821 {
822 ((void (*)(val*, val*, long))(var126->class->vft[COLOR_array__Array__with_native]))(var126, var128, var127) /* with_native on <var126:Array[Object]>*/;
823 }
824 }
825 {
826 var129 = ((val* (*)(val*))(var126->class->vft[COLOR_string__Object__to_s]))(var126) /* to_s on <var126:Array[Object]>*/;
827 }
828 {
829 toolcontext__ToolContext__error(self, var115, var129); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
830 }
831 goto BREAK_label;
832 } else {
833 {
834 var130 = ((val* (*)(val*))(var_ret->class->vft[COLOR_string__Object__to_s]))(var_ret) /* to_s on <var_ret:nullable MType(MType)>*/;
835 }
836 if (varonce131) {
837 var132 = varonce131;
838 } else {
839 var133 = "Bool";
840 var134 = 4;
841 var135 = string__NativeString__to_s_with_length(var133, var134);
842 var132 = var135;
843 varonce131 = var132;
844 }
845 {
846 var137 = string__FlatString___61d_61d(var130, var132);
847 var136 = var137;
848 }
849 if (var136){
850 var139 = NULL;
851 if (var_val == NULL) {
852 var140 = 1; /* is null */
853 } else {
854 var140 = 0; /* arg is null but recv is not */
855 }
856 if (0) {
857 var141 = string__FlatString___61d_61d(var_val, var139);
858 var140 = var141;
859 }
860 var_142 = var140;
861 if (var140){
862 var138 = var_142;
863 } else {
864 if (varonce143) {
865 var144 = varonce143;
866 } else {
867 var145 = "true";
868 var146 = 4;
869 var147 = string__NativeString__to_s_with_length(var145, var146);
870 var144 = var147;
871 varonce143 = var144;
872 }
873 {
874 var149 = string__FlatString___61d_61d(var_val, var144);
875 var148 = var149;
876 }
877 var138 = var148;
878 }
879 if (var138){
880 var150 = 1;
881 var151 = BOX_kernel__Bool(var150); /* autobox from Bool to nullable Object */
882 var_v = var151;
883 } else {
884 if (varonce152) {
885 var153 = varonce152;
886 } else {
887 var154 = "false";
888 var155 = 5;
889 var156 = string__NativeString__to_s_with_length(var154, var155);
890 var153 = var156;
891 varonce152 = var153;
892 }
893 {
894 var158 = string__FlatString___61d_61d(var_val, var153);
895 var157 = var158;
896 }
897 if (var157){
898 var159 = 0;
899 var160 = BOX_kernel__Bool(var159); /* autobox from Bool to nullable Object */
900 var_v = var160;
901 } else {
902 var161 = NULL;
903 if (varonce162) {
904 var163 = varonce162;
905 } else {
906 var164 = "Error: --define: Method `";
907 var165 = 25;
908 var166 = string__NativeString__to_s_with_length(var164, var165);
909 var163 = var166;
910 varonce162 = var163;
911 }
912 if (varonce167) {
913 var168 = varonce167;
914 } else {
915 var169 = "` need a Bool.";
916 var170 = 14;
917 var171 = string__NativeString__to_s_with_length(var169, var170);
918 var168 = var171;
919 varonce167 = var168;
920 }
921 var172 = NEW_array__Array(&type_array__Arraykernel__Object);
922 { /* var172 = array_instance Array[Object] */
923 var173 = 3;
924 var174 = NEW_array__NativeArray(var173, &type_array__NativeArraykernel__Object);
925 ((struct instance_array__NativeArray*)var174)->values[0] = (val*) var163;
926 ((struct instance_array__NativeArray*)var174)->values[1] = (val*) var_prop;
927 ((struct instance_array__NativeArray*)var174)->values[2] = (val*) var168;
928 {
929 ((void (*)(val*, val*, long))(var172->class->vft[COLOR_array__Array__with_native]))(var172, var174, var173) /* with_native on <var172:Array[Object]>*/;
930 }
931 }
932 {
933 var175 = ((val* (*)(val*))(var172->class->vft[COLOR_string__Object__to_s]))(var172) /* to_s on <var172:Array[Object]>*/;
934 }
935 {
936 toolcontext__ToolContext__error(self, var161, var175); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
937 }
938 goto BREAK_label;
939 }
940 }
941 } else {
942 {
943 var176 = ((val* (*)(val*))(var_ret->class->vft[COLOR_string__Object__to_s]))(var_ret) /* to_s on <var_ret:nullable MType(MType)>*/;
944 }
945 if (varonce177) {
946 var178 = varonce177;
947 } else {
948 var179 = "Int";
949 var180 = 3;
950 var181 = string__NativeString__to_s_with_length(var179, var180);
951 var178 = var181;
952 varonce177 = var178;
953 }
954 {
955 var183 = string__FlatString___61d_61d(var176, var178);
956 var182 = var183;
957 }
958 if (var182){
959 var185 = NULL;
960 if (var_val == NULL) {
961 var186 = 0; /* is null */
962 } else {
963 var186 = 1; /* arg is null and recv is not */
964 }
965 if (0) {
966 { /* Inline kernel#Object#!= (var_val,var185) on <var_val:nullable Object(nullable String)> */
967 var_other189 = var185;
968 {
969 var191 = ((short int (*)(val*, val*))(var_val->class->vft[COLOR_kernel__Object___61d_61d]))(var_val, var_other189) /* == on <var_val:nullable String(String)>*/;
970 var190 = var191;
971 }
972 var192 = !var190;
973 var187 = var192;
974 goto RET_LABEL188;
975 RET_LABEL188:(void)0;
976 }
977 var186 = var187;
978 }
979 var_193 = var186;
980 if (var186){
981 {
982 var194 = string__Text__is_numeric(var_val);
983 }
984 var184 = var194;
985 } else {
986 var184 = var_193;
987 }
988 if (var184){
989 {
990 var195 = string__Text__to_i(var_val);
991 }
992 var196 = BOX_kernel__Int(var195); /* autobox from Int to nullable Object */
993 var_v = var196;
994 } else {
995 var197 = NULL;
996 if (varonce198) {
997 var199 = varonce198;
998 } else {
999 var200 = "Error: --define: Method `";
1000 var201 = 25;
1001 var202 = string__NativeString__to_s_with_length(var200, var201);
1002 var199 = var202;
1003 varonce198 = var199;
1004 }
1005 if (varonce203) {
1006 var204 = varonce203;
1007 } else {
1008 var205 = "` need a Int.";
1009 var206 = 13;
1010 var207 = string__NativeString__to_s_with_length(var205, var206);
1011 var204 = var207;
1012 varonce203 = var204;
1013 }
1014 var208 = NEW_array__Array(&type_array__Arraykernel__Object);
1015 { /* var208 = array_instance Array[Object] */
1016 var209 = 3;
1017 var210 = NEW_array__NativeArray(var209, &type_array__NativeArraykernel__Object);
1018 ((struct instance_array__NativeArray*)var210)->values[0] = (val*) var199;
1019 ((struct instance_array__NativeArray*)var210)->values[1] = (val*) var_prop;
1020 ((struct instance_array__NativeArray*)var210)->values[2] = (val*) var204;
1021 {
1022 ((void (*)(val*, val*, long))(var208->class->vft[COLOR_array__Array__with_native]))(var208, var210, var209) /* with_native on <var208:Array[Object]>*/;
1023 }
1024 }
1025 {
1026 var211 = ((val* (*)(val*))(var208->class->vft[COLOR_string__Object__to_s]))(var208) /* to_s on <var208:Array[Object]>*/;
1027 }
1028 {
1029 toolcontext__ToolContext__error(self, var197, var211); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
1030 }
1031 goto BREAK_label;
1032 }
1033 } else {
1034 {
1035 var212 = ((val* (*)(val*))(var_ret->class->vft[COLOR_string__Object__to_s]))(var_ret) /* to_s on <var_ret:nullable MType(MType)>*/;
1036 }
1037 if (varonce213) {
1038 var214 = varonce213;
1039 } else {
1040 var215 = "String";
1041 var216 = 6;
1042 var217 = string__NativeString__to_s_with_length(var215, var216);
1043 var214 = var217;
1044 varonce213 = var214;
1045 }
1046 {
1047 var219 = string__FlatString___61d_61d(var212, var214);
1048 var218 = var219;
1049 }
1050 if (var218){
1051 var220 = NULL;
1052 if (var_val == NULL) {
1053 var221 = 0; /* is null */
1054 } else {
1055 var221 = 1; /* arg is null and recv is not */
1056 }
1057 if (0) {
1058 { /* Inline kernel#Object#!= (var_val,var220) on <var_val:nullable Object(nullable String)> */
1059 var_other189 = var220;
1060 {
1061 var225 = ((short int (*)(val*, val*))(var_val->class->vft[COLOR_kernel__Object___61d_61d]))(var_val, var_other189) /* == on <var_val:nullable String(String)>*/;
1062 var224 = var225;
1063 }
1064 var226 = !var224;
1065 var222 = var226;
1066 goto RET_LABEL223;
1067 RET_LABEL223:(void)0;
1068 }
1069 var221 = var222;
1070 }
1071 if (var221){
1072 var_v = var_val;
1073 } else {
1074 var227 = NULL;
1075 if (varonce228) {
1076 var229 = varonce228;
1077 } else {
1078 var230 = "Error: --define: Method `";
1079 var231 = 25;
1080 var232 = string__NativeString__to_s_with_length(var230, var231);
1081 var229 = var232;
1082 varonce228 = var229;
1083 }
1084 if (varonce233) {
1085 var234 = varonce233;
1086 } else {
1087 var235 = "` need a String.";
1088 var236 = 16;
1089 var237 = string__NativeString__to_s_with_length(var235, var236);
1090 var234 = var237;
1091 varonce233 = var234;
1092 }
1093 var238 = NEW_array__Array(&type_array__Arraykernel__Object);
1094 { /* var238 = array_instance Array[Object] */
1095 var239 = 3;
1096 var240 = NEW_array__NativeArray(var239, &type_array__NativeArraykernel__Object);
1097 ((struct instance_array__NativeArray*)var240)->values[0] = (val*) var229;
1098 ((struct instance_array__NativeArray*)var240)->values[1] = (val*) var_prop;
1099 ((struct instance_array__NativeArray*)var240)->values[2] = (val*) var234;
1100 {
1101 ((void (*)(val*, val*, long))(var238->class->vft[COLOR_array__Array__with_native]))(var238, var240, var239) /* with_native on <var238:Array[Object]>*/;
1102 }
1103 }
1104 {
1105 var241 = ((val* (*)(val*))(var238->class->vft[COLOR_string__Object__to_s]))(var238) /* to_s on <var238:Array[Object]>*/;
1106 }
1107 {
1108 toolcontext__ToolContext__error(self, var227, var241); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
1109 }
1110 goto BREAK_label;
1111 }
1112 } else {
1113 var242 = NULL;
1114 if (varonce243) {
1115 var244 = varonce243;
1116 } else {
1117 var245 = "Error: --define: Method `";
1118 var246 = 25;
1119 var247 = string__NativeString__to_s_with_length(var245, var246);
1120 var244 = var247;
1121 varonce243 = var244;
1122 }
1123 if (varonce248) {
1124 var249 = varonce248;
1125 } else {
1126 var250 = "` return an unmanaged type ";
1127 var251 = 27;
1128 var252 = string__NativeString__to_s_with_length(var250, var251);
1129 var249 = var252;
1130 varonce248 = var249;
1131 }
1132 if (varonce253) {
1133 var254 = varonce253;
1134 } else {
1135 var255 = ".";
1136 var256 = 1;
1137 var257 = string__NativeString__to_s_with_length(var255, var256);
1138 var254 = var257;
1139 varonce253 = var254;
1140 }
1141 var258 = NEW_array__Array(&type_array__Arraykernel__Object);
1142 { /* var258 = array_instance Array[Object] */
1143 var259 = 5;
1144 var260 = NEW_array__NativeArray(var259, &type_array__NativeArraykernel__Object);
1145 ((struct instance_array__NativeArray*)var260)->values[0] = (val*) var244;
1146 ((struct instance_array__NativeArray*)var260)->values[1] = (val*) var_prop;
1147 ((struct instance_array__NativeArray*)var260)->values[2] = (val*) var249;
1148 ((struct instance_array__NativeArray*)var260)->values[3] = (val*) var_ret;
1149 ((struct instance_array__NativeArray*)var260)->values[4] = (val*) var254;
1150 {
1151 ((void (*)(val*, val*, long))(var258->class->vft[COLOR_array__Array__with_native]))(var258, var260, var259) /* with_native on <var258:Array[Object]>*/;
1152 }
1153 }
1154 {
1155 var261 = ((val* (*)(val*))(var258->class->vft[COLOR_string__Object__to_s]))(var258) /* to_s on <var258:Array[Object]>*/;
1156 }
1157 {
1158 toolcontext__ToolContext__error(self, var242, var261); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
1159 }
1160 goto BREAK_label;
1161 }
1162 }
1163 }
1164 }
1165 var262 = NEW_model__MMethodDef(&type_model__MMethodDef);
1166 {
1167 model__MMethodDef__init(var262, var_mclassdef, var_prop, var_location); /* Direct call model#MMethodDef#init on <var262:MMethodDef>*/
1168 }
1169 var_pd = var262;
1170 {
1171 { /* Inline model#MProperty#intro (var_prop) on <var_prop:nullable MMethod(MMethod)> */
1172 var265 = var_prop->attrs[COLOR_model__MProperty___intro].val; /* _intro on <var_prop:nullable MMethod(MMethod)> */
1173 if (unlikely(var265 == NULL)) {
1174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1175 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
1176 show_backtrace(1);
1177 }
1178 var263 = var265;
1179 RET_LABEL264:(void)0;
1180 }
1181 }
1182 {
1183 { /* Inline model#MMethodDef#msignature (var263) on <var263:MPropDef(MMethodDef)> */
1184 var268 = var263->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var263:MPropDef(MMethodDef)> */
1185 var266 = var268;
1186 RET_LABEL267:(void)0;
1187 }
1188 }
1189 {
1190 { /* Inline model#MMethodDef#msignature= (var_pd,var266) on <var_pd:MMethodDef> */
1191 var_pd->attrs[COLOR_model__MMethodDef___msignature].val = var266; /* _msignature on <var_pd:MMethodDef> */
1192 RET_LABEL269:(void)0;
1193 }
1194 }
1195 {
1196 { /* Inline model#MMethodDef#constant_value= (var_pd,var_v) on <var_pd:MMethodDef> */
1197 var_pd->attrs[COLOR_model__MMethodDef___constant_value].val = var_v; /* _constant_value on <var_pd:MMethodDef> */
1198 RET_LABEL270:(void)0;
1199 }
1200 }
1201 BREAK_label: (void)0;
1202 {
1203 array__ArrayIterator__next(var_55); /* Direct call array#ArrayIterator#next on <var_55:ArrayIterator[String]>*/
1204 }
1205 } else {
1206 goto BREAK_label271;
1207 }
1208 }
1209 BREAK_label271: (void)0;
1210 {
1211 { /* Inline abstract_collection#Iterator#finish (var_55) on <var_55:ArrayIterator[String]> */
1212 RET_LABEL272:(void)0;
1213 }
1214 }
1215 {
1216 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1217 }
1218 } else {
1219 }
1220 var = var_mainmodule;
1221 goto RET_LABEL;
1222 RET_LABEL:;
1223 return var;
1224 }
1225 /* method mixin#ToolContext#make_main_module for (self: Object, Array[MModule]): MModule */
1226 val* VIRTUAL_mixin__ToolContext__make_main_module(val* self, val* p0) {
1227 val* var /* : MModule */;
1228 val* var1 /* : MModule */;
1229 var1 = mixin__ToolContext__make_main_module(self, p0);
1230 var = var1;
1231 RET_LABEL:;
1232 return var;
1233 }