misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__modelbuilder_base.sep.1.c
1 #include "nit__modelbuilder_base.sep.0.h"
2 /* method modelbuilder_base#ToolContext#modelbuilder for (self: ToolContext): ModelBuilder */
3 val* nit__modelbuilder_base___ToolContext___modelbuilder(val* self) {
4 val* var /* : ModelBuilder */;
5 val* var1 /* : nullable ModelBuilder */;
6 val* var3 /* : nullable ModelBuilder */;
7 {
8 { /* Inline modelbuilder_base#ToolContext#modelbuilder_real (self) on <self:ToolContext> */
9 var3 = self->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on <self:ToolContext> */
10 var1 = var3;
11 RET_LABEL2:(void)0;
12 }
13 }
14 if (unlikely(var1 == NULL)) {
15 PRINT_ERROR("Runtime error: %s", "Cast failed");
16 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 36);
17 show_backtrace(1);
18 }
19 var = var1;
20 goto RET_LABEL;
21 RET_LABEL:;
22 return var;
23 }
24 /* method modelbuilder_base#ToolContext#modelbuilder_real for (self: ToolContext): nullable ModelBuilder */
25 val* nit__modelbuilder_base___ToolContext___modelbuilder_real(val* self) {
26 val* var /* : nullable ModelBuilder */;
27 val* var1 /* : nullable ModelBuilder */;
28 var1 = self->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on <self:ToolContext> */
29 var = var1;
30 RET_LABEL:;
31 return var;
32 }
33 /* method modelbuilder_base#ToolContext#modelbuilder_real= for (self: ToolContext, nullable ModelBuilder) */
34 void nit__modelbuilder_base___ToolContext___modelbuilder_real_61d(val* self, val* p0) {
35 self->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val = p0; /* _modelbuilder_real on <self:ToolContext> */
36 RET_LABEL:;
37 }
38 /* method modelbuilder_base#ModelBuilder#model for (self: ModelBuilder): Model */
39 val* nit___nit__ModelBuilder___model(val* self) {
40 val* var /* : Model */;
41 val* var1 /* : Model */;
42 var1 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
43 if (unlikely(var1 == NULL)) {
44 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
45 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
46 show_backtrace(1);
47 }
48 var = var1;
49 RET_LABEL:;
50 return var;
51 }
52 /* method modelbuilder_base#ModelBuilder#model= for (self: ModelBuilder, Model) */
53 void nit___nit__ModelBuilder___model_61d(val* self, val* p0) {
54 self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val = p0; /* _model on <self:ModelBuilder> */
55 RET_LABEL:;
56 }
57 /* method modelbuilder_base#ModelBuilder#toolcontext for (self: ModelBuilder): ToolContext */
58 val* nit___nit__ModelBuilder___toolcontext(val* self) {
59 val* var /* : ToolContext */;
60 val* var1 /* : ToolContext */;
61 var1 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
62 if (unlikely(var1 == NULL)) {
63 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
64 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
65 show_backtrace(1);
66 }
67 var = var1;
68 RET_LABEL:;
69 return var;
70 }
71 /* method modelbuilder_base#ModelBuilder#toolcontext= for (self: ModelBuilder, ToolContext) */
72 void nit___nit__ModelBuilder___toolcontext_61d(val* self, val* p0) {
73 self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val = p0; /* _toolcontext on <self:ModelBuilder> */
74 RET_LABEL:;
75 }
76 /* method modelbuilder_base#ModelBuilder#init for (self: ModelBuilder) */
77 void nit___nit__ModelBuilder___standard__kernel__Object__init(val* self) {
78 val* var /* : ToolContext */;
79 val* var2 /* : ToolContext */;
80 val* var3 /* : nullable ModelBuilder */;
81 val* var5 /* : nullable ModelBuilder */;
82 val* var6 /* : null */;
83 short int var7 /* : Bool */;
84 short int var8 /* : Bool */;
85 val* var_other /* var other: nullable Object */;
86 short int var10 /* : Bool */;
87 short int var12 /* : Bool */;
88 val* var13 /* : ToolContext */;
89 val* var15 /* : ToolContext */;
90 {
91 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
92 var2 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
93 if (unlikely(var2 == NULL)) {
94 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
95 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
96 show_backtrace(1);
97 }
98 var = var2;
99 RET_LABEL1:(void)0;
100 }
101 }
102 {
103 { /* Inline modelbuilder_base#ToolContext#modelbuilder_real (var) on <var:ToolContext> */
104 var5 = var->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on <var:ToolContext> */
105 var3 = var5;
106 RET_LABEL4:(void)0;
107 }
108 }
109 var6 = NULL;
110 if (var3 == NULL) {
111 var7 = 1; /* is null */
112 } else {
113 var7 = 0; /* arg is null but recv is not */
114 }
115 if (0) {
116 { /* Inline kernel#Object#== (var3,var6) on <var3:nullable ModelBuilder> */
117 var_other = var6;
118 {
119 { /* Inline kernel#Object#is_same_instance (var3,var_other) on <var3:nullable ModelBuilder(ModelBuilder)> */
120 var12 = var3 == var_other;
121 var10 = var12;
122 goto RET_LABEL11;
123 RET_LABEL11:(void)0;
124 }
125 }
126 var8 = var10;
127 goto RET_LABEL9;
128 RET_LABEL9:(void)0;
129 }
130 var7 = var8;
131 }
132 if (unlikely(!var7)) {
133 PRINT_ERROR("Runtime error: %s", "Assert failed");
134 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 54);
135 show_backtrace(1);
136 }
137 {
138 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
139 var15 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
140 if (unlikely(var15 == NULL)) {
141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
142 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
143 show_backtrace(1);
144 }
145 var13 = var15;
146 RET_LABEL14:(void)0;
147 }
148 }
149 {
150 { /* Inline modelbuilder_base#ToolContext#modelbuilder_real= (var13,self) on <var13:ToolContext> */
151 var13->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val = self; /* _modelbuilder_real on <var13:ToolContext> */
152 RET_LABEL16:(void)0;
153 }
154 }
155 RET_LABEL:;
156 }
157 /* method modelbuilder_base#ModelBuilder#try_get_mclass_by_name for (self: ModelBuilder, ANode, MModule, String): nullable MClass */
158 val* nit___nit__ModelBuilder___try_get_mclass_by_name(val* self, val* p0, val* p1, val* p2) {
159 val* var /* : nullable MClass */;
160 val* var_anode /* var anode: ANode */;
161 val* var_mmodule /* var mmodule: MModule */;
162 val* var_name /* var name: String */;
163 val* var1 /* : Model */;
164 val* var3 /* : Model */;
165 val* var4 /* : nullable Array[MClass] */;
166 val* var_classes /* var classes: nullable Array[MClass] */;
167 val* var5 /* : null */;
168 short int var6 /* : Bool */;
169 short int var7 /* : Bool */;
170 val* var8 /* : null */;
171 val* var9 /* : null */;
172 val* var_res /* var res: nullable MClass */;
173 val* var_ /* var : Array[MClass] */;
174 val* var10 /* : ArrayIterator[nullable Object] */;
175 val* var_11 /* var : ArrayIterator[MClass] */;
176 short int var12 /* : Bool */;
177 val* var13 /* : nullable Object */;
178 val* var_mclass /* var mclass: MClass */;
179 val* var14 /* : POSetElement[MModule] */;
180 val* var16 /* : POSetElement[MModule] */;
181 val* var17 /* : MModule */;
182 val* var19 /* : MModule */;
183 short int var20 /* : Bool */;
184 short int var21 /* : Bool */;
185 val* var22 /* : MModule */;
186 val* var24 /* : MModule */;
187 val* var25 /* : MVisibility */;
188 val* var27 /* : MVisibility */;
189 short int var28 /* : Bool */;
190 short int var29 /* : Bool */;
191 val* var30 /* : null */;
192 short int var31 /* : Bool */;
193 short int var32 /* : Bool */;
194 val* var_other /* var other: nullable Object */;
195 short int var34 /* : Bool */;
196 short int var36 /* : Bool */;
197 static val* varonce;
198 val* var37 /* : String */;
199 char* var38 /* : NativeString */;
200 long var39 /* : Int */;
201 val* var40 /* : FlatString */;
202 static val* varonce41;
203 val* var42 /* : String */;
204 char* var43 /* : NativeString */;
205 long var44 /* : Int */;
206 val* var45 /* : FlatString */;
207 val* var46 /* : String */;
208 static val* varonce47;
209 val* var48 /* : String */;
210 char* var49 /* : NativeString */;
211 long var50 /* : Int */;
212 val* var51 /* : FlatString */;
213 val* var52 /* : String */;
214 val* var53 /* : Array[Object] */;
215 long var54 /* : Int */;
216 val* var55 /* : NativeArray[Object] */;
217 val* var56 /* : String */;
218 val* var57 /* : null */;
219 var_anode = p0;
220 var_mmodule = p1;
221 var_name = p2;
222 {
223 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
224 var3 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
225 if (unlikely(var3 == NULL)) {
226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
228 show_backtrace(1);
229 }
230 var1 = var3;
231 RET_LABEL2:(void)0;
232 }
233 }
234 {
235 var4 = nit__model___Model___get_mclasses_by_name(var1, var_name);
236 }
237 var_classes = var4;
238 var5 = NULL;
239 if (var_classes == NULL) {
240 var6 = 1; /* is null */
241 } else {
242 var6 = 0; /* arg is null but recv is not */
243 }
244 if (0) {
245 var7 = standard___standard__Array___standard__kernel__Object___61d_61d(var_classes, var5);
246 var6 = var7;
247 }
248 if (var6){
249 var8 = NULL;
250 var = var8;
251 goto RET_LABEL;
252 } else {
253 }
254 var9 = NULL;
255 var_res = var9;
256 var_ = var_classes;
257 {
258 var10 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
259 }
260 var_11 = var10;
261 for(;;) {
262 {
263 var12 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11);
264 }
265 if (var12){
266 {
267 var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11);
268 }
269 var_mclass = var13;
270 {
271 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
272 var16 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
273 if (unlikely(var16 == NULL)) {
274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96);
276 show_backtrace(1);
277 }
278 var14 = var16;
279 RET_LABEL15:(void)0;
280 }
281 }
282 {
283 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
284 var19 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
285 if (unlikely(var19 == NULL)) {
286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343);
288 show_backtrace(1);
289 }
290 var17 = var19;
291 RET_LABEL18:(void)0;
292 }
293 }
294 {
295 var20 = poset___poset__POSetElement____60d_61d(var14, var17);
296 }
297 var21 = !var20;
298 if (var21){
299 goto BREAK_label;
300 } else {
301 }
302 {
303 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
304 var24 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
305 if (unlikely(var24 == NULL)) {
306 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343);
308 show_backtrace(1);
309 }
310 var22 = var24;
311 RET_LABEL23:(void)0;
312 }
313 }
314 {
315 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:MClass> */
316 var27 = var_mclass->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on <var_mclass:MClass> */
317 if (unlikely(var27 == NULL)) {
318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403);
320 show_backtrace(1);
321 }
322 var25 = var27;
323 RET_LABEL26:(void)0;
324 }
325 }
326 {
327 var28 = nit___nit__MModule___is_visible(var_mmodule, var22, var25);
328 }
329 var29 = !var28;
330 if (var29){
331 goto BREAK_label;
332 } else {
333 }
334 var30 = NULL;
335 if (var_res == NULL) {
336 var31 = 1; /* is null */
337 } else {
338 var31 = 0; /* arg is null but recv is not */
339 }
340 if (0) {
341 { /* Inline kernel#Object#== (var_res,var30) on <var_res:nullable MClass> */
342 var_other = var30;
343 {
344 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MClass(MClass)> */
345 var36 = var_res == var_other;
346 var34 = var36;
347 goto RET_LABEL35;
348 RET_LABEL35:(void)0;
349 }
350 }
351 var32 = var34;
352 goto RET_LABEL33;
353 RET_LABEL33:(void)0;
354 }
355 var31 = var32;
356 }
357 if (var31){
358 var_res = var_mclass;
359 } else {
360 if (varonce) {
361 var37 = varonce;
362 } else {
363 var38 = "Ambigous class name \'";
364 var39 = 21;
365 var40 = standard___standard__NativeString___to_s_with_length(var38, var39);
366 var37 = var40;
367 varonce = var37;
368 }
369 if (varonce41) {
370 var42 = varonce41;
371 } else {
372 var43 = "\'; conflict between ";
373 var44 = 20;
374 var45 = standard___standard__NativeString___to_s_with_length(var43, var44);
375 var42 = var45;
376 varonce41 = var42;
377 }
378 {
379 var46 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_mclass);
380 }
381 if (varonce47) {
382 var48 = varonce47;
383 } else {
384 var49 = " and ";
385 var50 = 5;
386 var51 = standard___standard__NativeString___to_s_with_length(var49, var50);
387 var48 = var51;
388 varonce47 = var48;
389 }
390 {
391 var52 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_res);
392 }
393 var53 = NEW_standard__Array(&type_standard__Array__standard__Object);
394 { /* var53 = array_instance Array[Object] */
395 var54 = 6;
396 var55 = NEW_standard__NativeArray(var54, &type_standard__NativeArray__standard__Object);
397 ((struct instance_standard__NativeArray*)var55)->values[0] = (val*) var37;
398 ((struct instance_standard__NativeArray*)var55)->values[1] = (val*) var_name;
399 ((struct instance_standard__NativeArray*)var55)->values[2] = (val*) var42;
400 ((struct instance_standard__NativeArray*)var55)->values[3] = (val*) var46;
401 ((struct instance_standard__NativeArray*)var55)->values[4] = (val*) var48;
402 ((struct instance_standard__NativeArray*)var55)->values[5] = (val*) var52;
403 {
404 ((void (*)(val* self, val* p0, long p1))(var53->class->vft[COLOR_standard__array__Array__with_native]))(var53, var55, var54) /* with_native on <var53:Array[Object]>*/;
405 }
406 }
407 {
408 var56 = ((val* (*)(val* self))(var53->class->vft[COLOR_standard__string__Object__to_s]))(var53) /* to_s on <var53:Array[Object]>*/;
409 }
410 {
411 nit___nit__ModelBuilder___error(self, var_anode, var56); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
412 }
413 var57 = NULL;
414 var = var57;
415 goto RET_LABEL;
416 }
417 BREAK_label: (void)0;
418 {
419 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[MClass]>*/
420 }
421 } else {
422 goto BREAK_label58;
423 }
424 }
425 BREAK_label58: (void)0;
426 {
427 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[MClass]> */
428 RET_LABEL59:(void)0;
429 }
430 }
431 var = var_res;
432 goto RET_LABEL;
433 RET_LABEL:;
434 return var;
435 }
436 /* method modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2 for (self: ModelBuilder, ANode, MModule, MType, String): nullable MProperty */
437 val* nit___nit__ModelBuilder___try_get_mproperty_by_name2(val* self, val* p0, val* p1, val* p2, val* p3) {
438 val* var /* : nullable MProperty */;
439 val* var_anode /* var anode: ANode */;
440 val* var_mmodule /* var mmodule: MModule */;
441 val* var_mtype /* var mtype: MType */;
442 val* var_name /* var name: String */;
443 val* var1 /* : Model */;
444 val* var3 /* : Model */;
445 val* var4 /* : nullable Array[MProperty] */;
446 val* var_props /* var props: nullable Array[MProperty] */;
447 val* var5 /* : null */;
448 short int var6 /* : Bool */;
449 short int var7 /* : Bool */;
450 val* var8 /* : null */;
451 val* var9 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
452 val* var11 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
453 val* var12 /* : nullable Object */;
454 val* var_cache /* var cache: nullable MProperty */;
455 val* var13 /* : null */;
456 short int var14 /* : Bool */;
457 short int var15 /* : Bool */;
458 val* var_other /* var other: nullable Object */;
459 short int var17 /* : Bool */;
460 short int var18 /* : Bool */;
461 val* var19 /* : null */;
462 val* var_res /* var res: nullable MProperty */;
463 val* var20 /* : null */;
464 val* var_ress /* var ress: nullable Array[MProperty] */;
465 val* var_ /* var : Array[MProperty] */;
466 val* var21 /* : ArrayIterator[nullable Object] */;
467 val* var_22 /* var : ArrayIterator[MProperty] */;
468 short int var23 /* : Bool */;
469 val* var24 /* : nullable Object */;
470 val* var_mprop /* var mprop: MProperty */;
471 short int var25 /* : Bool */;
472 short int var26 /* : Bool */;
473 val* var27 /* : MClassDef */;
474 val* var29 /* : MClassDef */;
475 val* var30 /* : MModule */;
476 val* var32 /* : MModule */;
477 val* var33 /* : MVisibility */;
478 val* var35 /* : MVisibility */;
479 short int var36 /* : Bool */;
480 short int var37 /* : Bool */;
481 short int var38 /* : Bool */;
482 short int var39 /* : Bool */;
483 short int var40 /* : Bool */;
484 int cltype;
485 int idtype;
486 short int var_41 /* var : Bool */;
487 short int var42 /* : Bool */;
488 short int var44 /* : Bool */;
489 short int var_45 /* var : Bool */;
490 short int var46 /* : Bool */;
491 short int var47 /* : Bool */;
492 int cltype48;
493 int idtype49;
494 short int var50 /* : Bool */;
495 short int var_51 /* var : Bool */;
496 val* var52 /* : MClassDef */;
497 val* var54 /* : MClassDef */;
498 val* var55 /* : MClass */;
499 val* var57 /* : MClass */;
500 val* var58 /* : MClass */;
501 val* var60 /* : MClass */;
502 short int var61 /* : Bool */;
503 short int var63 /* : Bool */;
504 short int var64 /* : Bool */;
505 val* var65 /* : null */;
506 short int var66 /* : Bool */;
507 short int var67 /* : Bool */;
508 val* var_other69 /* var other: nullable Object */;
509 short int var70 /* : Bool */;
510 short int var72 /* : Bool */;
511 short int var73 /* : Bool */;
512 short int var74 /* : Bool */;
513 short int var75 /* : Bool */;
514 short int var76 /* : Bool */;
515 int cltype77;
516 int idtype78;
517 short int var_79 /* var : Bool */;
518 short int var80 /* : Bool */;
519 int cltype81;
520 int idtype82;
521 short int var_83 /* var : Bool */;
522 short int var84 /* : Bool */;
523 short int var86 /* : Bool */;
524 short int var_87 /* var : Bool */;
525 short int var88 /* : Bool */;
526 short int var90 /* : Bool */;
527 val* var91 /* : MClassDef */;
528 val* var93 /* : MClassDef */;
529 val* var94 /* : MClassType */;
530 val* var96 /* : MClassType */;
531 val* var_restype /* var restype: MClassType */;
532 val* var97 /* : MClassDef */;
533 val* var99 /* : MClassDef */;
534 val* var100 /* : MClassType */;
535 val* var102 /* : MClassType */;
536 val* var_mproptype /* var mproptype: MClassType */;
537 val* var103 /* : null */;
538 short int var104 /* : Bool */;
539 val* var105 /* : null */;
540 short int var106 /* : Bool */;
541 short int var107 /* : Bool */;
542 val* var108 /* : Array[MProperty] */;
543 short int var111 /* : Bool */;
544 short int var112 /* : Bool */;
545 val* var113 /* : null */;
546 short int var114 /* : Bool */;
547 short int var115 /* : Bool */;
548 short int var117 /* : Bool */;
549 short int var118 /* : Bool */;
550 short int var_119 /* var : Bool */;
551 short int var120 /* : Bool */;
552 int cltype121;
553 int idtype122;
554 short int var_123 /* var : Bool */;
555 short int var124 /* : Bool */;
556 short int var126 /* : Bool */;
557 val* var127 /* : MClassDef */;
558 val* var129 /* : MClassDef */;
559 val* var130 /* : MClassType */;
560 val* var132 /* : MClassType */;
561 val* var_restype133 /* var restype: MClassType */;
562 val* var134 /* : Array[MProperty] */;
563 val* var_ress2 /* var ress2: Array[MProperty] */;
564 val* var_135 /* var : Array[MProperty] */;
565 val* var136 /* : ArrayIterator[nullable Object] */;
566 val* var_137 /* var : ArrayIterator[MProperty] */;
567 short int var138 /* : Bool */;
568 val* var139 /* : nullable Object */;
569 val* var_mprop140 /* var mprop: MProperty */;
570 val* var141 /* : MClassDef */;
571 val* var143 /* : MClassDef */;
572 val* var144 /* : MClassType */;
573 val* var146 /* : MClassType */;
574 val* var_mproptype147 /* var mproptype: MClassType */;
575 val* var148 /* : null */;
576 short int var149 /* : Bool */;
577 short int var150 /* : Bool */;
578 short int var151 /* : Bool */;
579 short int var152 /* : Bool */;
580 int cltype153;
581 int idtype154;
582 short int var155 /* : Bool */;
583 short int var_156 /* var : Bool */;
584 short int var157 /* : Bool */;
585 short int var159 /* : Bool */;
586 short int var160 /* : Bool */;
587 short int var163 /* : Bool */;
588 val* var164 /* : null */;
589 val* var165 /* : null */;
590 short int var166 /* : Bool */;
591 short int var167 /* : Bool */;
592 short int var169 /* : Bool */;
593 short int var170 /* : Bool */;
594 long var171 /* : Int */;
595 long var173 /* : Int */;
596 long var174 /* : Int */;
597 short int var175 /* : Bool */;
598 short int var177 /* : Bool */;
599 int cltype178;
600 int idtype179;
601 const char* var_class_name;
602 short int var180 /* : Bool */;
603 val* var181 /* : Array[String] */;
604 val* var_s /* var s: Array[String] */;
605 val* var_182 /* var : Array[MProperty] */;
606 val* var183 /* : ArrayIterator[nullable Object] */;
607 val* var_184 /* var : ArrayIterator[MProperty] */;
608 short int var185 /* : Bool */;
609 val* var186 /* : nullable Object */;
610 val* var_mprop187 /* var mprop: MProperty */;
611 val* var188 /* : String */;
612 static val* varonce;
613 val* var191 /* : String */;
614 char* var192 /* : NativeString */;
615 long var193 /* : Int */;
616 val* var194 /* : FlatString */;
617 static val* varonce195;
618 val* var196 /* : String */;
619 char* var197 /* : NativeString */;
620 long var198 /* : Int */;
621 val* var199 /* : FlatString */;
622 static val* varonce200;
623 val* var201 /* : String */;
624 char* var202 /* : NativeString */;
625 long var203 /* : Int */;
626 val* var204 /* : FlatString */;
627 static val* varonce205;
628 val* var206 /* : String */;
629 char* var207 /* : NativeString */;
630 long var208 /* : Int */;
631 val* var209 /* : FlatString */;
632 val* var210 /* : String */;
633 val* var211 /* : Array[Object] */;
634 long var212 /* : Int */;
635 val* var213 /* : NativeArray[Object] */;
636 val* var214 /* : String */;
637 val* var215 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
638 val* var217 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
639 var_anode = p0;
640 var_mmodule = p1;
641 var_mtype = p2;
642 var_name = p3;
643 {
644 { /* Inline modelbuilder_base#ModelBuilder#model (self) on <self:ModelBuilder> */
645 var3 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
646 if (unlikely(var3 == NULL)) {
647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
648 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
649 show_backtrace(1);
650 }
651 var1 = var3;
652 RET_LABEL2:(void)0;
653 }
654 }
655 {
656 var4 = nit__model___Model___get_mproperties_by_name(var1, var_name);
657 }
658 var_props = var4;
659 var5 = NULL;
660 if (var_props == NULL) {
661 var6 = 1; /* is null */
662 } else {
663 var6 = 0; /* arg is null but recv is not */
664 }
665 if (0) {
666 var7 = standard___standard__Array___standard__kernel__Object___61d_61d(var_props, var5);
667 var6 = var7;
668 }
669 if (var6){
670 var8 = NULL;
671 var = var8;
672 goto RET_LABEL;
673 } else {
674 }
675 {
676 { /* Inline modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2_cache (self) on <self:ModelBuilder> */
677 var11 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
678 if (unlikely(var11 == NULL)) {
679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
680 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168);
681 show_backtrace(1);
682 }
683 var9 = var11;
684 RET_LABEL10:(void)0;
685 }
686 }
687 {
688 var12 = more_collections___more_collections__HashMap3____91d_93d(var9, var_mmodule, var_mtype, var_name);
689 }
690 var_cache = var12;
691 var13 = NULL;
692 if (var_cache == NULL) {
693 var14 = 0; /* is null */
694 } else {
695 var14 = 1; /* arg is null and recv is not */
696 }
697 if (0) {
698 { /* Inline kernel#Object#!= (var_cache,var13) on <var_cache:nullable MProperty> */
699 var_other = var13;
700 {
701 var17 = ((short int (*)(val* self, val* p0))(var_cache->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cache, var_other) /* == on <var_cache:nullable MProperty(MProperty)>*/;
702 }
703 var18 = !var17;
704 var15 = var18;
705 goto RET_LABEL16;
706 RET_LABEL16:(void)0;
707 }
708 var14 = var15;
709 }
710 if (var14){
711 var = var_cache;
712 goto RET_LABEL;
713 } else {
714 }
715 var19 = NULL;
716 var_res = var19;
717 var20 = NULL;
718 var_ress = var20;
719 var_ = var_props;
720 {
721 var21 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
722 }
723 var_22 = var21;
724 for(;;) {
725 {
726 var23 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_22);
727 }
728 if (var23){
729 {
730 var24 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_22);
731 }
732 var_mprop = var24;
733 {
734 var25 = nit___nit__MType___has_mproperty(var_mtype, var_mmodule, var_mprop);
735 }
736 var26 = !var25;
737 if (var26){
738 goto BREAK_label;
739 } else {
740 }
741 {
742 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty> */
743 var29 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty> */
744 if (unlikely(var29 == NULL)) {
745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
746 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
747 show_backtrace(1);
748 }
749 var27 = var29;
750 RET_LABEL28:(void)0;
751 }
752 }
753 {
754 { /* Inline model#MClassDef#mmodule (var27) on <var27:MClassDef> */
755 var32 = var27->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var27:MClassDef> */
756 if (unlikely(var32 == NULL)) {
757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
759 show_backtrace(1);
760 }
761 var30 = var32;
762 RET_LABEL31:(void)0;
763 }
764 }
765 {
766 { /* Inline model#MProperty#visibility (var_mprop) on <var_mprop:MProperty> */
767 var35 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mprop:MProperty> */
768 if (unlikely(var35 == NULL)) {
769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
770 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
771 show_backtrace(1);
772 }
773 var33 = var35;
774 RET_LABEL34:(void)0;
775 }
776 }
777 {
778 var36 = nit___nit__MModule___is_visible(var_mmodule, var30, var33);
779 }
780 var37 = !var36;
781 if (var37){
782 goto BREAK_label;
783 } else {
784 }
785 /* <var_mprop:MProperty> isa MMethod */
786 cltype = type_nit__MMethod.color;
787 idtype = type_nit__MMethod.id;
788 if(cltype >= var_mprop->type->table_size) {
789 var40 = 0;
790 } else {
791 var40 = var_mprop->type->type_table[cltype] == idtype;
792 }
793 var_41 = var40;
794 if (var40){
795 {
796 { /* Inline model#MMethod#is_new (var_mprop) on <var_mprop:MProperty(MMethod)> */
797 var44 = var_mprop->attrs[COLOR_nit__model__MMethod___is_new].s; /* _is_new on <var_mprop:MProperty(MMethod)> */
798 var42 = var44;
799 RET_LABEL43:(void)0;
800 }
801 }
802 var39 = var42;
803 } else {
804 var39 = var_41;
805 }
806 var_45 = var39;
807 if (var39){
808 /* <var_mtype:MType> isa MClassType */
809 cltype48 = type_nit__MClassType.color;
810 idtype49 = type_nit__MClassType.id;
811 if(cltype48 >= var_mtype->type->table_size) {
812 var47 = 0;
813 } else {
814 var47 = var_mtype->type->type_table[cltype48] == idtype49;
815 }
816 var50 = !var47;
817 var_51 = var50;
818 if (var50){
819 var46 = var_51;
820 } else {
821 {
822 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
823 var54 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
824 if (unlikely(var54 == NULL)) {
825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
826 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
827 show_backtrace(1);
828 }
829 var52 = var54;
830 RET_LABEL53:(void)0;
831 }
832 }
833 {
834 { /* Inline model#MClassDef#mclass (var52) on <var52:MClassDef> */
835 var57 = var52->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var52:MClassDef> */
836 if (unlikely(var57 == NULL)) {
837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
838 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
839 show_backtrace(1);
840 }
841 var55 = var57;
842 RET_LABEL56:(void)0;
843 }
844 }
845 {
846 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
847 var60 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
848 if (unlikely(var60 == NULL)) {
849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
850 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
851 show_backtrace(1);
852 }
853 var58 = var60;
854 RET_LABEL59:(void)0;
855 }
856 }
857 {
858 { /* Inline kernel#Object#!= (var55,var58) on <var55:MClass> */
859 var_other = var58;
860 {
861 var63 = ((short int (*)(val* self, val* p0))(var55->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var55, var_other) /* == on <var55:MClass>*/;
862 }
863 var64 = !var63;
864 var61 = var64;
865 goto RET_LABEL62;
866 RET_LABEL62:(void)0;
867 }
868 }
869 var46 = var61;
870 }
871 var38 = var46;
872 } else {
873 var38 = var_45;
874 }
875 if (var38){
876 goto BREAK_label;
877 } else {
878 }
879 var65 = NULL;
880 if (var_res == NULL) {
881 var66 = 1; /* is null */
882 } else {
883 var66 = 0; /* arg is null but recv is not */
884 }
885 if (0) {
886 { /* Inline kernel#Object#== (var_res,var65) on <var_res:nullable MProperty> */
887 var_other69 = var65;
888 {
889 { /* Inline kernel#Object#is_same_instance (var_res,var_other69) on <var_res:nullable MProperty(MProperty)> */
890 var72 = var_res == var_other69;
891 var70 = var72;
892 goto RET_LABEL71;
893 RET_LABEL71:(void)0;
894 }
895 }
896 var67 = var70;
897 goto RET_LABEL68;
898 RET_LABEL68:(void)0;
899 }
900 var66 = var67;
901 }
902 if (var66){
903 var_res = var_mprop;
904 goto BREAK_label;
905 } else {
906 }
907 /* <var_res:nullable MProperty(MProperty)> isa MMethod */
908 cltype77 = type_nit__MMethod.color;
909 idtype78 = type_nit__MMethod.id;
910 if(cltype77 >= var_res->type->table_size) {
911 var76 = 0;
912 } else {
913 var76 = var_res->type->type_table[cltype77] == idtype78;
914 }
915 var_79 = var76;
916 if (var76){
917 /* <var_mprop:MProperty> isa MMethod */
918 cltype81 = type_nit__MMethod.color;
919 idtype82 = type_nit__MMethod.id;
920 if(cltype81 >= var_mprop->type->table_size) {
921 var80 = 0;
922 } else {
923 var80 = var_mprop->type->type_table[cltype81] == idtype82;
924 }
925 var75 = var80;
926 } else {
927 var75 = var_79;
928 }
929 var_83 = var75;
930 if (var75){
931 {
932 { /* Inline model#MMethod#is_init (var_res) on <var_res:nullable MProperty(MMethod)> */
933 var86 = var_res->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var_res:nullable MProperty(MMethod)> */
934 var84 = var86;
935 RET_LABEL85:(void)0;
936 }
937 }
938 var74 = var84;
939 } else {
940 var74 = var_83;
941 }
942 var_87 = var74;
943 if (var74){
944 {
945 { /* Inline model#MMethod#is_init (var_mprop) on <var_mprop:MProperty(MMethod)> */
946 var90 = var_mprop->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var_mprop:MProperty(MMethod)> */
947 var88 = var90;
948 RET_LABEL89:(void)0;
949 }
950 }
951 var73 = var88;
952 } else {
953 var73 = var_87;
954 }
955 if (var73){
956 {
957 { /* Inline model#MProperty#intro_mclassdef (var_res) on <var_res:nullable MProperty(MMethod)> */
958 var93 = var_res->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_res:nullable MProperty(MMethod)> */
959 if (unlikely(var93 == NULL)) {
960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
962 show_backtrace(1);
963 }
964 var91 = var93;
965 RET_LABEL92:(void)0;
966 }
967 }
968 {
969 { /* Inline model#MClassDef#bound_mtype (var91) on <var91:MClassDef> */
970 var96 = var91->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var91:MClassDef> */
971 if (unlikely(var96 == NULL)) {
972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
974 show_backtrace(1);
975 }
976 var94 = var96;
977 RET_LABEL95:(void)0;
978 }
979 }
980 var_restype = var94;
981 {
982 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
983 var99 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
984 if (unlikely(var99 == NULL)) {
985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
986 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
987 show_backtrace(1);
988 }
989 var97 = var99;
990 RET_LABEL98:(void)0;
991 }
992 }
993 {
994 { /* Inline model#MClassDef#bound_mtype (var97) on <var97:MClassDef> */
995 var102 = var97->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var97:MClassDef> */
996 if (unlikely(var102 == NULL)) {
997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
998 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
999 show_backtrace(1);
1000 }
1001 var100 = var102;
1002 RET_LABEL101:(void)0;
1003 }
1004 }
1005 var_mproptype = var100;
1006 var103 = NULL;
1007 {
1008 var104 = nit___nit__MType___is_subtype(var_mproptype, var_mmodule, var103, var_restype);
1009 }
1010 if (var104){
1011 var_res = var_mprop;
1012 goto BREAK_label;
1013 } else {
1014 }
1015 } else {
1016 }
1017 var105 = NULL;
1018 if (var_ress == NULL) {
1019 var106 = 1; /* is null */
1020 } else {
1021 var106 = 0; /* arg is null but recv is not */
1022 }
1023 if (0) {
1024 var107 = standard___standard__Array___standard__kernel__Object___61d_61d(var_ress, var105);
1025 var106 = var107;
1026 }
1027 if (var106){
1028 var108 = NEW_standard__Array(&type_standard__Array__nit__MProperty);
1029 {
1030 standard___standard__Array___standard__kernel__Object__init(var108); /* Direct call array#Array#init on <var108:Array[MProperty]>*/
1031 }
1032 var_ress = var108;
1033 {
1034 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress, var_res); /* Direct call array#Array#add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1035 }
1036 } else {
1037 }
1038 {
1039 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress, var_mprop); /* Direct call array#Array#add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1040 }
1041 BREAK_label: (void)0;
1042 {
1043 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_22); /* Direct call array#ArrayIterator#next on <var_22:ArrayIterator[MProperty]>*/
1044 }
1045 } else {
1046 goto BREAK_label109;
1047 }
1048 }
1049 BREAK_label109: (void)0;
1050 {
1051 { /* Inline abstract_collection#Iterator#finish (var_22) on <var_22:ArrayIterator[MProperty]> */
1052 RET_LABEL110:(void)0;
1053 }
1054 }
1055 var113 = NULL;
1056 if (var_ress == NULL) {
1057 var114 = 0; /* is null */
1058 } else {
1059 var114 = 1; /* arg is null and recv is not */
1060 }
1061 if (0) {
1062 { /* Inline kernel#Object#!= (var_ress,var113) on <var_ress:nullable Array[MProperty]> */
1063 var_other = var113;
1064 {
1065 var117 = ((short int (*)(val* self, val* p0))(var_ress->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ress, var_other) /* == on <var_ress:nullable Array[MProperty](Array[MProperty])>*/;
1066 }
1067 var118 = !var117;
1068 var115 = var118;
1069 goto RET_LABEL116;
1070 RET_LABEL116:(void)0;
1071 }
1072 var114 = var115;
1073 }
1074 var_119 = var114;
1075 if (var114){
1076 /* <var_res:nullable MProperty> isa MMethod */
1077 cltype121 = type_nit__MMethod.color;
1078 idtype122 = type_nit__MMethod.id;
1079 if(var_res == NULL) {
1080 var120 = 0;
1081 } else {
1082 if(cltype121 >= var_res->type->table_size) {
1083 var120 = 0;
1084 } else {
1085 var120 = var_res->type->type_table[cltype121] == idtype122;
1086 }
1087 }
1088 var112 = var120;
1089 } else {
1090 var112 = var_119;
1091 }
1092 var_123 = var112;
1093 if (var112){
1094 {
1095 { /* Inline model#MMethod#is_init (var_res) on <var_res:nullable MProperty(MMethod)> */
1096 var126 = var_res->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var_res:nullable MProperty(MMethod)> */
1097 var124 = var126;
1098 RET_LABEL125:(void)0;
1099 }
1100 }
1101 var111 = var124;
1102 } else {
1103 var111 = var_123;
1104 }
1105 if (var111){
1106 {
1107 { /* Inline model#MProperty#intro_mclassdef (var_res) on <var_res:nullable MProperty(MMethod)> */
1108 var129 = var_res->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_res:nullable MProperty(MMethod)> */
1109 if (unlikely(var129 == NULL)) {
1110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1111 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
1112 show_backtrace(1);
1113 }
1114 var127 = var129;
1115 RET_LABEL128:(void)0;
1116 }
1117 }
1118 {
1119 { /* Inline model#MClassDef#bound_mtype (var127) on <var127:MClassDef> */
1120 var132 = var127->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var127:MClassDef> */
1121 if (unlikely(var132 == NULL)) {
1122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1123 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
1124 show_backtrace(1);
1125 }
1126 var130 = var132;
1127 RET_LABEL131:(void)0;
1128 }
1129 }
1130 var_restype133 = var130;
1131 var134 = NEW_standard__Array(&type_standard__Array__nit__MProperty);
1132 {
1133 standard___standard__Array___standard__kernel__Object__init(var134); /* Direct call array#Array#init on <var134:Array[MProperty]>*/
1134 }
1135 var_ress2 = var134;
1136 var_135 = var_ress;
1137 {
1138 var136 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_135);
1139 }
1140 var_137 = var136;
1141 for(;;) {
1142 {
1143 var138 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_137);
1144 }
1145 if (var138){
1146 {
1147 var139 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_137);
1148 }
1149 var_mprop140 = var139;
1150 {
1151 { /* Inline model#MProperty#intro_mclassdef (var_mprop140) on <var_mprop140:MProperty> */
1152 var143 = var_mprop140->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop140:MProperty> */
1153 if (unlikely(var143 == NULL)) {
1154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1155 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
1156 show_backtrace(1);
1157 }
1158 var141 = var143;
1159 RET_LABEL142:(void)0;
1160 }
1161 }
1162 {
1163 { /* Inline model#MClassDef#bound_mtype (var141) on <var141:MClassDef> */
1164 var146 = var141->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var141:MClassDef> */
1165 if (unlikely(var146 == NULL)) {
1166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1167 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
1168 show_backtrace(1);
1169 }
1170 var144 = var146;
1171 RET_LABEL145:(void)0;
1172 }
1173 }
1174 var_mproptype147 = var144;
1175 var148 = NULL;
1176 {
1177 var149 = nit___nit__MType___is_subtype(var_restype133, var_mmodule, var148, var_mproptype147);
1178 }
1179 var150 = !var149;
1180 if (var150){
1181 {
1182 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress2, var_mprop140); /* Direct call array#Array#add on <var_ress2:Array[MProperty]>*/
1183 }
1184 } else {
1185 /* <var_mprop140:MProperty> isa MMethod */
1186 cltype153 = type_nit__MMethod.color;
1187 idtype154 = type_nit__MMethod.id;
1188 if(cltype153 >= var_mprop140->type->table_size) {
1189 var152 = 0;
1190 } else {
1191 var152 = var_mprop140->type->type_table[cltype153] == idtype154;
1192 }
1193 var155 = !var152;
1194 var_156 = var155;
1195 if (var155){
1196 var151 = var_156;
1197 } else {
1198 {
1199 { /* Inline model#MMethod#is_init (var_mprop140) on <var_mprop140:MProperty(MMethod)> */
1200 var159 = var_mprop140->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var_mprop140:MProperty(MMethod)> */
1201 var157 = var159;
1202 RET_LABEL158:(void)0;
1203 }
1204 }
1205 var160 = !var157;
1206 var151 = var160;
1207 }
1208 if (var151){
1209 {
1210 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress2, var_mprop140); /* Direct call array#Array#add on <var_ress2:Array[MProperty]>*/
1211 }
1212 } else {
1213 }
1214 }
1215 {
1216 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_137); /* Direct call array#ArrayIterator#next on <var_137:ArrayIterator[MProperty]>*/
1217 }
1218 } else {
1219 goto BREAK_label161;
1220 }
1221 }
1222 BREAK_label161: (void)0;
1223 {
1224 { /* Inline abstract_collection#Iterator#finish (var_137) on <var_137:ArrayIterator[MProperty]> */
1225 RET_LABEL162:(void)0;
1226 }
1227 }
1228 {
1229 var163 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_ress2);
1230 }
1231 if (var163){
1232 var164 = NULL;
1233 var_ress = var164;
1234 } else {
1235 var_ress = var_ress2;
1236 {
1237 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress, var_res); /* Direct call array#Array#add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1238 }
1239 }
1240 } else {
1241 }
1242 var165 = NULL;
1243 if (var_ress == NULL) {
1244 var166 = 0; /* is null */
1245 } else {
1246 var166 = 1; /* arg is null and recv is not */
1247 }
1248 if (0) {
1249 { /* Inline kernel#Object#!= (var_ress,var165) on <var_ress:nullable Array[MProperty]> */
1250 var_other = var165;
1251 {
1252 var169 = ((short int (*)(val* self, val* p0))(var_ress->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ress, var_other) /* == on <var_ress:nullable Array[MProperty](Array[MProperty])>*/;
1253 }
1254 var170 = !var169;
1255 var167 = var170;
1256 goto RET_LABEL168;
1257 RET_LABEL168:(void)0;
1258 }
1259 var166 = var167;
1260 }
1261 if (var166){
1262 {
1263 { /* Inline array#AbstractArrayRead#length (var_ress) on <var_ress:nullable Array[MProperty](Array[MProperty])> */
1264 var173 = var_ress->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_ress:nullable Array[MProperty](Array[MProperty])> */
1265 var171 = var173;
1266 RET_LABEL172:(void)0;
1267 }
1268 }
1269 var174 = 1;
1270 {
1271 { /* Inline kernel#Int#> (var171,var174) on <var171:Int> */
1272 /* Covariant cast for argument 0 (i) <var174:Int> isa OTHER */
1273 /* <var174:Int> isa OTHER */
1274 var177 = 1; /* easy <var174:Int> isa OTHER*/
1275 if (unlikely(!var177)) {
1276 var_class_name = type_standard__Int.name;
1277 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1278 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1279 show_backtrace(1);
1280 }
1281 var180 = var171 > var174;
1282 var175 = var180;
1283 goto RET_LABEL176;
1284 RET_LABEL176:(void)0;
1285 }
1286 }
1287 if (unlikely(!var175)) {
1288 PRINT_ERROR("Runtime error: %s", "Assert failed");
1289 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 158);
1290 show_backtrace(1);
1291 }
1292 var181 = NEW_standard__Array(&type_standard__Array__standard__String);
1293 {
1294 standard___standard__Array___standard__kernel__Object__init(var181); /* Direct call array#Array#init on <var181:Array[String]>*/
1295 }
1296 var_s = var181;
1297 var_182 = var_ress;
1298 {
1299 var183 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_182);
1300 }
1301 var_184 = var183;
1302 for(;;) {
1303 {
1304 var185 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_184);
1305 }
1306 if (var185){
1307 {
1308 var186 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_184);
1309 }
1310 var_mprop187 = var186;
1311 {
1312 var188 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop187);
1313 }
1314 {
1315 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_s, var188); /* Direct call array#Array#add on <var_s:Array[String]>*/
1316 }
1317 {
1318 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_184); /* Direct call array#ArrayIterator#next on <var_184:ArrayIterator[MProperty]>*/
1319 }
1320 } else {
1321 goto BREAK_label189;
1322 }
1323 }
1324 BREAK_label189: (void)0;
1325 {
1326 { /* Inline abstract_collection#Iterator#finish (var_184) on <var_184:ArrayIterator[MProperty]> */
1327 RET_LABEL190:(void)0;
1328 }
1329 }
1330 if (varonce) {
1331 var191 = varonce;
1332 } else {
1333 var192 = "Ambigous property name \'";
1334 var193 = 24;
1335 var194 = standard___standard__NativeString___to_s_with_length(var192, var193);
1336 var191 = var194;
1337 varonce = var191;
1338 }
1339 if (varonce195) {
1340 var196 = varonce195;
1341 } else {
1342 var197 = "\' for ";
1343 var198 = 6;
1344 var199 = standard___standard__NativeString___to_s_with_length(var197, var198);
1345 var196 = var199;
1346 varonce195 = var196;
1347 }
1348 if (varonce200) {
1349 var201 = varonce200;
1350 } else {
1351 var202 = "; conflict between ";
1352 var203 = 19;
1353 var204 = standard___standard__NativeString___to_s_with_length(var202, var203);
1354 var201 = var204;
1355 varonce200 = var201;
1356 }
1357 if (varonce205) {
1358 var206 = varonce205;
1359 } else {
1360 var207 = " and ";
1361 var208 = 5;
1362 var209 = standard___standard__NativeString___to_s_with_length(var207, var208);
1363 var206 = var209;
1364 varonce205 = var206;
1365 }
1366 {
1367 var210 = standard__string___Collection___join(var_s, var206);
1368 }
1369 var211 = NEW_standard__Array(&type_standard__Array__standard__Object);
1370 { /* var211 = array_instance Array[Object] */
1371 var212 = 6;
1372 var213 = NEW_standard__NativeArray(var212, &type_standard__NativeArray__standard__Object);
1373 ((struct instance_standard__NativeArray*)var213)->values[0] = (val*) var191;
1374 ((struct instance_standard__NativeArray*)var213)->values[1] = (val*) var_name;
1375 ((struct instance_standard__NativeArray*)var213)->values[2] = (val*) var196;
1376 ((struct instance_standard__NativeArray*)var213)->values[3] = (val*) var_mtype;
1377 ((struct instance_standard__NativeArray*)var213)->values[4] = (val*) var201;
1378 ((struct instance_standard__NativeArray*)var213)->values[5] = (val*) var210;
1379 {
1380 ((void (*)(val* self, val* p0, long p1))(var211->class->vft[COLOR_standard__array__Array__with_native]))(var211, var213, var212) /* with_native on <var211:Array[Object]>*/;
1381 }
1382 }
1383 {
1384 var214 = ((val* (*)(val* self))(var211->class->vft[COLOR_standard__string__Object__to_s]))(var211) /* to_s on <var211:Array[Object]>*/;
1385 }
1386 {
1387 nit___nit__ModelBuilder___error(self, var_anode, var214); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
1388 }
1389 } else {
1390 }
1391 {
1392 { /* Inline modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2_cache (self) on <self:ModelBuilder> */
1393 var217 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1394 if (unlikely(var217 == NULL)) {
1395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
1396 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168);
1397 show_backtrace(1);
1398 }
1399 var215 = var217;
1400 RET_LABEL216:(void)0;
1401 }
1402 }
1403 {
1404 more_collections___more_collections__HashMap3____91d_93d_61d(var215, var_mmodule, var_mtype, var_name, var_res); /* Direct call more_collections#HashMap3#[]= on <var215:HashMap3[MModule, MType, String, nullable MProperty]>*/
1405 }
1406 var = var_res;
1407 goto RET_LABEL;
1408 RET_LABEL:;
1409 return var;
1410 }
1411 /* method modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2_cache for (self: ModelBuilder): HashMap3[MModule, MType, String, nullable MProperty] */
1412 val* nit___nit__ModelBuilder___try_get_mproperty_by_name2_cache(val* self) {
1413 val* var /* : HashMap3[MModule, MType, String, nullable MProperty] */;
1414 val* var1 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
1415 var1 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1416 if (unlikely(var1 == NULL)) {
1417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
1418 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168);
1419 show_backtrace(1);
1420 }
1421 var = var1;
1422 RET_LABEL:;
1423 return var;
1424 }
1425 /* method modelbuilder_base#ModelBuilder#try_get_mproperty_by_name for (self: ModelBuilder, ANode, MClassDef, String): nullable MProperty */
1426 val* nit___nit__ModelBuilder___try_get_mproperty_by_name(val* self, val* p0, val* p1, val* p2) {
1427 val* var /* : nullable MProperty */;
1428 val* var_anode /* var anode: ANode */;
1429 val* var_mclassdef /* var mclassdef: MClassDef */;
1430 val* var_name /* var name: String */;
1431 val* var1 /* : MModule */;
1432 val* var3 /* : MModule */;
1433 val* var4 /* : MClassType */;
1434 val* var6 /* : MClassType */;
1435 val* var7 /* : nullable MProperty */;
1436 var_anode = p0;
1437 var_mclassdef = p1;
1438 var_name = p2;
1439 {
1440 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
1441 var3 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
1442 if (unlikely(var3 == NULL)) {
1443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1444 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
1445 show_backtrace(1);
1446 }
1447 var1 = var3;
1448 RET_LABEL2:(void)0;
1449 }
1450 }
1451 {
1452 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1453 var6 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1454 if (unlikely(var6 == NULL)) {
1455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
1457 show_backtrace(1);
1458 }
1459 var4 = var6;
1460 RET_LABEL5:(void)0;
1461 }
1462 }
1463 {
1464 var7 = nit___nit__ModelBuilder___try_get_mproperty_by_name2(self, var_anode, var1, var4, var_name);
1465 }
1466 var = var7;
1467 goto RET_LABEL;
1468 RET_LABEL:;
1469 return var;
1470 }
1471 /* method modelbuilder_base#ModelBuilder#error for (self: ModelBuilder, nullable ANode, String) */
1472 void nit___nit__ModelBuilder___error(val* self, val* p0, val* p1) {
1473 val* var_n /* var n: nullable ANode */;
1474 val* var_text /* var text: String */;
1475 val* var /* : null */;
1476 val* var_l /* var l: nullable Object */;
1477 val* var1 /* : null */;
1478 short int var2 /* : Bool */;
1479 short int var3 /* : Bool */;
1480 val* var_other /* var other: nullable Object */;
1481 short int var5 /* : Bool */;
1482 short int var6 /* : Bool */;
1483 val* var7 /* : Location */;
1484 val* var8 /* : ToolContext */;
1485 val* var10 /* : ToolContext */;
1486 var_n = p0;
1487 var_text = p1;
1488 var = NULL;
1489 var_l = var;
1490 var1 = NULL;
1491 if (var_n == NULL) {
1492 var2 = 0; /* is null */
1493 } else {
1494 var2 = 1; /* arg is null and recv is not */
1495 }
1496 if (0) {
1497 { /* Inline kernel#Object#!= (var_n,var1) on <var_n:nullable ANode> */
1498 var_other = var1;
1499 {
1500 var5 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on <var_n:nullable ANode(ANode)>*/;
1501 }
1502 var6 = !var5;
1503 var3 = var6;
1504 goto RET_LABEL4;
1505 RET_LABEL4:(void)0;
1506 }
1507 var2 = var3;
1508 }
1509 if (var2){
1510 {
1511 var7 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on <var_n:nullable ANode(ANode)>*/;
1512 }
1513 var_l = var7;
1514 } else {
1515 }
1516 {
1517 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1518 var10 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1519 if (unlikely(var10 == NULL)) {
1520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1522 show_backtrace(1);
1523 }
1524 var8 = var10;
1525 RET_LABEL9:(void)0;
1526 }
1527 }
1528 {
1529 nit___nit__ToolContext___error(var8, var_l, var_text); /* Direct call toolcontext#ToolContext#error on <var8:ToolContext>*/
1530 }
1531 RET_LABEL:;
1532 }
1533 /* method modelbuilder_base#ModelBuilder#warning for (self: ModelBuilder, nullable ANode, String, String) */
1534 void nit___nit__ModelBuilder___warning(val* self, val* p0, val* p1, val* p2) {
1535 val* var_n /* var n: nullable ANode */;
1536 val* var_tag /* var tag: String */;
1537 val* var_text /* var text: String */;
1538 val* var /* : null */;
1539 val* var_l /* var l: nullable Object */;
1540 val* var1 /* : null */;
1541 short int var2 /* : Bool */;
1542 short int var3 /* : Bool */;
1543 val* var_other /* var other: nullable Object */;
1544 short int var5 /* : Bool */;
1545 short int var6 /* : Bool */;
1546 val* var7 /* : Location */;
1547 val* var8 /* : ToolContext */;
1548 val* var10 /* : ToolContext */;
1549 var_n = p0;
1550 var_tag = p1;
1551 var_text = p2;
1552 var = NULL;
1553 var_l = var;
1554 var1 = NULL;
1555 if (var_n == NULL) {
1556 var2 = 0; /* is null */
1557 } else {
1558 var2 = 1; /* arg is null and recv is not */
1559 }
1560 if (0) {
1561 { /* Inline kernel#Object#!= (var_n,var1) on <var_n:nullable ANode> */
1562 var_other = var1;
1563 {
1564 var5 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on <var_n:nullable ANode(ANode)>*/;
1565 }
1566 var6 = !var5;
1567 var3 = var6;
1568 goto RET_LABEL4;
1569 RET_LABEL4:(void)0;
1570 }
1571 var2 = var3;
1572 }
1573 if (var2){
1574 {
1575 var7 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on <var_n:nullable ANode(ANode)>*/;
1576 }
1577 var_l = var7;
1578 } else {
1579 }
1580 {
1581 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1582 var10 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1583 if (unlikely(var10 == NULL)) {
1584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1585 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1586 show_backtrace(1);
1587 }
1588 var8 = var10;
1589 RET_LABEL9:(void)0;
1590 }
1591 }
1592 {
1593 nit___nit__ToolContext___warning(var8, var_l, var_tag, var_text); /* Direct call toolcontext#ToolContext#warning on <var8:ToolContext>*/
1594 }
1595 RET_LABEL:;
1596 }
1597 /* method modelbuilder_base#ModelBuilder#advice for (self: ModelBuilder, nullable ANode, String, String) */
1598 void nit___nit__ModelBuilder___advice(val* self, val* p0, val* p1, val* p2) {
1599 val* var_n /* var n: nullable ANode */;
1600 val* var_tag /* var tag: String */;
1601 val* var_text /* var text: String */;
1602 val* var /* : null */;
1603 val* var_l /* var l: nullable Object */;
1604 val* var1 /* : null */;
1605 short int var2 /* : Bool */;
1606 short int var3 /* : Bool */;
1607 val* var_other /* var other: nullable Object */;
1608 short int var5 /* : Bool */;
1609 short int var6 /* : Bool */;
1610 val* var7 /* : Location */;
1611 val* var8 /* : ToolContext */;
1612 val* var10 /* : ToolContext */;
1613 var_n = p0;
1614 var_tag = p1;
1615 var_text = p2;
1616 var = NULL;
1617 var_l = var;
1618 var1 = NULL;
1619 if (var_n == NULL) {
1620 var2 = 0; /* is null */
1621 } else {
1622 var2 = 1; /* arg is null and recv is not */
1623 }
1624 if (0) {
1625 { /* Inline kernel#Object#!= (var_n,var1) on <var_n:nullable ANode> */
1626 var_other = var1;
1627 {
1628 var5 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on <var_n:nullable ANode(ANode)>*/;
1629 }
1630 var6 = !var5;
1631 var3 = var6;
1632 goto RET_LABEL4;
1633 RET_LABEL4:(void)0;
1634 }
1635 var2 = var3;
1636 }
1637 if (var2){
1638 {
1639 var7 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on <var_n:nullable ANode(ANode)>*/;
1640 }
1641 var_l = var7;
1642 } else {
1643 }
1644 {
1645 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1646 var10 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1647 if (unlikely(var10 == NULL)) {
1648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1650 show_backtrace(1);
1651 }
1652 var8 = var10;
1653 RET_LABEL9:(void)0;
1654 }
1655 }
1656 {
1657 nit___nit__ToolContext___advice(var8, var_l, var_tag, var_text); /* Direct call toolcontext#ToolContext#advice on <var8:ToolContext>*/
1658 }
1659 RET_LABEL:;
1660 }
1661 /* method modelbuilder_base#ModelBuilder#force_get_primitive_method for (self: ModelBuilder, nullable ANode, String, MClass, MModule): MMethod */
1662 val* nit___nit__ModelBuilder___force_get_primitive_method(val* self, val* p0, val* p1, val* p2, val* p3) {
1663 val* var /* : MMethod */;
1664 val* var_n /* var n: nullable ANode */;
1665 val* var_name /* var name: String */;
1666 val* var_recv /* var recv: MClass */;
1667 val* var_mmodule /* var mmodule: MModule */;
1668 val* var1 /* : nullable MMethod */;
1669 val* var_res /* var res: nullable MMethod */;
1670 val* var2 /* : null */;
1671 short int var3 /* : Bool */;
1672 short int var4 /* : Bool */;
1673 val* var_other /* var other: nullable Object */;
1674 short int var6 /* : Bool */;
1675 short int var8 /* : Bool */;
1676 val* var9 /* : null */;
1677 val* var_l /* var l: nullable Object */;
1678 val* var10 /* : null */;
1679 short int var11 /* : Bool */;
1680 short int var12 /* : Bool */;
1681 val* var_other14 /* var other: nullable Object */;
1682 short int var15 /* : Bool */;
1683 short int var16 /* : Bool */;
1684 val* var17 /* : Location */;
1685 val* var18 /* : ToolContext */;
1686 val* var20 /* : ToolContext */;
1687 static val* varonce;
1688 val* var21 /* : String */;
1689 char* var22 /* : NativeString */;
1690 long var23 /* : Int */;
1691 val* var24 /* : FlatString */;
1692 static val* varonce25;
1693 val* var26 /* : String */;
1694 char* var27 /* : NativeString */;
1695 long var28 /* : Int */;
1696 val* var29 /* : FlatString */;
1697 static val* varonce30;
1698 val* var31 /* : String */;
1699 char* var32 /* : NativeString */;
1700 long var33 /* : Int */;
1701 val* var34 /* : FlatString */;
1702 val* var35 /* : Array[Object] */;
1703 long var36 /* : Int */;
1704 val* var37 /* : NativeArray[Object] */;
1705 val* var38 /* : String */;
1706 var_n = p0;
1707 var_name = p1;
1708 var_recv = p2;
1709 var_mmodule = p3;
1710 {
1711 var1 = nit__model___MModule___try_get_primitive_method(var_mmodule, var_name, var_recv);
1712 }
1713 var_res = var1;
1714 var2 = NULL;
1715 if (var_res == NULL) {
1716 var3 = 1; /* is null */
1717 } else {
1718 var3 = 0; /* arg is null but recv is not */
1719 }
1720 if (0) {
1721 { /* Inline kernel#Object#== (var_res,var2) on <var_res:nullable MMethod> */
1722 var_other = var2;
1723 {
1724 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
1725 var8 = var_res == var_other;
1726 var6 = var8;
1727 goto RET_LABEL7;
1728 RET_LABEL7:(void)0;
1729 }
1730 }
1731 var4 = var6;
1732 goto RET_LABEL5;
1733 RET_LABEL5:(void)0;
1734 }
1735 var3 = var4;
1736 }
1737 if (var3){
1738 var9 = NULL;
1739 var_l = var9;
1740 var10 = NULL;
1741 if (var_n == NULL) {
1742 var11 = 0; /* is null */
1743 } else {
1744 var11 = 1; /* arg is null and recv is not */
1745 }
1746 if (0) {
1747 { /* Inline kernel#Object#!= (var_n,var10) on <var_n:nullable ANode> */
1748 var_other14 = var10;
1749 {
1750 var15 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other14) /* == on <var_n:nullable ANode(ANode)>*/;
1751 }
1752 var16 = !var15;
1753 var12 = var16;
1754 goto RET_LABEL13;
1755 RET_LABEL13:(void)0;
1756 }
1757 var11 = var12;
1758 }
1759 if (var11){
1760 {
1761 var17 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on <var_n:nullable ANode(ANode)>*/;
1762 }
1763 var_l = var17;
1764 } else {
1765 }
1766 {
1767 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1768 var20 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1769 if (unlikely(var20 == NULL)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1771 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1772 show_backtrace(1);
1773 }
1774 var18 = var20;
1775 RET_LABEL19:(void)0;
1776 }
1777 }
1778 if (varonce) {
1779 var21 = varonce;
1780 } else {
1781 var22 = "Fatal Error: ";
1782 var23 = 13;
1783 var24 = standard___standard__NativeString___to_s_with_length(var22, var23);
1784 var21 = var24;
1785 varonce = var21;
1786 }
1787 if (varonce25) {
1788 var26 = varonce25;
1789 } else {
1790 var27 = " must have a property named ";
1791 var28 = 28;
1792 var29 = standard___standard__NativeString___to_s_with_length(var27, var28);
1793 var26 = var29;
1794 varonce25 = var26;
1795 }
1796 if (varonce30) {
1797 var31 = varonce30;
1798 } else {
1799 var32 = ".";
1800 var33 = 1;
1801 var34 = standard___standard__NativeString___to_s_with_length(var32, var33);
1802 var31 = var34;
1803 varonce30 = var31;
1804 }
1805 var35 = NEW_standard__Array(&type_standard__Array__standard__Object);
1806 { /* var35 = array_instance Array[Object] */
1807 var36 = 5;
1808 var37 = NEW_standard__NativeArray(var36, &type_standard__NativeArray__standard__Object);
1809 ((struct instance_standard__NativeArray*)var37)->values[0] = (val*) var21;
1810 ((struct instance_standard__NativeArray*)var37)->values[1] = (val*) var_recv;
1811 ((struct instance_standard__NativeArray*)var37)->values[2] = (val*) var26;
1812 ((struct instance_standard__NativeArray*)var37)->values[3] = (val*) var_name;
1813 ((struct instance_standard__NativeArray*)var37)->values[4] = (val*) var31;
1814 {
1815 ((void (*)(val* self, val* p0, long p1))(var35->class->vft[COLOR_standard__array__Array__with_native]))(var35, var37, var36) /* with_native on <var35:Array[Object]>*/;
1816 }
1817 }
1818 {
1819 var38 = ((val* (*)(val* self))(var35->class->vft[COLOR_standard__string__Object__to_s]))(var35) /* to_s on <var35:Array[Object]>*/;
1820 }
1821 {
1822 nit___nit__ToolContext___fatal_error(var18, var_l, var38); /* Direct call toolcontext#ToolContext#fatal_error on <var18:ToolContext>*/
1823 }
1824 PRINT_ERROR("Runtime error: %s", "Aborted");
1825 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 212);
1826 show_backtrace(1);
1827 } else {
1828 }
1829 var = var_res;
1830 goto RET_LABEL;
1831 RET_LABEL:;
1832 return var;
1833 }
1834 /* method modelbuilder_base#AIntrudeVisibility#mvisibility for (self: AIntrudeVisibility): MVisibility */
1835 val* nit__modelbuilder_base___AIntrudeVisibility___AVisibility__mvisibility(val* self) {
1836 val* var /* : MVisibility */;
1837 val* var1 /* : MVisibility */;
1838 {
1839 var1 = nit__model_base___standard__Object___intrude_visibility(self);
1840 }
1841 var = var1;
1842 goto RET_LABEL;
1843 RET_LABEL:;
1844 return var;
1845 }
1846 /* method modelbuilder_base#APublicVisibility#mvisibility for (self: APublicVisibility): MVisibility */
1847 val* nit__modelbuilder_base___APublicVisibility___AVisibility__mvisibility(val* self) {
1848 val* var /* : MVisibility */;
1849 val* var1 /* : MVisibility */;
1850 {
1851 var1 = nit__model_base___standard__Object___public_visibility(self);
1852 }
1853 var = var1;
1854 goto RET_LABEL;
1855 RET_LABEL:;
1856 return var;
1857 }
1858 /* method modelbuilder_base#AProtectedVisibility#mvisibility for (self: AProtectedVisibility): MVisibility */
1859 val* nit__modelbuilder_base___AProtectedVisibility___AVisibility__mvisibility(val* self) {
1860 val* var /* : MVisibility */;
1861 val* var1 /* : MVisibility */;
1862 {
1863 var1 = nit__model_base___standard__Object___protected_visibility(self);
1864 }
1865 var = var1;
1866 goto RET_LABEL;
1867 RET_LABEL:;
1868 return var;
1869 }
1870 /* method modelbuilder_base#APrivateVisibility#mvisibility for (self: APrivateVisibility): MVisibility */
1871 val* nit__modelbuilder_base___APrivateVisibility___AVisibility__mvisibility(val* self) {
1872 val* var /* : MVisibility */;
1873 val* var1 /* : MVisibility */;
1874 {
1875 var1 = nit__model_base___standard__Object___private_visibility(self);
1876 }
1877 var = var1;
1878 goto RET_LABEL;
1879 RET_LABEL:;
1880 return var;
1881 }
1882 /* method modelbuilder_base#ADoc#mdoc_cache for (self: ADoc): nullable MDoc */
1883 val* nit__modelbuilder_base___ADoc___mdoc_cache(val* self) {
1884 val* var /* : nullable MDoc */;
1885 val* var1 /* : nullable MDoc */;
1886 var1 = self->attrs[COLOR_nit__modelbuilder_base__ADoc___mdoc_cache].val; /* _mdoc_cache on <self:ADoc> */
1887 var = var1;
1888 RET_LABEL:;
1889 return var;
1890 }
1891 /* method modelbuilder_base#ADoc#mdoc_cache= for (self: ADoc, nullable MDoc) */
1892 void nit__modelbuilder_base___ADoc___mdoc_cache_61d(val* self, val* p0) {
1893 self->attrs[COLOR_nit__modelbuilder_base__ADoc___mdoc_cache].val = p0; /* _mdoc_cache on <self:ADoc> */
1894 RET_LABEL:;
1895 }
1896 /* method modelbuilder_base#ADoc#to_mdoc for (self: ADoc): MDoc */
1897 val* nit__modelbuilder_base___ADoc___to_mdoc(val* self) {
1898 val* var /* : MDoc */;
1899 val* var1 /* : nullable MDoc */;
1900 val* var3 /* : nullable MDoc */;
1901 val* var_res /* var res: nullable MDoc */;
1902 val* var4 /* : null */;
1903 short int var5 /* : Bool */;
1904 short int var6 /* : Bool */;
1905 val* var_other /* var other: nullable Object */;
1906 short int var8 /* : Bool */;
1907 short int var9 /* : Bool */;
1908 val* var10 /* : MDoc */;
1909 val* var12 /* : ANodes[TComment] */;
1910 val* var14 /* : ANodes[TComment] */;
1911 val* var_ /* var : ANodes[TComment] */;
1912 val* var15 /* : Iterator[ANode] */;
1913 val* var_16 /* var : Iterator[TComment] */;
1914 short int var17 /* : Bool */;
1915 val* var18 /* : nullable Object */;
1916 val* var_c /* var c: TComment */;
1917 val* var19 /* : String */;
1918 val* var_text /* var text: String */;
1919 long var20 /* : Int */;
1920 long var21 /* : Int */;
1921 short int var22 /* : Bool */;
1922 short int var24 /* : Bool */;
1923 int cltype;
1924 int idtype;
1925 const char* var_class_name;
1926 short int var25 /* : Bool */;
1927 val* var26 /* : Array[String] */;
1928 val* var28 /* : Array[String] */;
1929 static val* varonce;
1930 val* var29 /* : String */;
1931 char* var30 /* : NativeString */;
1932 long var31 /* : Int */;
1933 val* var32 /* : FlatString */;
1934 val* var33 /* : SequenceRead[Char] */;
1935 long var34 /* : Int */;
1936 val* var35 /* : nullable Object */;
1937 char var36 /* : Char */;
1938 short int var37 /* : Bool */;
1939 short int var39 /* : Bool */;
1940 char var40 /* : Char */;
1941 val* var41 /* : SequenceRead[Char] */;
1942 long var42 /* : Int */;
1943 val* var43 /* : nullable Object */;
1944 char var44 /* : Char */;
1945 short int var45 /* : Bool */;
1946 short int var47 /* : Bool */;
1947 char var48 /* : Char */;
1948 long var49 /* : Int */;
1949 val* var50 /* : Text */;
1950 long var51 /* : Int */;
1951 val* var52 /* : Text */;
1952 val* var53 /* : SequenceRead[Char] */;
1953 val* var54 /* : nullable Object */;
1954 char var55 /* : Char */;
1955 short int var56 /* : Bool */;
1956 short int var58 /* : Bool */;
1957 char var59 /* : Char */;
1958 long var60 /* : Int */;
1959 long var61 /* : Int */;
1960 long var62 /* : Int */;
1961 long var63 /* : Int */;
1962 short int var65 /* : Bool */;
1963 int cltype66;
1964 int idtype67;
1965 const char* var_class_name68;
1966 long var69 /* : Int */;
1967 val* var70 /* : Text */;
1968 val* var71 /* : Array[String] */;
1969 val* var73 /* : Array[String] */;
1970 {
1971 { /* Inline modelbuilder_base#ADoc#mdoc_cache (self) on <self:ADoc> */
1972 var3 = self->attrs[COLOR_nit__modelbuilder_base__ADoc___mdoc_cache].val; /* _mdoc_cache on <self:ADoc> */
1973 var1 = var3;
1974 RET_LABEL2:(void)0;
1975 }
1976 }
1977 var_res = var1;
1978 var4 = NULL;
1979 if (var_res == NULL) {
1980 var5 = 0; /* is null */
1981 } else {
1982 var5 = 1; /* arg is null and recv is not */
1983 }
1984 if (0) {
1985 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MDoc> */
1986 var_other = var4;
1987 {
1988 var8 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable MDoc(MDoc)>*/;
1989 }
1990 var9 = !var8;
1991 var6 = var9;
1992 goto RET_LABEL7;
1993 RET_LABEL7:(void)0;
1994 }
1995 var5 = var6;
1996 }
1997 if (var5){
1998 var = var_res;
1999 goto RET_LABEL;
2000 } else {
2001 }
2002 var10 = NEW_nit__MDoc(&type_nit__MDoc);
2003 {
2004 { /* Inline kernel#Object#init (var10) on <var10:MDoc> */
2005 RET_LABEL11:(void)0;
2006 }
2007 }
2008 var_res = var10;
2009 {
2010 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
2011 var14 = self->attrs[COLOR_nit__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2012 if (unlikely(var14 == NULL)) {
2013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
2014 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2515);
2015 show_backtrace(1);
2016 }
2017 var12 = var14;
2018 RET_LABEL13:(void)0;
2019 }
2020 }
2021 var_ = var12;
2022 {
2023 var15 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
2024 }
2025 var_16 = var15;
2026 for(;;) {
2027 {
2028 var17 = ((short int (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_16) /* is_ok on <var_16:Iterator[TComment]>*/;
2029 }
2030 if (var17){
2031 {
2032 var18 = ((val* (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_16) /* item on <var_16:Iterator[TComment]>*/;
2033 }
2034 var_c = var18;
2035 {
2036 var19 = nit__lexer_work___Token___text(var_c);
2037 }
2038 var_text = var19;
2039 {
2040 var20 = ((long (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__length]))(var_text) /* length on <var_text:String>*/;
2041 }
2042 var21 = 2;
2043 {
2044 { /* Inline kernel#Int#< (var20,var21) on <var20:Int> */
2045 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
2046 /* <var21:Int> isa OTHER */
2047 var24 = 1; /* easy <var21:Int> isa OTHER*/
2048 if (unlikely(!var24)) {
2049 var_class_name = type_standard__Int.name;
2050 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2051 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
2052 show_backtrace(1);
2053 }
2054 var25 = var20 < var21;
2055 var22 = var25;
2056 goto RET_LABEL23;
2057 RET_LABEL23:(void)0;
2058 }
2059 }
2060 if (var22){
2061 {
2062 { /* Inline mdoc#MDoc#content (var_res) on <var_res:nullable MDoc(MDoc)> */
2063 var28 = var_res->attrs[COLOR_nit__mdoc__MDoc___content].val; /* _content on <var_res:nullable MDoc(MDoc)> */
2064 if (unlikely(var28 == NULL)) {
2065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
2066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc, 22);
2067 show_backtrace(1);
2068 }
2069 var26 = var28;
2070 RET_LABEL27:(void)0;
2071 }
2072 }
2073 if (varonce) {
2074 var29 = varonce;
2075 } else {
2076 var30 = "";
2077 var31 = 0;
2078 var32 = standard___standard__NativeString___to_s_with_length(var30, var31);
2079 var29 = var32;
2080 varonce = var29;
2081 }
2082 {
2083 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var26, var29); /* Direct call array#Array#add on <var26:Array[String]>*/
2084 }
2085 goto BREAK_label;
2086 } else {
2087 }
2088 {
2089 var33 = ((val* (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text) /* chars on <var_text:String>*/;
2090 }
2091 var34 = 0;
2092 {
2093 var35 = ((val* (*)(val* self, long p0))(var33->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var33, var34) /* [] on <var33:SequenceRead[Char]>*/;
2094 }
2095 var36 = '#';
2096 {
2097 { /* Inline kernel#Char#== (var35,var36) on <var35:nullable Object(Char)> */
2098 var39 = (var35 != NULL) && (var35->class == &class_standard__Char);
2099 if (var39) {
2100 var40 = ((struct instance_standard__Char*)var35)->value; /* autounbox from nullable Object to Char */;
2101 var39 = (var40 == var36);
2102 }
2103 var37 = var39;
2104 goto RET_LABEL38;
2105 RET_LABEL38:(void)0;
2106 }
2107 }
2108 if (unlikely(!var37)) {
2109 PRINT_ERROR("Runtime error: %s", "Assert failed");
2110 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 250);
2111 show_backtrace(1);
2112 }
2113 {
2114 var41 = ((val* (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text) /* chars on <var_text:String>*/;
2115 }
2116 var42 = 1;
2117 {
2118 var43 = ((val* (*)(val* self, long p0))(var41->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var41, var42) /* [] on <var41:SequenceRead[Char]>*/;
2119 }
2120 var44 = ' ';
2121 {
2122 { /* Inline kernel#Char#== (var43,var44) on <var43:nullable Object(Char)> */
2123 var47 = (var43 != NULL) && (var43->class == &class_standard__Char);
2124 if (var47) {
2125 var48 = ((struct instance_standard__Char*)var43)->value; /* autounbox from nullable Object to Char */;
2126 var47 = (var48 == var44);
2127 }
2128 var45 = var47;
2129 goto RET_LABEL46;
2130 RET_LABEL46:(void)0;
2131 }
2132 }
2133 if (var45){
2134 var49 = 2;
2135 {
2136 var50 = standard___standard__Text___substring_from(var_text, var49);
2137 }
2138 var_text = var50;
2139 } else {
2140 var51 = 1;
2141 {
2142 var52 = standard___standard__Text___substring_from(var_text, var51);
2143 }
2144 var_text = var52;
2145 }
2146 {
2147 var53 = ((val* (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text) /* chars on <var_text:String>*/;
2148 }
2149 {
2150 var54 = ((val* (*)(val* self))(var53->class->vft[COLOR_standard__abstract_collection__SequenceRead__last]))(var53) /* last on <var53:SequenceRead[Char]>*/;
2151 }
2152 var55 = '\n';
2153 {
2154 { /* Inline kernel#Char#== (var54,var55) on <var54:nullable Object(Char)> */
2155 var58 = (var54 != NULL) && (var54->class == &class_standard__Char);
2156 if (var58) {
2157 var59 = ((struct instance_standard__Char*)var54)->value; /* autounbox from nullable Object to Char */;
2158 var58 = (var59 == var55);
2159 }
2160 var56 = var58;
2161 goto RET_LABEL57;
2162 RET_LABEL57:(void)0;
2163 }
2164 }
2165 if (var56){
2166 var60 = 0;
2167 {
2168 var61 = ((long (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__length]))(var_text) /* length on <var_text:String>*/;
2169 }
2170 var62 = 1;
2171 {
2172 { /* Inline kernel#Int#- (var61,var62) on <var61:Int> */
2173 /* Covariant cast for argument 0 (i) <var62:Int> isa OTHER */
2174 /* <var62:Int> isa OTHER */
2175 var65 = 1; /* easy <var62:Int> isa OTHER*/
2176 if (unlikely(!var65)) {
2177 var_class_name68 = type_standard__Int.name;
2178 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
2179 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
2180 show_backtrace(1);
2181 }
2182 var69 = var61 - var62;
2183 var63 = var69;
2184 goto RET_LABEL64;
2185 RET_LABEL64:(void)0;
2186 }
2187 }
2188 {
2189 var70 = ((val* (*)(val* self, long p0, long p1))(var_text->class->vft[COLOR_standard__string__Text__substring]))(var_text, var60, var63) /* substring on <var_text:String>*/;
2190 }
2191 var_text = var70;
2192 } else {
2193 }
2194 {
2195 { /* Inline mdoc#MDoc#content (var_res) on <var_res:nullable MDoc(MDoc)> */
2196 var73 = var_res->attrs[COLOR_nit__mdoc__MDoc___content].val; /* _content on <var_res:nullable MDoc(MDoc)> */
2197 if (unlikely(var73 == NULL)) {
2198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
2199 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc, 22);
2200 show_backtrace(1);
2201 }
2202 var71 = var73;
2203 RET_LABEL72:(void)0;
2204 }
2205 }
2206 {
2207 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var71, var_text); /* Direct call array#Array#add on <var71:Array[String]>*/
2208 }
2209 BREAK_label: (void)0;
2210 {
2211 ((void (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_16) /* next on <var_16:Iterator[TComment]>*/;
2212 }
2213 } else {
2214 goto BREAK_label74;
2215 }
2216 }
2217 BREAK_label74: (void)0;
2218 {
2219 { /* Inline abstract_collection#Iterator#finish (var_16) on <var_16:Iterator[TComment]> */
2220 RET_LABEL75:(void)0;
2221 }
2222 }
2223 {
2224 { /* Inline modelbuilder_base#ADoc#mdoc_cache= (self,var_res) on <self:ADoc> */
2225 self->attrs[COLOR_nit__modelbuilder_base__ADoc___mdoc_cache].val = var_res; /* _mdoc_cache on <self:ADoc> */
2226 RET_LABEL76:(void)0;
2227 }
2228 }
2229 var = var_res;
2230 goto RET_LABEL;
2231 RET_LABEL:;
2232 return var;
2233 }