c_src: update for new ffi syntax
[nit.git] / c_src / typing.sep.2.c
1 #include "typing.sep.0.h"
2 /* method typing#ANewExpr#accept_typing for (self: ANewExpr, TypeVisitor) */
3 void typing__ANewExpr__accept_typing(val* self, val* p0) {
4 val* var_v /* var v: TypeVisitor */;
5 val* var /* : AType */;
6 val* var1 /* : nullable MType */;
7 val* var_recvtype /* var recvtype: nullable MType */;
8 val* var2 /* : null */;
9 short int var3 /* : Bool */;
10 short int var4 /* : Bool */;
11 int cltype;
12 int idtype;
13 short int var5 /* : Bool */;
14 short int var6 /* : Bool */;
15 int cltype7;
16 int idtype8;
17 static val* varonce;
18 val* var9 /* : String */;
19 char* var10 /* : NativeString */;
20 long var11 /* : Int */;
21 val* var12 /* : String */;
22 static val* varonce13;
23 val* var14 /* : String */;
24 char* var15 /* : NativeString */;
25 long var16 /* : Int */;
26 val* var17 /* : String */;
27 val* var18 /* : Array[Object] */;
28 long var19 /* : Int */;
29 val* var20 /* : NativeArray[Object] */;
30 val* var21 /* : String */;
31 static val* varonce22;
32 val* var23 /* : String */;
33 char* var24 /* : NativeString */;
34 long var25 /* : Int */;
35 val* var26 /* : String */;
36 static val* varonce27;
37 val* var28 /* : String */;
38 char* var29 /* : NativeString */;
39 long var30 /* : Int */;
40 val* var31 /* : String */;
41 val* var32 /* : Array[Object] */;
42 long var33 /* : Int */;
43 val* var34 /* : NativeArray[Object] */;
44 val* var35 /* : String */;
45 val* var36 /* : MClass */;
46 val* var37 /* : MClassKind */;
47 val* var38 /* : MClassKind */;
48 short int var39 /* : Bool */;
49 static val* varonce40;
50 val* var41 /* : String */;
51 char* var42 /* : NativeString */;
52 long var43 /* : Int */;
53 val* var44 /* : String */;
54 static val* varonce45;
55 val* var46 /* : String */;
56 char* var47 /* : NativeString */;
57 long var48 /* : Int */;
58 val* var49 /* : String */;
59 val* var50 /* : Array[Object] */;
60 long var51 /* : Int */;
61 val* var52 /* : NativeArray[Object] */;
62 val* var53 /* : String */;
63 val* var54 /* : MClass */;
64 val* var55 /* : MClassKind */;
65 val* var56 /* : MClassKind */;
66 short int var57 /* : Bool */;
67 static val* varonce58;
68 val* var59 /* : String */;
69 char* var60 /* : NativeString */;
70 long var61 /* : Int */;
71 val* var62 /* : String */;
72 static val* varonce63;
73 val* var64 /* : String */;
74 char* var65 /* : NativeString */;
75 long var66 /* : Int */;
76 val* var67 /* : String */;
77 val* var68 /* : Array[Object] */;
78 long var69 /* : Int */;
79 val* var70 /* : NativeArray[Object] */;
80 val* var71 /* : String */;
81 val* var72 /* : nullable TId */;
82 val* var_nid /* var nid: nullable TId */;
83 val* var73 /* : null */;
84 short int var74 /* : Bool */;
85 val* var75 /* : String */;
86 val* var_name /* var name: String */;
87 static val* varonce76;
88 val* var77 /* : String */;
89 char* var78 /* : NativeString */;
90 long var79 /* : Int */;
91 val* var80 /* : String */;
92 short int var81 /* : Bool */;
93 val* var82 /* : nullable CallSite */;
94 val* var_callsite /* var callsite: nullable CallSite */;
95 val* var83 /* : null */;
96 short int var84 /* : Bool */;
97 val* var85 /* : MMethod */;
98 val* var86 /* : MClass */;
99 short int var87 /* : Bool */;
100 short int var88 /* : Bool */;
101 static val* varonce89;
102 val* var90 /* : String */;
103 char* var91 /* : NativeString */;
104 long var92 /* : Int */;
105 val* var93 /* : String */;
106 static val* varonce94;
107 val* var95 /* : String */;
108 char* var96 /* : NativeString */;
109 long var97 /* : Int */;
110 val* var98 /* : String */;
111 val* var99 /* : Array[Object] */;
112 long var100 /* : Int */;
113 val* var101 /* : NativeArray[Object] */;
114 val* var102 /* : String */;
115 val* var103 /* : AExprs */;
116 val* var104 /* : Array[AExpr] */;
117 val* var_args /* var args: Array[AExpr] */;
118 short int var105 /* : Bool */;
119 var_v = p0;
120 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANewExpr__n_type]))(self) /* n_type on <self:ANewExpr>*/;
121 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__resolve_mtype]))(var_v, var) /* resolve_mtype on <var_v:TypeVisitor>*/;
122 var_recvtype = var1;
123 var2 = NULL;
124 if (var_recvtype == NULL) {
125 var3 = 1; /* is null */
126 } else {
127 var3 = 0; /* arg is null but recv is not */
128 }
129 if (var3){
130 goto RET_LABEL;
131 } else {
132 }
133 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_recvtype) /* mtype= on <self:ANewExpr>*/;
134 /* <var_recvtype:nullable MType(MType)> isa MClassType */
135 cltype = type_model__MClassType.color;
136 idtype = type_model__MClassType.id;
137 if(cltype >= var_recvtype->type->table_size) {
138 var4 = 0;
139 } else {
140 var4 = var_recvtype->type->type_table[cltype] == idtype;
141 }
142 var5 = !var4;
143 if (var5){
144 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
145 cltype7 = type_model__MNullableType.color;
146 idtype8 = type_model__MNullableType.id;
147 if(cltype7 >= var_recvtype->type->table_size) {
148 var6 = 0;
149 } else {
150 var6 = var_recvtype->type->type_table[cltype7] == idtype8;
151 }
152 if (var6){
153 if (varonce) {
154 var9 = varonce;
155 } else {
156 var10 = "Type error: cannot instantiate the nullable type ";
157 var11 = 49;
158 var12 = string__NativeString__to_s_with_length(var10, var11);
159 var9 = var12;
160 varonce = var9;
161 }
162 if (varonce13) {
163 var14 = varonce13;
164 } else {
165 var15 = ".";
166 var16 = 1;
167 var17 = string__NativeString__to_s_with_length(var15, var16);
168 var14 = var17;
169 varonce13 = var14;
170 }
171 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
172 { /* var18 = array_instance Array[Object] */
173 var19 = 3;
174 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
175 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var9;
176 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var_recvtype;
177 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var14;
178 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
179 }
180 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
181 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var21) /* error on <var_v:TypeVisitor>*/;
182 goto RET_LABEL;
183 } else {
184 if (varonce22) {
185 var23 = varonce22;
186 } else {
187 var24 = "Type error: cannot instantiate the formal type ";
188 var25 = 47;
189 var26 = string__NativeString__to_s_with_length(var24, var25);
190 var23 = var26;
191 varonce22 = var23;
192 }
193 if (varonce27) {
194 var28 = varonce27;
195 } else {
196 var29 = ".";
197 var30 = 1;
198 var31 = string__NativeString__to_s_with_length(var29, var30);
199 var28 = var31;
200 varonce27 = var28;
201 }
202 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
203 { /* var32 = array_instance Array[Object] */
204 var33 = 3;
205 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
206 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) var23;
207 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var_recvtype;
208 ((struct instance_array__NativeArray*)var34)->values[2] = (val*) var28;
209 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
210 }
211 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
212 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var35) /* error on <var_v:TypeVisitor>*/;
213 goto RET_LABEL;
214 }
215 } else {
216 var36 = ((val* (*)(val*))(var_recvtype->class->vft[COLOR_model__MClassType__mclass]))(var_recvtype) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
217 var37 = ((val* (*)(val*))(var36->class->vft[COLOR_model__MClass__kind]))(var36) /* kind on <var36:MClass>*/;
218 var38 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__abstract_kind]))(self) /* abstract_kind on <self:ANewExpr>*/;
219 var39 = ((short int (*)(val*, val*))(var37->class->vft[COLOR_kernel__Object___61d_61d]))(var37, var38) /* == on <var37:MClassKind>*/;
220 if (var39){
221 if (varonce40) {
222 var41 = varonce40;
223 } else {
224 var42 = "Cannot instantiate abstract class ";
225 var43 = 34;
226 var44 = string__NativeString__to_s_with_length(var42, var43);
227 var41 = var44;
228 varonce40 = var41;
229 }
230 if (varonce45) {
231 var46 = varonce45;
232 } else {
233 var47 = ".";
234 var48 = 1;
235 var49 = string__NativeString__to_s_with_length(var47, var48);
236 var46 = var49;
237 varonce45 = var46;
238 }
239 var50 = NEW_array__Array(&type_array__Arraykernel__Object);
240 { /* var50 = array_instance Array[Object] */
241 var51 = 3;
242 var52 = NEW_array__NativeArray(var51, &type_array__NativeArraykernel__Object);
243 ((struct instance_array__NativeArray*)var52)->values[0] = (val*) var41;
244 ((struct instance_array__NativeArray*)var52)->values[1] = (val*) var_recvtype;
245 ((struct instance_array__NativeArray*)var52)->values[2] = (val*) var46;
246 ((void (*)(val*, val*, long))(var50->class->vft[COLOR_array__Array__with_native]))(var50, var52, var51) /* with_native on <var50:Array[Object]>*/;
247 }
248 var53 = ((val* (*)(val*))(var50->class->vft[COLOR_string__Object__to_s]))(var50) /* to_s on <var50:Array[Object]>*/;
249 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var53) /* error on <var_v:TypeVisitor>*/;
250 goto RET_LABEL;
251 } else {
252 var54 = ((val* (*)(val*))(var_recvtype->class->vft[COLOR_model__MClassType__mclass]))(var_recvtype) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
253 var55 = ((val* (*)(val*))(var54->class->vft[COLOR_model__MClass__kind]))(var54) /* kind on <var54:MClass>*/;
254 var56 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__interface_kind]))(self) /* interface_kind on <self:ANewExpr>*/;
255 var57 = ((short int (*)(val*, val*))(var55->class->vft[COLOR_kernel__Object___61d_61d]))(var55, var56) /* == on <var55:MClassKind>*/;
256 if (var57){
257 if (varonce58) {
258 var59 = varonce58;
259 } else {
260 var60 = "Cannot instantiate interface ";
261 var61 = 29;
262 var62 = string__NativeString__to_s_with_length(var60, var61);
263 var59 = var62;
264 varonce58 = var59;
265 }
266 if (varonce63) {
267 var64 = varonce63;
268 } else {
269 var65 = ".";
270 var66 = 1;
271 var67 = string__NativeString__to_s_with_length(var65, var66);
272 var64 = var67;
273 varonce63 = var64;
274 }
275 var68 = NEW_array__Array(&type_array__Arraykernel__Object);
276 { /* var68 = array_instance Array[Object] */
277 var69 = 3;
278 var70 = NEW_array__NativeArray(var69, &type_array__NativeArraykernel__Object);
279 ((struct instance_array__NativeArray*)var70)->values[0] = (val*) var59;
280 ((struct instance_array__NativeArray*)var70)->values[1] = (val*) var_recvtype;
281 ((struct instance_array__NativeArray*)var70)->values[2] = (val*) var64;
282 ((void (*)(val*, val*, long))(var68->class->vft[COLOR_array__Array__with_native]))(var68, var70, var69) /* with_native on <var68:Array[Object]>*/;
283 }
284 var71 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on <var68:Array[Object]>*/;
285 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var71) /* error on <var_v:TypeVisitor>*/;
286 goto RET_LABEL;
287 } else {
288 }
289 }
290 }
291 var72 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANewExpr__n_id]))(self) /* n_id on <self:ANewExpr>*/;
292 var_nid = var72;
293 var73 = NULL;
294 if (var_nid == NULL) {
295 var74 = 0; /* is null */
296 } else {
297 var74 = 1; /* arg is null and recv is not */
298 }
299 if (var74){
300 var75 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on <var_nid:nullable TId(TId)>*/;
301 var_name = var75;
302 } else {
303 if (varonce76) {
304 var77 = varonce76;
305 } else {
306 var78 = "init";
307 var79 = 4;
308 var80 = string__NativeString__to_s_with_length(var78, var79);
309 var77 = var80;
310 varonce76 = var77;
311 }
312 var_name = var77;
313 }
314 var81 = 0;
315 var82 = ((val* (*)(val*, val*, val*, val*, short int))(var_v->class->vft[COLOR_typing__TypeVisitor__get_method]))(var_v, self, var_recvtype, var_name, var81) /* get_method on <var_v:TypeVisitor>*/;
316 var_callsite = var82;
317 var83 = NULL;
318 if (var_callsite == NULL) {
319 var84 = 1; /* is null */
320 } else {
321 var84 = 0; /* arg is null but recv is not */
322 }
323 if (var84){
324 goto RET_LABEL;
325 } else {
326 }
327 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ANewExpr__callsite_61d]))(self, var_callsite) /* callsite= on <self:ANewExpr>*/;
328 var85 = ((val* (*)(val*))(var_callsite->class->vft[COLOR_typing__CallSite__mproperty]))(var_callsite) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
329 var86 = ((val* (*)(val*))(var_recvtype->class->vft[COLOR_model__MClassType__mclass]))(var_recvtype) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
330 var87 = ((short int (*)(val*, val*))(var85->class->vft[COLOR_model__MMethod__is_init_for]))(var85, var86) /* is_init_for on <var85:MMethod>*/;
331 var88 = !var87;
332 if (var88){
333 if (varonce89) {
334 var90 = varonce89;
335 } else {
336 var91 = "Error: ";
337 var92 = 7;
338 var93 = string__NativeString__to_s_with_length(var91, var92);
339 var90 = var93;
340 varonce89 = var90;
341 }
342 if (varonce94) {
343 var95 = varonce94;
344 } else {
345 var96 = " is not a constructor.";
346 var97 = 22;
347 var98 = string__NativeString__to_s_with_length(var96, var97);
348 var95 = var98;
349 varonce94 = var95;
350 }
351 var99 = NEW_array__Array(&type_array__Arraykernel__Object);
352 { /* var99 = array_instance Array[Object] */
353 var100 = 3;
354 var101 = NEW_array__NativeArray(var100, &type_array__NativeArraykernel__Object);
355 ((struct instance_array__NativeArray*)var101)->values[0] = (val*) var90;
356 ((struct instance_array__NativeArray*)var101)->values[1] = (val*) var_name;
357 ((struct instance_array__NativeArray*)var101)->values[2] = (val*) var95;
358 ((void (*)(val*, val*, long))(var99->class->vft[COLOR_array__Array__with_native]))(var99, var101, var100) /* with_native on <var99:Array[Object]>*/;
359 }
360 var102 = ((val* (*)(val*))(var99->class->vft[COLOR_string__Object__to_s]))(var99) /* to_s on <var99:Array[Object]>*/;
361 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var102) /* error on <var_v:TypeVisitor>*/;
362 goto RET_LABEL;
363 } else {
364 }
365 var103 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANewExpr__n_args]))(self) /* n_args on <self:ANewExpr>*/;
366 var104 = ((val* (*)(val*))(var103->class->vft[COLOR_typing__AExprs__to_a]))(var103) /* to_a on <var103:AExprs>*/;
367 var_args = var104;
368 var105 = ((short int (*)(val*, val*, val*))(var_callsite->class->vft[COLOR_typing__CallSite__check_signature]))(var_callsite, var_v, var_args) /* check_signature on <var_callsite:nullable CallSite(CallSite)>*/;
369 var105;
370 RET_LABEL:;
371 }
372 /* method typing#ANewExpr#accept_typing for (self: Object, TypeVisitor) */
373 void VIRTUAL_typing__ANewExpr__accept_typing(val* self, val* p0) {
374 typing__ANewExpr__accept_typing(self, p0);
375 RET_LABEL:;
376 }
377 /* method typing#AAttrFormExpr#mproperty for (self: AAttrFormExpr): nullable MAttribute */
378 val* typing__AAttrFormExpr__mproperty(val* self) {
379 val* var /* : nullable MAttribute */;
380 val* var1 /* : nullable MAttribute */;
381 var1 = self->attrs[COLOR_typing__AAttrFormExpr___64dmproperty].val; /* @mproperty on <self:AAttrFormExpr> */
382 var = var1;
383 RET_LABEL:;
384 return var;
385 }
386 /* method typing#AAttrFormExpr#mproperty for (self: Object): nullable MAttribute */
387 val* VIRTUAL_typing__AAttrFormExpr__mproperty(val* self) {
388 val* var /* : nullable MAttribute */;
389 val* var1 /* : nullable MAttribute */;
390 var1 = typing__AAttrFormExpr__mproperty(self);
391 var = var1;
392 RET_LABEL:;
393 return var;
394 }
395 /* method typing#AAttrFormExpr#mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
396 void typing__AAttrFormExpr__mproperty_61d(val* self, val* p0) {
397 self->attrs[COLOR_typing__AAttrFormExpr___64dmproperty].val = p0; /* @mproperty on <self:AAttrFormExpr> */
398 RET_LABEL:;
399 }
400 /* method typing#AAttrFormExpr#mproperty= for (self: Object, nullable MAttribute) */
401 void VIRTUAL_typing__AAttrFormExpr__mproperty_61d(val* self, val* p0) {
402 typing__AAttrFormExpr__mproperty_61d(self, p0);
403 RET_LABEL:;
404 }
405 /* method typing#AAttrFormExpr#attr_type for (self: AAttrFormExpr): nullable MType */
406 val* typing__AAttrFormExpr__attr_type(val* self) {
407 val* var /* : nullable MType */;
408 val* var1 /* : nullable MType */;
409 var1 = self->attrs[COLOR_typing__AAttrFormExpr___64dattr_type].val; /* @attr_type on <self:AAttrFormExpr> */
410 var = var1;
411 RET_LABEL:;
412 return var;
413 }
414 /* method typing#AAttrFormExpr#attr_type for (self: Object): nullable MType */
415 val* VIRTUAL_typing__AAttrFormExpr__attr_type(val* self) {
416 val* var /* : nullable MType */;
417 val* var1 /* : nullable MType */;
418 var1 = typing__AAttrFormExpr__attr_type(self);
419 var = var1;
420 RET_LABEL:;
421 return var;
422 }
423 /* method typing#AAttrFormExpr#attr_type= for (self: AAttrFormExpr, nullable MType) */
424 void typing__AAttrFormExpr__attr_type_61d(val* self, val* p0) {
425 self->attrs[COLOR_typing__AAttrFormExpr___64dattr_type].val = p0; /* @attr_type on <self:AAttrFormExpr> */
426 RET_LABEL:;
427 }
428 /* method typing#AAttrFormExpr#attr_type= for (self: Object, nullable MType) */
429 void VIRTUAL_typing__AAttrFormExpr__attr_type_61d(val* self, val* p0) {
430 typing__AAttrFormExpr__attr_type_61d(self, p0);
431 RET_LABEL:;
432 }
433 /* method typing#AAttrFormExpr#resolve_property for (self: AAttrFormExpr, TypeVisitor) */
434 void typing__AAttrFormExpr__resolve_property(val* self, val* p0) {
435 val* var_v /* var v: TypeVisitor */;
436 val* var /* : AExpr */;
437 val* var1 /* : nullable MType */;
438 val* var_recvtype /* var recvtype: nullable MType */;
439 val* var2 /* : null */;
440 short int var3 /* : Bool */;
441 val* var4 /* : TAttrid */;
442 val* var5 /* : String */;
443 val* var_name /* var name: String */;
444 short int var6 /* : Bool */;
445 int cltype;
446 int idtype;
447 static val* varonce;
448 val* var7 /* : String */;
449 char* var8 /* : NativeString */;
450 long var9 /* : Int */;
451 val* var10 /* : String */;
452 static val* varonce11;
453 val* var12 /* : String */;
454 char* var13 /* : NativeString */;
455 long var14 /* : Int */;
456 val* var15 /* : String */;
457 val* var16 /* : Array[Object] */;
458 long var17 /* : Int */;
459 val* var18 /* : NativeArray[Object] */;
460 val* var19 /* : String */;
461 val* var20 /* : MType */;
462 val* var_unsafe_type /* var unsafe_type: MType */;
463 val* var21 /* : nullable MProperty */;
464 val* var_mproperty /* var mproperty: nullable MProperty */;
465 val* var22 /* : null */;
466 short int var23 /* : Bool */;
467 val* var24 /* : ModelBuilder */;
468 static val* varonce25;
469 val* var26 /* : String */;
470 char* var27 /* : NativeString */;
471 long var28 /* : Int */;
472 val* var29 /* : String */;
473 static val* varonce30;
474 val* var31 /* : String */;
475 char* var32 /* : NativeString */;
476 long var33 /* : Int */;
477 val* var34 /* : String */;
478 static val* varonce35;
479 val* var36 /* : String */;
480 char* var37 /* : NativeString */;
481 long var38 /* : Int */;
482 val* var39 /* : String */;
483 val* var40 /* : Array[Object] */;
484 long var41 /* : Int */;
485 val* var42 /* : NativeArray[Object] */;
486 val* var43 /* : String */;
487 short int var44 /* : Bool */;
488 int cltype45;
489 int idtype46;
490 val* var47 /* : MModule */;
491 val* var48 /* : Array[MPropDef] */;
492 val* var_mpropdefs /* var mpropdefs: Array[MAttributeDef] */;
493 long var49 /* : Int */;
494 long var50 /* : Int */;
495 short int var51 /* : Bool */;
496 short int var53 /* : Bool */;
497 val* var54 /* : nullable Object */;
498 val* var_mpropdef /* var mpropdef: MAttributeDef */;
499 val* var55 /* : nullable MType */;
500 val* var_attr_type /* var attr_type: MType */;
501 val* var56 /* : AExpr */;
502 short int var57 /* : Bool */;
503 int cltype58;
504 int idtype59;
505 val* var60 /* : MType */;
506 var_v = p0;
507 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrFormExpr>*/;
508 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__visit_expr]))(var_v, var) /* visit_expr on <var_v:TypeVisitor>*/;
509 var_recvtype = var1;
510 var2 = NULL;
511 if (var_recvtype == NULL) {
512 var3 = 1; /* is null */
513 } else {
514 var3 = 0; /* arg is null but recv is not */
515 }
516 if (var3){
517 goto RET_LABEL;
518 } else {
519 }
520 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_id]))(self) /* n_id on <self:AAttrFormExpr>*/;
521 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_parser_nodes__Token__text]))(var4) /* text on <var4:TAttrid>*/;
522 var_name = var5;
523 /* <var_recvtype:nullable MType(MType)> isa MNullType */
524 cltype = type_model__MNullType.color;
525 idtype = type_model__MNullType.id;
526 if(cltype >= var_recvtype->type->table_size) {
527 var6 = 0;
528 } else {
529 var6 = var_recvtype->type->type_table[cltype] == idtype;
530 }
531 if (var6){
532 if (varonce) {
533 var7 = varonce;
534 } else {
535 var8 = "Error: Attribute \'";
536 var9 = 18;
537 var10 = string__NativeString__to_s_with_length(var8, var9);
538 var7 = var10;
539 varonce = var7;
540 }
541 if (varonce11) {
542 var12 = varonce11;
543 } else {
544 var13 = "\' access on \'null\'.";
545 var14 = 19;
546 var15 = string__NativeString__to_s_with_length(var13, var14);
547 var12 = var15;
548 varonce11 = var12;
549 }
550 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
551 { /* var16 = array_instance Array[Object] */
552 var17 = 3;
553 var18 = NEW_array__NativeArray(var17, &type_array__NativeArraykernel__Object);
554 ((struct instance_array__NativeArray*)var18)->values[0] = (val*) var7;
555 ((struct instance_array__NativeArray*)var18)->values[1] = (val*) var_name;
556 ((struct instance_array__NativeArray*)var18)->values[2] = (val*) var12;
557 ((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on <var16:Array[Object]>*/;
558 }
559 var19 = ((val* (*)(val*))(var16->class->vft[COLOR_string__Object__to_s]))(var16) /* to_s on <var16:Array[Object]>*/;
560 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var19) /* error on <var_v:TypeVisitor>*/;
561 goto RET_LABEL;
562 } else {
563 }
564 var20 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__anchor_to]))(var_v, var_recvtype) /* anchor_to on <var_v:TypeVisitor>*/;
565 var_unsafe_type = var20;
566 var21 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2]))(var_v, self, var_unsafe_type, var_name) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
567 var_mproperty = var21;
568 var22 = NULL;
569 if (var_mproperty == NULL) {
570 var23 = 1; /* is null */
571 } else {
572 var23 = 0; /* arg is null but recv is not */
573 }
574 if (var23){
575 var24 = ((val* (*)(val*))(var_v->class->vft[COLOR_typing__TypeVisitor__modelbuilder]))(var_v) /* modelbuilder on <var_v:TypeVisitor>*/;
576 if (varonce25) {
577 var26 = varonce25;
578 } else {
579 var27 = "Error: Attribute ";
580 var28 = 17;
581 var29 = string__NativeString__to_s_with_length(var27, var28);
582 var26 = var29;
583 varonce25 = var26;
584 }
585 if (varonce30) {
586 var31 = varonce30;
587 } else {
588 var32 = " doesn\'t exists in ";
589 var33 = 19;
590 var34 = string__NativeString__to_s_with_length(var32, var33);
591 var31 = var34;
592 varonce30 = var31;
593 }
594 if (varonce35) {
595 var36 = varonce35;
596 } else {
597 var37 = ".";
598 var38 = 1;
599 var39 = string__NativeString__to_s_with_length(var37, var38);
600 var36 = var39;
601 varonce35 = var36;
602 }
603 var40 = NEW_array__Array(&type_array__Arraykernel__Object);
604 { /* var40 = array_instance Array[Object] */
605 var41 = 5;
606 var42 = NEW_array__NativeArray(var41, &type_array__NativeArraykernel__Object);
607 ((struct instance_array__NativeArray*)var42)->values[0] = (val*) var26;
608 ((struct instance_array__NativeArray*)var42)->values[1] = (val*) var_name;
609 ((struct instance_array__NativeArray*)var42)->values[2] = (val*) var31;
610 ((struct instance_array__NativeArray*)var42)->values[3] = (val*) var_recvtype;
611 ((struct instance_array__NativeArray*)var42)->values[4] = (val*) var36;
612 ((void (*)(val*, val*, long))(var40->class->vft[COLOR_array__Array__with_native]))(var40, var42, var41) /* with_native on <var40:Array[Object]>*/;
613 }
614 var43 = ((val* (*)(val*))(var40->class->vft[COLOR_string__Object__to_s]))(var40) /* to_s on <var40:Array[Object]>*/;
615 ((void (*)(val*, val*, val*))(var24->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var24, self, var43) /* error on <var24:ModelBuilder>*/;
616 goto RET_LABEL;
617 } else {
618 }
619 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
620 cltype45 = type_model__MAttribute.color;
621 idtype46 = type_model__MAttribute.id;
622 if(cltype45 >= var_mproperty->type->table_size) {
623 var44 = 0;
624 } else {
625 var44 = var_mproperty->type->type_table[cltype45] == idtype46;
626 }
627 if (!var44) {
628 fprintf(stderr, "Runtime error: %s", "Assert failed");
629 fprintf(stderr, " (%s:%d)\n", "src/typing.nit", 1589);
630 show_backtrace(1);
631 }
632 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty_61d]))(self, var_mproperty) /* mproperty= on <self:AAttrFormExpr>*/;
633 var47 = ((val* (*)(val*))(var_v->class->vft[COLOR_typing__TypeVisitor__mmodule]))(var_v) /* mmodule on <var_v:TypeVisitor>*/;
634 var48 = ((val* (*)(val*, val*, val*))(var_mproperty->class->vft[COLOR_model__MProperty__lookup_definitions]))(var_mproperty, var47, var_unsafe_type) /* lookup_definitions on <var_mproperty:nullable MProperty(MAttribute)>*/;
635 var_mpropdefs = var48;
636 var49 = ((long (*)(val*))(var_mpropdefs->class->vft[COLOR_abstract_collection__Collection__length]))(var_mpropdefs) /* length on <var_mpropdefs:Array[MAttributeDef]>*/;
637 var50 = 1;
638 { /* Inline kernel#Int#== (var49,var50) */
639 var53 = var49 == var50;
640 var51 = var53;
641 goto RET_LABEL52;
642 RET_LABEL52:(void)0;
643 }
644 if (!var51) {
645 fprintf(stderr, "Runtime error: %s", "Assert failed");
646 fprintf(stderr, " (%s:%d)\n", "src/typing.nit", 1593);
647 show_backtrace(1);
648 }
649 var54 = ((val* (*)(val*))(var_mpropdefs->class->vft[COLOR_abstract_collection__Collection__first]))(var_mpropdefs) /* first on <var_mpropdefs:Array[MAttributeDef]>*/;
650 var_mpropdef = var54;
651 var55 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var_mpropdef) /* static_mtype on <var_mpropdef:MAttributeDef>*/;
652 if (var55 == NULL) {
653 fprintf(stderr, "Runtime error: %s", "Cast failed");
654 fprintf(stderr, " (%s:%d)\n", "src/typing.nit", 1595);
655 show_backtrace(1);
656 }
657 var_attr_type = var55;
658 var56 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrFormExpr>*/;
659 /* <var56:AExpr> isa ASelfExpr */
660 cltype58 = type_parser_nodes__ASelfExpr.color;
661 idtype59 = type_parser_nodes__ASelfExpr.id;
662 if(cltype58 >= var56->type->table_size) {
663 var57 = 0;
664 } else {
665 var57 = var56->type->type_table[cltype58] == idtype59;
666 }
667 var60 = ((val* (*)(val*, val*, val*, short int))(var_v->class->vft[COLOR_typing__TypeVisitor__resolve_for]))(var_v, var_attr_type, var_recvtype, var57) /* resolve_for on <var_v:TypeVisitor>*/;
668 var_attr_type = var60;
669 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__attr_type_61d]))(self, var_attr_type) /* attr_type= on <self:AAttrFormExpr>*/;
670 RET_LABEL:;
671 }
672 /* method typing#AAttrFormExpr#resolve_property for (self: Object, TypeVisitor) */
673 void VIRTUAL_typing__AAttrFormExpr__resolve_property(val* self, val* p0) {
674 typing__AAttrFormExpr__resolve_property(self, p0);
675 RET_LABEL:;
676 }
677 /* method typing#AAttrExpr#accept_typing for (self: AAttrExpr, TypeVisitor) */
678 void typing__AAttrExpr__accept_typing(val* self, val* p0) {
679 val* var_v /* var v: TypeVisitor */;
680 val* var /* : nullable MType */;
681 var_v = p0;
682 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__resolve_property]))(self, var_v) /* resolve_property on <self:AAttrExpr>*/;
683 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__attr_type]))(self) /* attr_type on <self:AAttrExpr>*/;
684 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var) /* mtype= on <self:AAttrExpr>*/;
685 RET_LABEL:;
686 }
687 /* method typing#AAttrExpr#accept_typing for (self: Object, TypeVisitor) */
688 void VIRTUAL_typing__AAttrExpr__accept_typing(val* self, val* p0) {
689 typing__AAttrExpr__accept_typing(self, p0);
690 RET_LABEL:;
691 }
692 /* method typing#AAttrAssignExpr#accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
693 void typing__AAttrAssignExpr__accept_typing(val* self, val* p0) {
694 val* var_v /* var v: TypeVisitor */;
695 val* var /* : nullable MType */;
696 val* var_mtype /* var mtype: nullable MType */;
697 val* var1 /* : AExpr */;
698 val* var2 /* : nullable MType */;
699 short int var3 /* : Bool */;
700 var_v = p0;
701 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__resolve_property]))(self, var_v) /* resolve_property on <self:AAttrAssignExpr>*/;
702 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__attr_type]))(self) /* attr_type on <self:AAttrAssignExpr>*/;
703 var_mtype = var;
704 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:AAttrAssignExpr>*/;
705 var2 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__visit_expr_subtype]))(var_v, var1, var_mtype) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
706 var2;
707 var3 = 1;
708 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var3) /* is_typed= on <self:AAttrAssignExpr>*/;
709 RET_LABEL:;
710 }
711 /* method typing#AAttrAssignExpr#accept_typing for (self: Object, TypeVisitor) */
712 void VIRTUAL_typing__AAttrAssignExpr__accept_typing(val* self, val* p0) {
713 typing__AAttrAssignExpr__accept_typing(self, p0);
714 RET_LABEL:;
715 }
716 /* method typing#AAttrReassignExpr#accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
717 void typing__AAttrReassignExpr__accept_typing(val* self, val* p0) {
718 val* var_v /* var v: TypeVisitor */;
719 val* var /* : nullable MType */;
720 val* var_mtype /* var mtype: nullable MType */;
721 val* var1 /* : null */;
722 short int var2 /* : Bool */;
723 val* var3 /* : nullable MType */;
724 short int var4 /* : Bool */;
725 var_v = p0;
726 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__resolve_property]))(self, var_v) /* resolve_property on <self:AAttrReassignExpr>*/;
727 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__attr_type]))(self) /* attr_type on <self:AAttrReassignExpr>*/;
728 var_mtype = var;
729 var1 = NULL;
730 if (var_mtype == NULL) {
731 var2 = 1; /* is null */
732 } else {
733 var2 = 0; /* arg is null but recv is not */
734 }
735 if (var2){
736 goto RET_LABEL;
737 } else {
738 }
739 var3 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_typing__AReassignFormExpr__resolve_reassignment]))(self, var_v, var_mtype, var_mtype) /* resolve_reassignment on <self:AAttrReassignExpr>*/;
740 var3;
741 var4 = 1;
742 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var4) /* is_typed= on <self:AAttrReassignExpr>*/;
743 RET_LABEL:;
744 }
745 /* method typing#AAttrReassignExpr#accept_typing for (self: Object, TypeVisitor) */
746 void VIRTUAL_typing__AAttrReassignExpr__accept_typing(val* self, val* p0) {
747 typing__AAttrReassignExpr__accept_typing(self, p0);
748 RET_LABEL:;
749 }
750 /* method typing#AIssetAttrExpr#accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
751 void typing__AIssetAttrExpr__accept_typing(val* self, val* p0) {
752 val* var_v /* var v: TypeVisitor */;
753 val* var /* : nullable MType */;
754 val* var_mtype /* var mtype: nullable MType */;
755 val* var1 /* : null */;
756 short int var2 /* : Bool */;
757 val* var3 /* : AExpr */;
758 val* var4 /* : nullable MType */;
759 val* var_recvtype /* var recvtype: MType */;
760 short int var5 /* : Bool */;
761 val* var6 /* : MType */;
762 val* var_bound /* var bound: MType */;
763 short int var7 /* : Bool */;
764 int cltype;
765 int idtype;
766 static val* varonce;
767 val* var8 /* : String */;
768 char* var9 /* : NativeString */;
769 long var10 /* : Int */;
770 val* var11 /* : String */;
771 val* var12 /* : nullable MType */;
772 var_v = p0;
773 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__resolve_property]))(self, var_v) /* resolve_property on <self:AIssetAttrExpr>*/;
774 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__attr_type]))(self) /* attr_type on <self:AIssetAttrExpr>*/;
775 var_mtype = var;
776 var1 = NULL;
777 if (var_mtype == NULL) {
778 var2 = 1; /* is null */
779 } else {
780 var2 = 0; /* arg is null but recv is not */
781 }
782 if (var2){
783 goto RET_LABEL;
784 } else {
785 }
786 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AIssetAttrExpr>*/;
787 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_typing__AExpr__mtype]))(var3) /* mtype on <var3:AExpr>*/;
788 if (var4 == NULL) {
789 fprintf(stderr, "Runtime error: %s", "Cast failed");
790 fprintf(stderr, " (%s:%d)\n", "src/typing.nit", 1641);
791 show_backtrace(1);
792 }
793 var_recvtype = var4;
794 var5 = 0;
795 var6 = ((val* (*)(val*, val*, val*, short int))(var_v->class->vft[COLOR_typing__TypeVisitor__resolve_for]))(var_v, var_mtype, var_recvtype, var5) /* resolve_for on <var_v:TypeVisitor>*/;
796 var_bound = var6;
797 /* <var_bound:MType> isa MNullableType */
798 cltype = type_model__MNullableType.color;
799 idtype = type_model__MNullableType.id;
800 if(cltype >= var_bound->type->table_size) {
801 var7 = 0;
802 } else {
803 var7 = var_bound->type->type_table[cltype] == idtype;
804 }
805 if (var7){
806 if (varonce) {
807 var8 = varonce;
808 } else {
809 var9 = "Error: isset on a nullable attribute.";
810 var10 = 37;
811 var11 = string__NativeString__to_s_with_length(var9, var10);
812 var8 = var11;
813 varonce = var8;
814 }
815 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__error]))(var_v, self, var8) /* error on <var_v:TypeVisitor>*/;
816 } else {
817 }
818 var12 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__type_bool]))(var_v, self) /* type_bool on <var_v:TypeVisitor>*/;
819 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var12) /* mtype= on <self:AIssetAttrExpr>*/;
820 RET_LABEL:;
821 }
822 /* method typing#AIssetAttrExpr#accept_typing for (self: Object, TypeVisitor) */
823 void VIRTUAL_typing__AIssetAttrExpr__accept_typing(val* self, val* p0) {
824 typing__AIssetAttrExpr__accept_typing(self, p0);
825 RET_LABEL:;
826 }
827 /* method typing#ADebugTypeExpr#accept_typing for (self: ADebugTypeExpr, TypeVisitor) */
828 void typing__ADebugTypeExpr__accept_typing(val* self, val* p0) {
829 val* var_v /* var v: TypeVisitor */;
830 val* var /* : AExpr */;
831 val* var1 /* : nullable MType */;
832 val* var_expr /* var expr: nullable MType */;
833 val* var2 /* : null */;
834 short int var3 /* : Bool */;
835 val* var4 /* : MType */;
836 val* var_unsafe /* var unsafe: MType */;
837 val* var5 /* : AType */;
838 val* var_ntype /* var ntype: AType */;
839 val* var6 /* : nullable MType */;
840 val* var_mtype /* var mtype: nullable MType */;
841 short int var7 /* : Bool */;
842 val* var8 /* : null */;
843 short int var9 /* : Bool */;
844 short int var_ /* var : Bool */;
845 short int var10 /* : Bool */;
846 val* var11 /* : MType */;
847 val* var_umtype /* var umtype: MType */;
848 val* var12 /* : ModelBuilder */;
849 static val* varonce;
850 val* var13 /* : String */;
851 char* var14 /* : NativeString */;
852 long var15 /* : Int */;
853 val* var16 /* : String */;
854 static val* varonce17;
855 val* var18 /* : String */;
856 char* var19 /* : NativeString */;
857 long var20 /* : Int */;
858 val* var21 /* : String */;
859 static val* varonce22;
860 val* var23 /* : String */;
861 char* var24 /* : NativeString */;
862 long var25 /* : Int */;
863 val* var26 /* : String */;
864 static val* varonce27;
865 val* var28 /* : String */;
866 char* var29 /* : NativeString */;
867 long var30 /* : Int */;
868 val* var31 /* : String */;
869 static val* varonce32;
870 val* var33 /* : String */;
871 char* var34 /* : NativeString */;
872 long var35 /* : Int */;
873 val* var36 /* : String */;
874 val* var37 /* : Array[Object] */;
875 long var38 /* : Int */;
876 val* var39 /* : NativeArray[Object] */;
877 val* var40 /* : String */;
878 short int var41 /* : Bool */;
879 var_v = p0;
880 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ADebugTypeExpr__n_expr]))(self) /* n_expr on <self:ADebugTypeExpr>*/;
881 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__visit_expr]))(var_v, var) /* visit_expr on <var_v:TypeVisitor>*/;
882 var_expr = var1;
883 var2 = NULL;
884 if (var_expr == NULL) {
885 var3 = 1; /* is null */
886 } else {
887 var3 = 0; /* arg is null but recv is not */
888 }
889 if (var3){
890 goto RET_LABEL;
891 } else {
892 }
893 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__anchor_to]))(var_v, var_expr) /* anchor_to on <var_v:TypeVisitor>*/;
894 var_unsafe = var4;
895 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ADebugTypeExpr__n_type]))(self) /* n_type on <self:ADebugTypeExpr>*/;
896 var_ntype = var5;
897 var6 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__resolve_mtype]))(var_v, var_ntype) /* resolve_mtype on <var_v:TypeVisitor>*/;
898 var_mtype = var6;
899 var8 = NULL;
900 if (var_mtype == NULL) {
901 var9 = 0; /* is null */
902 } else {
903 var9 = 1; /* arg is null and recv is not */
904 }
905 var_ = var9;
906 if (var9){
907 var10 = ((short int (*)(val*, val*))(var_mtype->class->vft[COLOR_kernel__Object___33d_61d]))(var_mtype, var_expr) /* != on <var_mtype:nullable MType(MType)>*/;
908 var7 = var10;
909 } else {
910 var7 = var_;
911 }
912 if (var7){
913 var11 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_typing__TypeVisitor__anchor_to]))(var_v, var_mtype) /* anchor_to on <var_v:TypeVisitor>*/;
914 var_umtype = var11;
915 var12 = ((val* (*)(val*))(var_v->class->vft[COLOR_typing__TypeVisitor__modelbuilder]))(var_v) /* modelbuilder on <var_v:TypeVisitor>*/;
916 if (varonce) {
917 var13 = varonce;
918 } else {
919 var14 = "Found type ";
920 var15 = 11;
921 var16 = string__NativeString__to_s_with_length(var14, var15);
922 var13 = var16;
923 varonce = var13;
924 }
925 if (varonce17) {
926 var18 = varonce17;
927 } else {
928 var19 = " (-> ";
929 var20 = 5;
930 var21 = string__NativeString__to_s_with_length(var19, var20);
931 var18 = var21;
932 varonce17 = var18;
933 }
934 if (varonce22) {
935 var23 = varonce22;
936 } else {
937 var24 = "), expected ";
938 var25 = 12;
939 var26 = string__NativeString__to_s_with_length(var24, var25);
940 var23 = var26;
941 varonce22 = var23;
942 }
943 if (varonce27) {
944 var28 = varonce27;
945 } else {
946 var29 = " (-> ";
947 var30 = 5;
948 var31 = string__NativeString__to_s_with_length(var29, var30);
949 var28 = var31;
950 varonce27 = var28;
951 }
952 if (varonce32) {
953 var33 = varonce32;
954 } else {
955 var34 = ")";
956 var35 = 1;
957 var36 = string__NativeString__to_s_with_length(var34, var35);
958 var33 = var36;
959 varonce32 = var33;
960 }
961 var37 = NEW_array__Array(&type_array__Arraykernel__Object);
962 { /* var37 = array_instance Array[Object] */
963 var38 = 9;
964 var39 = NEW_array__NativeArray(var38, &type_array__NativeArraykernel__Object);
965 ((struct instance_array__NativeArray*)var39)->values[0] = (val*) var13;
966 ((struct instance_array__NativeArray*)var39)->values[1] = (val*) var_expr;
967 ((struct instance_array__NativeArray*)var39)->values[2] = (val*) var18;
968 ((struct instance_array__NativeArray*)var39)->values[3] = (val*) var_unsafe;
969 ((struct instance_array__NativeArray*)var39)->values[4] = (val*) var23;
970 ((struct instance_array__NativeArray*)var39)->values[5] = (val*) var_mtype;
971 ((struct instance_array__NativeArray*)var39)->values[6] = (val*) var28;
972 ((struct instance_array__NativeArray*)var39)->values[7] = (val*) var_umtype;
973 ((struct instance_array__NativeArray*)var39)->values[8] = (val*) var33;
974 ((void (*)(val*, val*, long))(var37->class->vft[COLOR_array__Array__with_native]))(var37, var39, var38) /* with_native on <var37:Array[Object]>*/;
975 }
976 var40 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on <var37:Array[Object]>*/;
977 ((void (*)(val*, val*, val*))(var12->class->vft[COLOR_modelbuilder__ModelBuilder__warning]))(var12, self, var40) /* warning on <var12:ModelBuilder>*/;
978 } else {
979 }
980 var41 = 1;
981 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var41) /* is_typed= on <self:ADebugTypeExpr>*/;
982 RET_LABEL:;
983 }
984 /* method typing#ADebugTypeExpr#accept_typing for (self: Object, TypeVisitor) */
985 void VIRTUAL_typing__ADebugTypeExpr__accept_typing(val* self, val* p0) {
986 typing__ADebugTypeExpr__accept_typing(self, p0);
987 RET_LABEL:;
988 }