misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__modelbuilder.sep.1.c
1 #include "nit__modelbuilder.sep.0.h"
2 /* method modelbuilder#ToolContext#opt_ignore_visibility for (self: ToolContext): OptionBool */
3 val* nit__modelbuilder___ToolContext___opt_ignore_visibility(val* self) {
4 val* var /* : OptionBool */;
5 val* var1 /* : OptionBool */;
6 var1 = self->attrs[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility].val; /* _opt_ignore_visibility on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder, 27);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method modelbuilder#ToolContext#init for (self: ToolContext) */
17 void nit__modelbuilder___ToolContext___standard__kernel__Object__init(val* self) {
18 val* var /* : OptionContext */;
19 val* var2 /* : OptionContext */;
20 val* var3 /* : OptionBool */;
21 val* var5 /* : OptionBool */;
22 val* var6 /* : Array[Option] */;
23 long var7 /* : Int */;
24 val* var8 /* : NativeArray[Option] */;
25 {
26 ((void (*)(val* self))(self->class->vft[COLOR_nit__modelbuilder___ToolContext___standard__kernel__Object__init]))(self) /* init on <self:ToolContext>*/;
27 }
28 {
29 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
30 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
31 if (unlikely(var2 == NULL)) {
32 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
33 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
34 show_backtrace(1);
35 }
36 var = var2;
37 RET_LABEL1:(void)0;
38 }
39 }
40 {
41 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on <self:ToolContext> */
42 var5 = self->attrs[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility].val; /* _opt_ignore_visibility on <self:ToolContext> */
43 if (unlikely(var5 == NULL)) {
44 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
45 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder, 27);
46 show_backtrace(1);
47 }
48 var3 = var5;
49 RET_LABEL4:(void)0;
50 }
51 }
52 var6 = NEW_standard__Array(&type_standard__Array__opts__Option);
53 { /* var6 = array_instance Array[Option] */
54 var7 = 1;
55 var8 = NEW_standard__NativeArray(var7, &type_standard__NativeArray__opts__Option);
56 ((struct instance_standard__NativeArray*)var8)->values[0] = (val*) var3;
57 {
58 ((void (*)(val* self, val* p0, long p1))(var6->class->vft[COLOR_standard__array__Array__with_native]))(var6, var8, var7) /* with_native on <var6:Array[Option]>*/;
59 }
60 }
61 {
62 opts___opts__OptionContext___add_option(var, var6); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
63 }
64 RET_LABEL:;
65 }
66 /* method modelbuilder#ToolContext#make_main_module for (self: ToolContext, Array[MModule]): MModule */
67 val* nit__modelbuilder___ToolContext___make_main_module(val* self, val* p0) {
68 val* var /* : MModule */;
69 val* var_mmodules /* var mmodules: Array[MModule] */;
70 short int var1 /* : Bool */;
71 short int var2 /* : Bool */;
72 long var3 /* : Int */;
73 long var5 /* : Int */;
74 long var6 /* : Int */;
75 short int var7 /* : Bool */;
76 short int var9 /* : Bool */;
77 val* var10 /* : nullable Object */;
78 val* var_mainmodule /* var mainmodule: nullable Object */;
79 val* var11 /* : MModule */;
80 val* var12 /* : ModelBuilder */;
81 val* var13 /* : Model */;
82 val* var15 /* : Model */;
83 val* var16 /* : null */;
84 val* var17 /* : nullable Object */;
85 val* var18 /* : String */;
86 val* var20 /* : String */;
87 static val* varonce;
88 val* var21 /* : String */;
89 char* var22 /* : NativeString */;
90 long var23 /* : Int */;
91 val* var24 /* : FlatString */;
92 val* var25 /* : String */;
93 val* var26 /* : Location */;
94 val* var27 /* : nullable Object */;
95 val* var28 /* : Location */;
96 val* var30 /* : Location */;
97 val* var31 /* : nullable SourceFile */;
98 val* var33 /* : nullable SourceFile */;
99 long var34 /* : Int */;
100 long var35 /* : Int */;
101 long var36 /* : Int */;
102 long var37 /* : Int */;
103 short int var38 /* : Bool */;
104 var_mmodules = p0;
105 {
106 var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules);
107 }
108 var2 = !var1;
109 if (unlikely(!var2)) {
110 PRINT_ERROR("Runtime error: %s", "Assert failed");
111 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder, 39);
112 show_backtrace(1);
113 }
114 {
115 { /* Inline array#AbstractArrayRead#length (var_mmodules) on <var_mmodules:Array[MModule]> */
116 var5 = var_mmodules->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_mmodules:Array[MModule]> */
117 var3 = var5;
118 RET_LABEL4:(void)0;
119 }
120 }
121 var6 = 1;
122 {
123 { /* Inline kernel#Int#== (var3,var6) on <var3:Int> */
124 var9 = var3 == var6;
125 var7 = var9;
126 goto RET_LABEL8;
127 RET_LABEL8:(void)0;
128 }
129 }
130 if (var7){
131 {
132 var10 = standard___standard__SequenceRead___Collection__first(var_mmodules);
133 }
134 var_mainmodule = var10;
135 } else {
136 var11 = NEW_nit__MModule(&type_nit__MModule);
137 {
138 var12 = nit__modelbuilder_base___ToolContext___modelbuilder(self);
139 }
140 {
141 { /* Inline modelbuilder_base#ModelBuilder#model (var12) on <var12:ModelBuilder> */
142 var15 = var12->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <var12:ModelBuilder> */
143 if (unlikely(var15 == NULL)) {
144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
146 show_backtrace(1);
147 }
148 var13 = var15;
149 RET_LABEL14:(void)0;
150 }
151 }
152 var16 = NULL;
153 {
154 var17 = standard___standard__SequenceRead___Collection__first(var_mmodules);
155 }
156 {
157 { /* Inline mmodule#MModule#name (var17) on <var17:nullable Object(MModule)> */
158 var20 = var17->attrs[COLOR_nit__mmodule__MModule___name].val; /* _name on <var17:nullable Object(MModule)> */
159 if (unlikely(var20 == NULL)) {
160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 87);
162 show_backtrace(1);
163 }
164 var18 = var20;
165 RET_LABEL19:(void)0;
166 }
167 }
168 if (varonce) {
169 var21 = varonce;
170 } else {
171 var22 = "-m";
172 var23 = 2;
173 var24 = standard___standard__NativeString___to_s_with_length(var22, var23);
174 var21 = var24;
175 varonce = var21;
176 }
177 {
178 var25 = ((val* (*)(val* self, val* p0))(var18->class->vft[COLOR_standard__string__String___43d]))(var18, var21) /* + on <var18:String>*/;
179 }
180 var26 = NEW_nit__Location(&type_nit__Location);
181 {
182 var27 = standard___standard__SequenceRead___Collection__first(var_mmodules);
183 }
184 {
185 { /* Inline mmodule#MModule#location (var27) on <var27:nullable Object(MModule)> */
186 var30 = var27->attrs[COLOR_nit__mmodule__MModule___location].val; /* _location on <var27:nullable Object(MModule)> */
187 if (unlikely(var30 == NULL)) {
188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
189 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 90);
190 show_backtrace(1);
191 }
192 var28 = var30;
193 RET_LABEL29:(void)0;
194 }
195 }
196 {
197 { /* Inline location#Location#file (var28) on <var28:Location> */
198 var33 = var28->attrs[COLOR_nit__location__Location___file].val; /* _file on <var28:Location> */
199 var31 = var33;
200 RET_LABEL32:(void)0;
201 }
202 }
203 var34 = 0;
204 var35 = 0;
205 var36 = 0;
206 var37 = 0;
207 {
208 ((void (*)(val* self, val* p0))(var26->class->vft[COLOR_nit__location__Location__file_61d]))(var26, var31) /* file= on <var26:Location>*/;
209 }
210 {
211 ((void (*)(val* self, long p0))(var26->class->vft[COLOR_nit__location__Location__line_start_61d]))(var26, var34) /* line_start= on <var26:Location>*/;
212 }
213 {
214 ((void (*)(val* self, long p0))(var26->class->vft[COLOR_nit__location__Location__line_end_61d]))(var26, var35) /* line_end= on <var26:Location>*/;
215 }
216 {
217 ((void (*)(val* self, long p0))(var26->class->vft[COLOR_nit__location__Location__column_start_61d]))(var26, var36) /* column_start= on <var26:Location>*/;
218 }
219 {
220 ((void (*)(val* self, long p0))(var26->class->vft[COLOR_nit__location__Location__column_end_61d]))(var26, var37) /* column_end= on <var26:Location>*/;
221 }
222 {
223 ((void (*)(val* self))(var26->class->vft[COLOR_standard__kernel__Object__init]))(var26) /* init on <var26:Location>*/;
224 }
225 {
226 ((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__mmodule__MModule__model_61d]))(var11, var13) /* model= on <var11:MModule>*/;
227 }
228 {
229 ((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__mmodule__MModule__mgroup_61d]))(var11, var16) /* mgroup= on <var11:MModule>*/;
230 }
231 {
232 ((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__mmodule__MModule__name_61d]))(var11, var25) /* name= on <var11:MModule>*/;
233 }
234 {
235 ((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__mmodule__MModule__location_61d]))(var11, var26) /* location= on <var11:MModule>*/;
236 }
237 {
238 ((void (*)(val* self))(var11->class->vft[COLOR_standard__kernel__Object__init]))(var11) /* init on <var11:MModule>*/;
239 }
240 var_mainmodule = var11;
241 var38 = 1;
242 {
243 { /* Inline mmodule#MModule#is_fictive= (var_mainmodule,var38) on <var_mainmodule:nullable Object(MModule)> */
244 var_mainmodule->attrs[COLOR_nit__mmodule__MModule___is_fictive].s = var38; /* _is_fictive on <var_mainmodule:nullable Object(MModule)> */
245 RET_LABEL39:(void)0;
246 }
247 }
248 {
249 nit___nit__MModule___set_imported_mmodules(var_mainmodule, var_mmodules); /* Direct call mmodule#MModule#set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/
250 }
251 }
252 var = var_mainmodule;
253 goto RET_LABEL;
254 RET_LABEL:;
255 return var;
256 }
257 /* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, Array[MModule]) */
258 void nit__modelbuilder___ToolContext___run_global_phases(val* self, val* p0) {
259 val* var_mmodules /* var mmodules: Array[MModule] */;
260 val* var /* : MModule */;
261 val* var_mainmodule /* var mainmodule: MModule */;
262 val* var1 /* : Sequence[Phase] */;
263 val* var_ /* var : Sequence[Phase] */;
264 val* var2 /* : Iterator[nullable Object] */;
265 val* var_3 /* var : IndexedIterator[Phase] */;
266 short int var4 /* : Bool */;
267 val* var5 /* : nullable Object */;
268 val* var_phase /* var phase: Phase */;
269 short int var6 /* : Bool */;
270 short int var8 /* : Bool */;
271 var_mmodules = p0;
272 {
273 var = nit__mixin___ToolContext___make_main_module(self, var_mmodules);
274 }
275 var_mainmodule = var;
276 {
277 var1 = nit__phase___ToolContext___phases_list(self);
278 }
279 var_ = var1;
280 {
281 var2 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Sequence[Phase]>*/;
282 }
283 var_3 = var2;
284 for(;;) {
285 {
286 var4 = ((short int (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on <var_3:IndexedIterator[Phase]>*/;
287 }
288 if (var4){
289 {
290 var5 = ((val* (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_3) /* item on <var_3:IndexedIterator[Phase]>*/;
291 }
292 var_phase = var5;
293 {
294 { /* Inline phase#Phase#disabled (var_phase) on <var_phase:Phase> */
295 var8 = var_phase->attrs[COLOR_nit__phase__Phase___disabled].s; /* _disabled on <var_phase:Phase> */
296 var6 = var8;
297 RET_LABEL7:(void)0;
298 }
299 }
300 if (var6){
301 goto BREAK_label;
302 } else {
303 }
304 {
305 ((void (*)(val* self, val* p0, val* p1))(var_phase->class->vft[COLOR_nit__modelbuilder__Phase__process_mainmodule]))(var_phase, var_mainmodule, var_mmodules) /* process_mainmodule on <var_phase:Phase>*/;
306 }
307 BREAK_label: (void)0;
308 {
309 ((void (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_3) /* next on <var_3:IndexedIterator[Phase]>*/;
310 }
311 } else {
312 goto BREAK_label9;
313 }
314 }
315 BREAK_label9: (void)0;
316 {
317 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:IndexedIterator[Phase]> */
318 RET_LABEL10:(void)0;
319 }
320 }
321 RET_LABEL:;
322 }
323 /* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule, SequenceRead[MModule]) */
324 void nit__modelbuilder___Phase___process_mainmodule(val* self, val* p0, val* p1) {
325 val* var_mainmodule /* var mainmodule: MModule */;
326 val* var_given_mmodules /* var given_mmodules: SequenceRead[MModule] */;
327 var_mainmodule = p0;
328 var_given_mmodules = p1;
329 RET_LABEL:;
330 }
331 /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */
332 void nit__modelbuilder___ModelBuilder___run_phases(val* self) {
333 val* var /* : Model */;
334 val* var2 /* : Model */;
335 val* var3 /* : Array[MModule] */;
336 val* var5 /* : Array[MModule] */;
337 val* var6 /* : Array[nullable Object] */;
338 val* var_mmodules /* var mmodules: Array[MModule] */;
339 val* var7 /* : Model */;
340 val* var9 /* : Model */;
341 val* var10 /* : POSet[MModule] */;
342 val* var12 /* : POSet[MModule] */;
343 val* var13 /* : Array[AModule] */;
344 val* var_nmodules /* var nmodules: Array[AModule] */;
345 val* var_ /* var : Array[MModule] */;
346 val* var14 /* : ArrayIterator[nullable Object] */;
347 val* var_15 /* var : ArrayIterator[MModule] */;
348 short int var16 /* : Bool */;
349 val* var17 /* : nullable Object */;
350 val* var_mm /* var mm: MModule */;
351 val* var18 /* : nullable AModule */;
352 val* var20 /* : ToolContext */;
353 val* var22 /* : ToolContext */;
354 val* var23 /* : ToolContext */;
355 val* var25 /* : ToolContext */;
356 val* var26 /* : OptionBool */;
357 val* var28 /* : OptionBool */;
358 val* var29 /* : nullable Object */;
359 val* var31 /* : nullable Object */;
360 short int var32 /* : Bool */;
361 val* var33 /* : ToolContext */;
362 val* var35 /* : ToolContext */;
363 static val* varonce;
364 val* var36 /* : String */;
365 char* var37 /* : NativeString */;
366 long var38 /* : Int */;
367 val* var39 /* : FlatString */;
368 long var40 /* : Int */;
369 long var41 /* : Int */;
370 {
371 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
372 var2 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
373 if (unlikely(var2 == NULL)) {
374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
375 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
376 show_backtrace(1);
377 }
378 var = var2;
379 RET_LABEL1:(void)0;
380 }
381 }
382 {
383 { /* Inline mmodule#Model#mmodules (var) on <var:Model> */
384 var5 = var->attrs[COLOR_nit__mmodule__Model___mmodules].val; /* _mmodules on <var:Model> */
385 if (unlikely(var5 == NULL)) {
386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
387 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 27);
388 show_backtrace(1);
389 }
390 var3 = var5;
391 RET_LABEL4:(void)0;
392 }
393 }
394 {
395 var6 = standard__array___Collection___to_a(var3);
396 }
397 var_mmodules = var6;
398 {
399 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
400 var9 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
401 if (unlikely(var9 == NULL)) {
402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
404 show_backtrace(1);
405 }
406 var7 = var9;
407 RET_LABEL8:(void)0;
408 }
409 }
410 {
411 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var7) on <var7:Model> */
412 var12 = var7->attrs[COLOR_nit__mmodule__Model___mmodule_importation_hierarchy].val; /* _mmodule_importation_hierarchy on <var7:Model> */
413 if (unlikely(var12 == NULL)) {
414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 30);
416 show_backtrace(1);
417 }
418 var10 = var12;
419 RET_LABEL11:(void)0;
420 }
421 }
422 {
423 standard___standard__Comparator___sort(var10, var_mmodules); /* Direct call sorter#Comparator#sort on <var10:POSet[MModule]>*/
424 }
425 var13 = NEW_standard__Array(&type_standard__Array__nit__AModule);
426 {
427 standard___standard__Array___standard__kernel__Object__init(var13); /* Direct call array#Array#init on <var13:Array[AModule]>*/
428 }
429 var_nmodules = var13;
430 var_ = var_mmodules;
431 {
432 var14 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
433 }
434 var_15 = var14;
435 for(;;) {
436 {
437 var16 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_15);
438 }
439 if (var16){
440 {
441 var17 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_15);
442 }
443 var_mm = var17;
444 {
445 var18 = nit__loader___ModelBuilder___mmodule2node(self, var_mm);
446 }
447 if (unlikely(var18 == NULL)) {
448 PRINT_ERROR("Runtime error: %s", "Cast failed");
449 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder, 89);
450 show_backtrace(1);
451 }
452 {
453 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_nmodules, var18); /* Direct call array#Array#add on <var_nmodules:Array[AModule]>*/
454 }
455 {
456 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_15); /* Direct call array#ArrayIterator#next on <var_15:ArrayIterator[MModule]>*/
457 }
458 } else {
459 goto BREAK_label;
460 }
461 }
462 BREAK_label: (void)0;
463 {
464 { /* Inline abstract_collection#Iterator#finish (var_15) on <var_15:ArrayIterator[MModule]> */
465 RET_LABEL19:(void)0;
466 }
467 }
468 {
469 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
470 var22 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
471 if (unlikely(var22 == NULL)) {
472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
474 show_backtrace(1);
475 }
476 var20 = var22;
477 RET_LABEL21:(void)0;
478 }
479 }
480 {
481 nit__phase___ToolContext___run_phases(var20, var_nmodules); /* Direct call phase#ToolContext#run_phases on <var20:ToolContext>*/
482 }
483 {
484 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
485 var25 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
486 if (unlikely(var25 == NULL)) {
487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
489 show_backtrace(1);
490 }
491 var23 = var25;
492 RET_LABEL24:(void)0;
493 }
494 }
495 {
496 { /* Inline loader#ToolContext#opt_only_metamodel (var23) on <var23:ToolContext> */
497 var28 = var23->attrs[COLOR_nit__loader__ToolContext___opt_only_metamodel].val; /* _opt_only_metamodel on <var23:ToolContext> */
498 if (unlikely(var28 == NULL)) {
499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel");
500 PRINT_ERROR(" (%s:%d)\n", FILE_nit__loader, 26);
501 show_backtrace(1);
502 }
503 var26 = var28;
504 RET_LABEL27:(void)0;
505 }
506 }
507 {
508 { /* Inline opts#Option#value (var26) on <var26:OptionBool> */
509 var31 = var26->attrs[COLOR_opts__Option___value].val; /* _value on <var26:OptionBool> */
510 var29 = var31;
511 RET_LABEL30:(void)0;
512 }
513 }
514 var32 = ((struct instance_standard__Bool*)var29)->value; /* autounbox from nullable Object to Bool */;
515 if (var32){
516 {
517 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
518 var35 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
519 if (unlikely(var35 == NULL)) {
520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
522 show_backtrace(1);
523 }
524 var33 = var35;
525 RET_LABEL34:(void)0;
526 }
527 }
528 if (varonce) {
529 var36 = varonce;
530 } else {
531 var37 = "*** ONLY METAMODEL";
532 var38 = 18;
533 var39 = standard___standard__NativeString___to_s_with_length(var37, var38);
534 var36 = var39;
535 varonce = var36;
536 }
537 var40 = 1;
538 {
539 nit___nit__ToolContext___info(var33, var36, var40); /* Direct call toolcontext#ToolContext#info on <var33:ToolContext>*/
540 }
541 var41 = 0;
542 {
543 { /* Inline kernel#Object#exit (self,var41) on <self:ModelBuilder> */
544 exit(var41);
545 RET_LABEL42:(void)0;
546 }
547 }
548 } else {
549 }
550 RET_LABEL:;
551 }