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
/* : 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 */;
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>*/;
124 if (var_recvtype
== NULL
) {
125 var3
= 1; /* is null */
127 var3
= 0; /* arg is null but recv is not */
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
) {
140 var4
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
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
) {
150 var6
= var_recvtype
->type
->type_table
[cltype7
] == idtype8
;
156 var10
= "Type error: cannot instantiate the nullable type ";
158 var12
= string__NativeString__to_s_with_length(var10
, var11
);
167 var17
= string__NativeString__to_s_with_length(var15
, var16
);
171 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
172 { /* var18 = array_instance Array[Object] */
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]>*/;
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>*/;
187 var24
= "Type error: cannot instantiate the formal type ";
189 var26
= string__NativeString__to_s_with_length(var24
, var25
);
198 var31
= string__NativeString__to_s_with_length(var29
, var30
);
202 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
203 { /* var32 = array_instance Array[Object] */
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]>*/;
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>*/;
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>*/;
224 var42
= "Cannot instantiate abstract class ";
226 var44
= string__NativeString__to_s_with_length(var42
, var43
);
235 var49
= string__NativeString__to_s_with_length(var47
, var48
);
239 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
240 { /* var50 = array_instance Array[Object] */
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]>*/;
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>*/;
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>*/;
260 var60
= "Cannot instantiate interface ";
262 var62
= string__NativeString__to_s_with_length(var60
, var61
);
271 var67
= string__NativeString__to_s_with_length(var65
, var66
);
275 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
276 { /* var68 = array_instance Array[Object] */
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]>*/;
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>*/;
291 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_id
]))(self
) /* n_id on <self:ANewExpr>*/;
294 if (var_nid
== NULL
) {
295 var74
= 0; /* is null */
297 var74
= 1; /* arg is null and recv is not */
300 var75
= ((val
* (*)(val
*))(var_nid
->class->vft
[COLOR_parser_nodes__Token__text
]))(var_nid
) /* text on <var_nid:nullable TId(TId)>*/;
308 var80
= string__NativeString__to_s_with_length(var78
, var79
);
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
;
318 if (var_callsite
== NULL
) {
319 var84
= 1; /* is null */
321 var84
= 0; /* arg is null but recv is not */
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>*/;
338 var93
= string__NativeString__to_s_with_length(var91
, var92
);
345 var96
= " is not a constructor.";
347 var98
= string__NativeString__to_s_with_length(var96
, var97
);
351 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
352 { /* var99 = array_instance Array[Object] */
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]>*/;
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>*/;
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>*/;
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)>*/;
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
);
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> */
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
);
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> */
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
);
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> */
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
);
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> */
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
);
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 */;
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 */;
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 */;
505 val
* var60
/* : MType */;
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>*/;
511 if (var_recvtype
== NULL
) {
512 var3
= 1; /* is null */
514 var3
= 0; /* arg is null but recv is not */
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>*/;
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
) {
529 var6
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
535 var8
= "Error: Attribute \'";
537 var10
= string__NativeString__to_s_with_length(var8
, var9
);
544 var13
= "\' access on \'null\'.";
546 var15
= string__NativeString__to_s_with_length(var13
, var14
);
550 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
551 { /* var16 = array_instance Array[Object] */
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]>*/;
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>*/;
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
;
569 if (var_mproperty
== NULL
) {
570 var23
= 1; /* is null */
572 var23
= 0; /* arg is null but recv is not */
575 var24
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
579 var27
= "Error: Attribute ";
581 var29
= string__NativeString__to_s_with_length(var27
, var28
);
588 var32
= " doesn\'t exists in ";
590 var34
= string__NativeString__to_s_with_length(var32
, var33
);
599 var39
= string__NativeString__to_s_with_length(var37
, var38
);
603 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
604 { /* var40 = array_instance Array[Object] */
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]>*/;
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>*/;
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
) {
625 var44
= var_mproperty
->type
->type_table
[cltype45
] == idtype46
;
628 fprintf(stderr
, "Runtime error: %s", "Assert failed");
629 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1589);
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]>*/;
638 { /* Inline kernel#Int#== (var49,var50) */
639 var53
= var49
== var50
;
645 fprintf(stderr
, "Runtime error: %s", "Assert failed");
646 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1593);
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>*/;
653 fprintf(stderr
, "Runtime error: %s", "Cast failed");
654 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1595);
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
) {
665 var57
= var56
->type
->type_table
[cltype58
] == idtype59
;
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>*/;
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
);
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 */;
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>*/;
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
);
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 */;
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>*/;
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>*/;
708 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAttrAssignExpr>*/;
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
);
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 */;
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>*/;
730 if (var_mtype
== NULL
) {
731 var2
= 1; /* is null */
733 var2
= 0; /* arg is null but recv is not */
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>*/;
742 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AAttrReassignExpr>*/;
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
);
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 */;
767 val
* var8
/* : String */;
768 char* var9
/* : NativeString */;
769 long var10
/* : Int */;
770 val
* var11
/* : String */;
771 val
* var12
/* : nullable MType */;
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>*/;
777 if (var_mtype
== NULL
) {
778 var2
= 1; /* is null */
780 var2
= 0; /* arg is null but recv is not */
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>*/;
789 fprintf(stderr
, "Runtime error: %s", "Cast failed");
790 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1641);
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>*/;
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
) {
803 var7
= var_bound
->type
->type_table
[cltype
] == idtype
;
809 var9
= "Error: isset on a nullable attribute.";
811 var11
= string__NativeString__to_s_with_length(var9
, var10
);
815 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
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>*/;
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
);
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 */;
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 */;
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>*/;
884 if (var_expr
== NULL
) {
885 var3
= 1; /* is null */
887 var3
= 0; /* arg is null but recv is not */
893 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_expr
) /* anchor_to on <var_v:TypeVisitor>*/;
895 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADebugTypeExpr__n_type
]))(self
) /* n_type on <self:ADebugTypeExpr>*/;
897 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
900 if (var_mtype
== NULL
) {
901 var9
= 0; /* is null */
903 var9
= 1; /* arg is null and recv is not */
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)>*/;
913 var11
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
915 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
919 var14
= "Found type ";
921 var16
= string__NativeString__to_s_with_length(var14
, var15
);
930 var21
= string__NativeString__to_s_with_length(var19
, var20
);
937 var24
= "), expected ";
939 var26
= string__NativeString__to_s_with_length(var24
, var25
);
948 var31
= string__NativeString__to_s_with_length(var29
, var30
);
957 var36
= string__NativeString__to_s_with_length(var34
, var35
);
961 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
962 { /* var37 = array_instance Array[Object] */
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]>*/;
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>*/;
981 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var41
) /* is_typed= on <self:ADebugTypeExpr>*/;
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
);