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 */;
13 short int var5
/* : Bool */;
14 short int var6
/* : Bool */;
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
/* : nullable TId */;
46 val
* var_nid
/* var nid: nullable TId */;
47 val
* var37
/* : null */;
48 short int var38
/* : Bool */;
49 val
* var39
/* : String */;
50 val
* var_name
/* var name: String */;
51 static val
* varonce40
;
52 val
* var41
/* : String */;
53 char* var42
/* : NativeString */;
54 long var43
/* : Int */;
55 val
* var44
/* : String */;
56 short int var45
/* : Bool */;
57 val
* var46
/* : nullable CallSite */;
58 val
* var_callsite
/* var callsite: nullable CallSite */;
59 val
* var47
/* : null */;
60 short int var48
/* : Bool */;
61 val
* var49
/* : MMethod */;
62 val
* var50
/* : MClass */;
63 short int var51
/* : Bool */;
64 short int var52
/* : Bool */;
65 static val
* varonce53
;
66 val
* var54
/* : String */;
67 char* var55
/* : NativeString */;
68 long var56
/* : Int */;
69 val
* var57
/* : String */;
70 static val
* varonce58
;
71 val
* var59
/* : String */;
72 char* var60
/* : NativeString */;
73 long var61
/* : Int */;
74 val
* var62
/* : String */;
75 val
* var63
/* : Array[Object] */;
76 long var64
/* : Int */;
77 val
* var65
/* : NativeArray[Object] */;
78 val
* var66
/* : String */;
79 val
* var67
/* : AExprs */;
80 val
* var68
/* : Array[AExpr] */;
81 val
* var_args
/* var args: Array[AExpr] */;
82 short int var69
/* : Bool */;
84 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_type
]))(self
) /* n_type on <self:ANewExpr>*/;
85 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var
) /* resolve_mtype on <var_v:TypeVisitor>*/;
88 if (var_recvtype
== NULL
) {
89 var3
= 1; /* is null */
91 var3
= 0; /* arg is null but recv is not */
97 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_recvtype
) /* mtype= on <self:ANewExpr>*/;
98 /* <var_recvtype:nullable MType(MType)> isa MClassType */
99 cltype
= type_model__MClassType
.color
;
100 idtype
= type_model__MClassType
.id
;
101 if(cltype
>= var_recvtype
->type
->table_size
) {
104 var4
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
108 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
109 cltype7
= type_model__MNullableType
.color
;
110 idtype8
= type_model__MNullableType
.id
;
111 if(cltype7
>= var_recvtype
->type
->table_size
) {
114 var6
= var_recvtype
->type
->type_table
[cltype7
] == idtype8
;
120 var10
= "Type error: cannot instantiate the nullable type ";
122 var12
= string__NativeString__to_s_with_length(var10
, var11
);
131 var17
= string__NativeString__to_s_with_length(var15
, var16
);
135 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
136 { /* var18 = array_instance Array[Object] */
138 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
139 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var9
;
140 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_recvtype
;
141 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var14
;
142 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
143 CHECK_NEW_array__Array(var18
);
145 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
146 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var21
) /* error on <var_v:TypeVisitor>*/;
152 var24
= "Type error: cannot instantiate the formal type ";
154 var26
= string__NativeString__to_s_with_length(var24
, var25
);
163 var31
= string__NativeString__to_s_with_length(var29
, var30
);
167 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
168 { /* var32 = array_instance Array[Object] */
170 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
171 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
172 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_recvtype
;
173 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
174 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
175 CHECK_NEW_array__Array(var32
);
177 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
178 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var35
) /* error on <var_v:TypeVisitor>*/;
183 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_id
]))(self
) /* n_id on <self:ANewExpr>*/;
186 if (var_nid
== NULL
) {
187 var38
= 0; /* is null */
189 var38
= 1; /* arg is null and recv is not */
192 var39
= ((val
* (*)(val
*))(var_nid
->class->vft
[COLOR_parser_nodes__Token__text
]))(var_nid
) /* text on <var_nid:nullable TId(TId)>*/;
200 var44
= string__NativeString__to_s_with_length(var42
, var43
);
207 var46
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_recvtype
, var_name
, var45
) /* get_method on <var_v:TypeVisitor>*/;
208 var_callsite
= var46
;
210 if (var_callsite
== NULL
) {
211 var48
= 1; /* is null */
213 var48
= 0; /* arg is null but recv is not */
219 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANewExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ANewExpr>*/;
220 var49
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
221 var50
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
222 var51
= ((short int (*)(val
*, val
*))(var49
->class->vft
[COLOR_model__MMethod__is_init_for
]))(var49
, var50
) /* is_init_for on <var49:MMethod>*/;
230 var57
= string__NativeString__to_s_with_length(var55
, var56
);
237 var60
= " is not a constructor.";
239 var62
= string__NativeString__to_s_with_length(var60
, var61
);
243 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
244 { /* var63 = array_instance Array[Object] */
246 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
247 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
248 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var_name
;
249 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
250 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
251 CHECK_NEW_array__Array(var63
);
253 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
254 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var66
) /* error on <var_v:TypeVisitor>*/;
258 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_args
]))(self
) /* n_args on <self:ANewExpr>*/;
259 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_typing__AExprs__to_a
]))(var67
) /* to_a on <var67:AExprs>*/;
261 var69
= ((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)>*/;
265 /* method typing#ANewExpr#accept_typing for (self: Object, TypeVisitor) */
266 void VIRTUAL_typing__ANewExpr__accept_typing(val
* self
, val
* p0
) {
267 typing__ANewExpr__accept_typing(self
, p0
);
270 /* method typing#AAttrFormExpr#mproperty for (self: AAttrFormExpr): nullable MAttribute */
271 val
* typing__AAttrFormExpr__mproperty(val
* self
) {
272 val
* var
/* : nullable MAttribute */;
273 val
* var1
/* : nullable MAttribute */;
274 var1
= self
->attrs
[COLOR_typing__AAttrFormExpr___64dmproperty
].val
; /* @mproperty on <self:AAttrFormExpr> */
279 /* method typing#AAttrFormExpr#mproperty for (self: Object): nullable MAttribute */
280 val
* VIRTUAL_typing__AAttrFormExpr__mproperty(val
* self
) {
281 val
* var
/* : nullable MAttribute */;
282 val
* var1
/* : nullable MAttribute */;
283 var1
= typing__AAttrFormExpr__mproperty(self
);
288 /* method typing#AAttrFormExpr#mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
289 void typing__AAttrFormExpr__mproperty_61d(val
* self
, val
* p0
) {
290 self
->attrs
[COLOR_typing__AAttrFormExpr___64dmproperty
].val
= p0
; /* @mproperty on <self:AAttrFormExpr> */
293 /* method typing#AAttrFormExpr#mproperty= for (self: Object, nullable MAttribute) */
294 void VIRTUAL_typing__AAttrFormExpr__mproperty_61d(val
* self
, val
* p0
) {
295 typing__AAttrFormExpr__mproperty_61d(self
, p0
);
298 /* method typing#AAttrFormExpr#attr_type for (self: AAttrFormExpr): nullable MType */
299 val
* typing__AAttrFormExpr__attr_type(val
* self
) {
300 val
* var
/* : nullable MType */;
301 val
* var1
/* : nullable MType */;
302 var1
= self
->attrs
[COLOR_typing__AAttrFormExpr___64dattr_type
].val
; /* @attr_type on <self:AAttrFormExpr> */
307 /* method typing#AAttrFormExpr#attr_type for (self: Object): nullable MType */
308 val
* VIRTUAL_typing__AAttrFormExpr__attr_type(val
* self
) {
309 val
* var
/* : nullable MType */;
310 val
* var1
/* : nullable MType */;
311 var1
= typing__AAttrFormExpr__attr_type(self
);
316 /* method typing#AAttrFormExpr#attr_type= for (self: AAttrFormExpr, nullable MType) */
317 void typing__AAttrFormExpr__attr_type_61d(val
* self
, val
* p0
) {
318 self
->attrs
[COLOR_typing__AAttrFormExpr___64dattr_type
].val
= p0
; /* @attr_type on <self:AAttrFormExpr> */
321 /* method typing#AAttrFormExpr#attr_type= for (self: Object, nullable MType) */
322 void VIRTUAL_typing__AAttrFormExpr__attr_type_61d(val
* self
, val
* p0
) {
323 typing__AAttrFormExpr__attr_type_61d(self
, p0
);
326 /* method typing#AAttrFormExpr#resolve_property for (self: AAttrFormExpr, TypeVisitor) */
327 void typing__AAttrFormExpr__resolve_property(val
* self
, val
* p0
) {
328 val
* var_v
/* var v: TypeVisitor */;
329 val
* var
/* : AExpr */;
330 val
* var1
/* : nullable MType */;
331 val
* var_recvtype
/* var recvtype: nullable MType */;
332 val
* var2
/* : null */;
333 short int var3
/* : Bool */;
334 val
* var4
/* : TAttrid */;
335 val
* var5
/* : String */;
336 val
* var_name
/* var name: String */;
337 short int var6
/* : Bool */;
341 val
* var7
/* : String */;
342 char* var8
/* : NativeString */;
343 long var9
/* : Int */;
344 val
* var10
/* : String */;
345 static val
* varonce11
;
346 val
* var12
/* : String */;
347 char* var13
/* : NativeString */;
348 long var14
/* : Int */;
349 val
* var15
/* : String */;
350 val
* var16
/* : Array[Object] */;
351 long var17
/* : Int */;
352 val
* var18
/* : NativeArray[Object] */;
353 val
* var19
/* : String */;
354 val
* var20
/* : MType */;
355 val
* var_unsafe_type
/* var unsafe_type: MType */;
356 val
* var21
/* : nullable MProperty */;
357 val
* var_mproperty
/* var mproperty: nullable MProperty */;
358 val
* var22
/* : null */;
359 short int var23
/* : Bool */;
360 val
* var24
/* : ModelBuilder */;
361 static val
* varonce25
;
362 val
* var26
/* : String */;
363 char* var27
/* : NativeString */;
364 long var28
/* : Int */;
365 val
* var29
/* : String */;
366 static val
* varonce30
;
367 val
* var31
/* : String */;
368 char* var32
/* : NativeString */;
369 long var33
/* : Int */;
370 val
* var34
/* : String */;
371 static val
* varonce35
;
372 val
* var36
/* : String */;
373 char* var37
/* : NativeString */;
374 long var38
/* : Int */;
375 val
* var39
/* : String */;
376 val
* var40
/* : Array[Object] */;
377 long var41
/* : Int */;
378 val
* var42
/* : NativeArray[Object] */;
379 val
* var43
/* : String */;
380 short int var44
/* : Bool */;
383 val
* var47
/* : MModule */;
384 val
* var48
/* : Array[MPropDef] */;
385 val
* var_mpropdefs
/* var mpropdefs: Array[MAttributeDef] */;
386 long var49
/* : Int */;
387 long var50
/* : Int */;
388 short int var51
/* : Bool */;
389 short int var53
/* : Bool */;
390 val
* var54
/* : nullable Object */;
391 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
392 val
* var55
/* : nullable MType */;
393 val
* var_attr_type
/* var attr_type: MType */;
394 val
* var56
/* : AExpr */;
395 short int var57
/* : Bool */;
398 val
* var60
/* : MType */;
400 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrFormExpr>*/;
401 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
404 if (var_recvtype
== NULL
) {
405 var3
= 1; /* is null */
407 var3
= 0; /* arg is null but recv is not */
413 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_id
]))(self
) /* n_id on <self:AAttrFormExpr>*/;
414 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_parser_nodes__Token__text
]))(var4
) /* text on <var4:TAttrid>*/;
416 /* <var_recvtype:nullable MType(MType)> isa MNullType */
417 cltype
= type_model__MNullType
.color
;
418 idtype
= type_model__MNullType
.id
;
419 if(cltype
>= var_recvtype
->type
->table_size
) {
422 var6
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
428 var8
= "Error: Attribute \'";
430 var10
= string__NativeString__to_s_with_length(var8
, var9
);
437 var13
= "\' access on \'null\'.";
439 var15
= string__NativeString__to_s_with_length(var13
, var14
);
443 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
444 { /* var16 = array_instance Array[Object] */
446 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
447 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
448 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_name
;
449 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
450 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
451 CHECK_NEW_array__Array(var16
);
453 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
454 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var19
) /* error on <var_v:TypeVisitor>*/;
458 var20
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_recvtype
) /* anchor_to on <var_v:TypeVisitor>*/;
459 var_unsafe_type
= var20
;
460 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>*/;
461 var_mproperty
= var21
;
463 if (var_mproperty
== NULL
) {
464 var23
= 1; /* is null */
466 var23
= 0; /* arg is null but recv is not */
469 var24
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
473 var27
= "Error: Attribute ";
475 var29
= string__NativeString__to_s_with_length(var27
, var28
);
482 var32
= " doesn\'t exists in ";
484 var34
= string__NativeString__to_s_with_length(var32
, var33
);
493 var39
= string__NativeString__to_s_with_length(var37
, var38
);
497 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
498 { /* var40 = array_instance Array[Object] */
500 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
501 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var26
;
502 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_name
;
503 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var31
;
504 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var_recvtype
;
505 ((struct instance_array__NativeArray
*)var42
)->values
[4] = (val
*) var36
;
506 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
507 CHECK_NEW_array__Array(var40
);
509 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
510 ((void (*)(val
*, val
*, val
*))(var24
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var24
, self
, var43
) /* error on <var24:ModelBuilder>*/;
514 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
515 cltype45
= type_model__MAttribute
.color
;
516 idtype46
= type_model__MAttribute
.id
;
517 if(cltype45
>= var_mproperty
->type
->table_size
) {
520 var44
= var_mproperty
->type
->type_table
[cltype45
] == idtype46
;
523 fprintf(stderr
, "Runtime error: %s", "Assert failed");
524 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1579);
527 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__mproperty_61d
]))(self
, var_mproperty
) /* mproperty= on <self:AAttrFormExpr>*/;
528 var47
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
529 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)>*/;
530 var_mpropdefs
= var48
;
531 var49
= ((long (*)(val
*))(var_mpropdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mpropdefs
) /* length on <var_mpropdefs:Array[MAttributeDef]>*/;
533 { /* Inline kernel#Int#== (var49,var50) */
534 var53
= var49
== var50
;
540 fprintf(stderr
, "Runtime error: %s", "Assert failed");
541 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1583);
544 var54
= ((val
* (*)(val
*))(var_mpropdefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_mpropdefs
) /* first on <var_mpropdefs:Array[MAttributeDef]>*/;
545 var_mpropdef
= var54
;
546 var55
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var_mpropdef
) /* static_mtype on <var_mpropdef:MAttributeDef>*/;
548 fprintf(stderr
, "Runtime error: %s", "Cast failed");
549 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1585);
552 var_attr_type
= var55
;
553 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrFormExpr>*/;
554 /* <var56:AExpr> isa ASelfExpr */
555 cltype58
= type_parser_nodes__ASelfExpr
.color
;
556 idtype59
= type_parser_nodes__ASelfExpr
.id
;
557 if(cltype58
>= var56
->type
->table_size
) {
560 var57
= var56
->type
->type_table
[cltype58
] == idtype59
;
562 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>*/;
563 var_attr_type
= var60
;
564 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type_61d
]))(self
, var_attr_type
) /* attr_type= on <self:AAttrFormExpr>*/;
567 /* method typing#AAttrFormExpr#resolve_property for (self: Object, TypeVisitor) */
568 void VIRTUAL_typing__AAttrFormExpr__resolve_property(val
* self
, val
* p0
) {
569 typing__AAttrFormExpr__resolve_property(self
, p0
);
572 /* method typing#AAttrExpr#accept_typing for (self: AAttrExpr, TypeVisitor) */
573 void typing__AAttrExpr__accept_typing(val
* self
, val
* p0
) {
574 val
* var_v
/* var v: TypeVisitor */;
575 val
* var
/* : nullable MType */;
577 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AAttrExpr>*/;
578 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AAttrExpr>*/;
579 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:AAttrExpr>*/;
582 /* method typing#AAttrExpr#accept_typing for (self: Object, TypeVisitor) */
583 void VIRTUAL_typing__AAttrExpr__accept_typing(val
* self
, val
* p0
) {
584 typing__AAttrExpr__accept_typing(self
, p0
);
587 /* method typing#AAttrAssignExpr#accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
588 void typing__AAttrAssignExpr__accept_typing(val
* self
, val
* p0
) {
589 val
* var_v
/* var v: TypeVisitor */;
590 val
* var
/* : nullable MType */;
591 val
* var_mtype
/* var mtype: nullable MType */;
592 val
* var1
/* : AExpr */;
593 val
* var2
/* : nullable MType */;
594 short int var3
/* : Bool */;
596 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AAttrAssignExpr>*/;
597 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AAttrAssignExpr>*/;
599 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AAttrAssignExpr>*/;
600 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>*/;
603 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAttrAssignExpr>*/;
606 /* method typing#AAttrAssignExpr#accept_typing for (self: Object, TypeVisitor) */
607 void VIRTUAL_typing__AAttrAssignExpr__accept_typing(val
* self
, val
* p0
) {
608 typing__AAttrAssignExpr__accept_typing(self
, p0
);
611 /* method typing#AAttrReassignExpr#accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
612 void typing__AAttrReassignExpr__accept_typing(val
* self
, val
* p0
) {
613 val
* var_v
/* var v: TypeVisitor */;
614 val
* var
/* : nullable MType */;
615 val
* var_mtype
/* var mtype: nullable MType */;
616 val
* var1
/* : null */;
617 short int var2
/* : Bool */;
618 val
* var3
/* : nullable MType */;
619 short int var4
/* : Bool */;
621 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AAttrReassignExpr>*/;
622 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AAttrReassignExpr>*/;
625 if (var_mtype
== NULL
) {
626 var2
= 1; /* is null */
628 var2
= 0; /* arg is null but recv is not */
634 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>*/;
637 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AAttrReassignExpr>*/;
640 /* method typing#AAttrReassignExpr#accept_typing for (self: Object, TypeVisitor) */
641 void VIRTUAL_typing__AAttrReassignExpr__accept_typing(val
* self
, val
* p0
) {
642 typing__AAttrReassignExpr__accept_typing(self
, p0
);
645 /* method typing#AIssetAttrExpr#accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
646 void typing__AIssetAttrExpr__accept_typing(val
* self
, val
* p0
) {
647 val
* var_v
/* var v: TypeVisitor */;
648 val
* var
/* : nullable MType */;
649 val
* var_mtype
/* var mtype: nullable MType */;
650 val
* var1
/* : null */;
651 short int var2
/* : Bool */;
652 val
* var3
/* : AExpr */;
653 val
* var4
/* : nullable MType */;
654 val
* var_recvtype
/* var recvtype: MType */;
655 short int var5
/* : Bool */;
656 val
* var6
/* : MType */;
657 val
* var_bound
/* var bound: MType */;
658 short int var7
/* : Bool */;
662 val
* var8
/* : String */;
663 char* var9
/* : NativeString */;
664 long var10
/* : Int */;
665 val
* var11
/* : String */;
666 val
* var12
/* : nullable MType */;
668 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AIssetAttrExpr>*/;
669 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AIssetAttrExpr>*/;
672 if (var_mtype
== NULL
) {
673 var2
= 1; /* is null */
675 var2
= 0; /* arg is null but recv is not */
681 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AIssetAttrExpr>*/;
682 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_typing__AExpr__mtype
]))(var3
) /* mtype on <var3:AExpr>*/;
684 fprintf(stderr
, "Runtime error: %s", "Cast failed");
685 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1631);
690 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>*/;
692 /* <var_bound:MType> isa MNullableType */
693 cltype
= type_model__MNullableType
.color
;
694 idtype
= type_model__MNullableType
.id
;
695 if(cltype
>= var_bound
->type
->table_size
) {
698 var7
= var_bound
->type
->type_table
[cltype
] == idtype
;
704 var9
= "Error: isset on a nullable attribute.";
706 var11
= string__NativeString__to_s_with_length(var9
, var10
);
710 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
713 var12
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
714 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var12
) /* mtype= on <self:AIssetAttrExpr>*/;
717 /* method typing#AIssetAttrExpr#accept_typing for (self: Object, TypeVisitor) */
718 void VIRTUAL_typing__AIssetAttrExpr__accept_typing(val
* self
, val
* p0
) {
719 typing__AIssetAttrExpr__accept_typing(self
, p0
);
722 /* method typing#ADebugTypeExpr#accept_typing for (self: ADebugTypeExpr, TypeVisitor) */
723 void typing__ADebugTypeExpr__accept_typing(val
* self
, val
* p0
) {
724 val
* var_v
/* var v: TypeVisitor */;
725 val
* var
/* : AExpr */;
726 val
* var1
/* : nullable MType */;
727 val
* var_expr
/* var expr: nullable MType */;
728 val
* var2
/* : null */;
729 short int var3
/* : Bool */;
730 val
* var4
/* : MType */;
731 val
* var_unsafe
/* var unsafe: MType */;
732 val
* var5
/* : AType */;
733 val
* var_ntype
/* var ntype: AType */;
734 val
* var6
/* : nullable MType */;
735 val
* var_mtype
/* var mtype: nullable MType */;
736 short int var7
/* : Bool */;
737 val
* var8
/* : null */;
738 short int var9
/* : Bool */;
739 short int var_
/* var : Bool */;
740 short int var10
/* : Bool */;
741 val
* var11
/* : MType */;
742 val
* var_umtype
/* var umtype: MType */;
743 val
* var12
/* : ModelBuilder */;
745 val
* var13
/* : String */;
746 char* var14
/* : NativeString */;
747 long var15
/* : Int */;
748 val
* var16
/* : String */;
749 static val
* varonce17
;
750 val
* var18
/* : String */;
751 char* var19
/* : NativeString */;
752 long var20
/* : Int */;
753 val
* var21
/* : String */;
754 static val
* varonce22
;
755 val
* var23
/* : String */;
756 char* var24
/* : NativeString */;
757 long var25
/* : Int */;
758 val
* var26
/* : String */;
759 static val
* varonce27
;
760 val
* var28
/* : String */;
761 char* var29
/* : NativeString */;
762 long var30
/* : Int */;
763 val
* var31
/* : String */;
764 static val
* varonce32
;
765 val
* var33
/* : String */;
766 char* var34
/* : NativeString */;
767 long var35
/* : Int */;
768 val
* var36
/* : String */;
769 val
* var37
/* : Array[Object] */;
770 long var38
/* : Int */;
771 val
* var39
/* : NativeArray[Object] */;
772 val
* var40
/* : String */;
773 short int var41
/* : Bool */;
775 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADebugTypeExpr__n_expr
]))(self
) /* n_expr on <self:ADebugTypeExpr>*/;
776 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
779 if (var_expr
== NULL
) {
780 var3
= 1; /* is null */
782 var3
= 0; /* arg is null but recv is not */
788 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_expr
) /* anchor_to on <var_v:TypeVisitor>*/;
790 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADebugTypeExpr__n_type
]))(self
) /* n_type on <self:ADebugTypeExpr>*/;
792 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
795 if (var_mtype
== NULL
) {
796 var9
= 0; /* is null */
798 var9
= 1; /* arg is null and recv is not */
802 var10
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_mtype
, var_expr
) /* != on <var_mtype:nullable MType(MType)>*/;
808 var11
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
810 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
814 var14
= "Found type ";
816 var16
= string__NativeString__to_s_with_length(var14
, var15
);
825 var21
= string__NativeString__to_s_with_length(var19
, var20
);
832 var24
= "), expected ";
834 var26
= string__NativeString__to_s_with_length(var24
, var25
);
843 var31
= string__NativeString__to_s_with_length(var29
, var30
);
852 var36
= string__NativeString__to_s_with_length(var34
, var35
);
856 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
857 { /* var37 = array_instance Array[Object] */
859 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
860 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var13
;
861 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_expr
;
862 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var18
;
863 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var_unsafe
;
864 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var23
;
865 ((struct instance_array__NativeArray
*)var39
)->values
[5] = (val
*) var_mtype
;
866 ((struct instance_array__NativeArray
*)var39
)->values
[6] = (val
*) var28
;
867 ((struct instance_array__NativeArray
*)var39
)->values
[7] = (val
*) var_umtype
;
868 ((struct instance_array__NativeArray
*)var39
)->values
[8] = (val
*) var33
;
869 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
870 CHECK_NEW_array__Array(var37
);
872 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
873 ((void (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var12
, self
, var40
) /* warning on <var12:ModelBuilder>*/;
877 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var41
) /* is_typed= on <self:ADebugTypeExpr>*/;
880 /* method typing#ADebugTypeExpr#accept_typing for (self: Object, TypeVisitor) */
881 void VIRTUAL_typing__ADebugTypeExpr__accept_typing(val
* self
, val
* p0
) {
882 typing__ADebugTypeExpr__accept_typing(self
, p0
);