1 #include "typing.sep.0.h"
2 /* method typing#ASuperExpr#process_superinit for (self: ASuperExpr, TypeVisitor) */
3 void typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
4 val
* var_v
/* var v: TypeVisitor */;
5 val
* var
/* : AClassdef */;
6 val
* var1
/* : nullable MClassDef */;
7 val
* var2
/* : MClassType */;
8 val
* var_recvtype
/* var recvtype: MClassType */;
9 val
* var3
/* : MPropDef */;
10 val
* var_mpropdef
/* var mpropdef: MPropDef */;
11 short int var4
/* : Bool */;
14 val
* var5
/* : MProperty */;
15 val
* var_mproperty
/* var mproperty: MMethod */;
16 val
* var6
/* : null */;
17 val
* var_superprop
/* var superprop: nullable MMethodDef */;
18 val
* var7
/* : AClassdef */;
19 val
* var8
/* : nullable MClassDef */;
20 val
* var9
/* : Array[MClassType] */;
21 val
* var10
/* : Iterator[nullable Object] */;
22 short int var11
/* : Bool */;
23 val
* var12
/* : nullable Object */;
24 val
* var_msupertype
/* var msupertype: MClassType */;
25 val
* var13
/* : MModule */;
26 val
* var14
/* : MType */;
27 val
* var15
/* : ModelBuilder */;
28 val
* var16
/* : ToolContext */;
29 long var17
/* : Int */;
30 long var_errcount
/* var errcount: Int */;
31 val
* var18
/* : String */;
32 val
* var19
/* : nullable MProperty */;
33 short int var20
/* : Bool */;
36 const char* var_class_name
;
37 val
* var_candidate
/* var candidate: nullable MMethod */;
38 val
* var23
/* : null */;
39 short int var24
/* : Bool */;
40 val
* var25
/* : ModelBuilder */;
41 val
* var26
/* : ToolContext */;
42 long var27
/* : Int */;
43 short int var28
/* : Bool */;
44 short int var30
/* : Bool */;
47 const char* var_class_name33
;
48 short int var34
/* : Bool */;
49 short int var35
/* : Bool */;
50 val
* var36
/* : null */;
51 short int var37
/* : Bool */;
52 short int var_
/* var : Bool */;
53 val
* var38
/* : MProperty */;
54 short int var39
/* : Bool */;
56 val
* var40
/* : String */;
57 char* var41
/* : NativeString */;
58 long var42
/* : Int */;
59 val
* var43
/* : String */;
60 static val
* varonce44
;
61 val
* var45
/* : String */;
62 char* var46
/* : NativeString */;
63 long var47
/* : Int */;
64 val
* var48
/* : String */;
65 val
* var49
/* : String */;
66 static val
* varonce50
;
67 val
* var51
/* : String */;
68 char* var52
/* : NativeString */;
69 long var53
/* : Int */;
70 val
* var54
/* : String */;
71 val
* var55
/* : MProperty */;
72 val
* var56
/* : String */;
73 val
* var57
/* : Array[Object] */;
74 long var58
/* : Int */;
75 val
* var59
/* : NativeArray[Object] */;
76 val
* var60
/* : String */;
77 val
* var61
/* : MModule */;
78 val
* var62
/* : Array[MPropDef] */;
79 val
* var_candidatedefs
/* var candidatedefs: Array[MMethodDef] */;
80 val
* var63
/* : null */;
81 short int var64
/* : Bool */;
82 val
* var65
/* : nullable Object */;
83 short int var66
/* : Bool */;
84 long var67
/* : Int */;
85 long var68
/* : Int */;
86 short int var69
/* : Bool */;
87 short int var71
/* : Bool */;
90 const char* var_class_name74
;
91 short int var75
/* : Bool */;
92 static val
* varonce76
;
93 val
* var77
/* : String */;
94 char* var78
/* : NativeString */;
95 long var79
/* : Int */;
96 val
* var80
/* : String */;
97 static val
* varonce81
;
98 val
* var82
/* : String */;
99 char* var83
/* : NativeString */;
100 long var84
/* : Int */;
101 val
* var85
/* : String */;
102 static val
* varonce86
;
103 val
* var87
/* : String */;
104 char* var88
/* : NativeString */;
105 long var89
/* : Int */;
106 val
* var90
/* : String */;
107 static val
* varonce91
;
108 val
* var92
/* : String */;
109 char* var93
/* : NativeString */;
110 long var94
/* : Int */;
111 val
* var95
/* : String */;
112 val
* var96
/* : String */;
113 val
* var97
/* : Array[Object] */;
114 long var98
/* : Int */;
115 val
* var99
/* : NativeArray[Object] */;
116 val
* var100
/* : String */;
117 val
* var101
/* : nullable Object */;
118 val
* var102
/* : null */;
119 short int var103
/* : Bool */;
120 static val
* varonce104
;
121 val
* var105
/* : String */;
122 char* var106
/* : NativeString */;
123 long var107
/* : Int */;
124 val
* var108
/* : String */;
125 static val
* varonce109
;
126 val
* var110
/* : String */;
127 char* var111
/* : NativeString */;
128 long var112
/* : Int */;
129 val
* var113
/* : String */;
130 val
* var114
/* : Array[Object] */;
131 long var115
/* : Int */;
132 val
* var116
/* : NativeArray[Object] */;
133 val
* var117
/* : String */;
134 short int var118
/* : Bool */;
135 val
* var119
/* : MSignature */;
136 val
* var_msignature
/* var msignature: MSignature */;
137 val
* var120
/* : CallSite */;
138 short int var121
/* : Bool */;
139 val
* var122
/* : MProperty */;
140 short int var123
/* : Bool */;
141 val
* var_callsite
/* var callsite: CallSite */;
142 val
* var124
/* : AExprs */;
143 val
* var125
/* : Array[AExpr] */;
144 val
* var_args
/* var args: Array[AExpr] */;
145 long var126
/* : Int */;
146 long var127
/* : Int */;
147 short int var128
/* : Bool */;
148 short int var130
/* : Bool */;
151 const char* var_class_name133
;
152 short int var134
/* : Bool */;
153 short int var135
/* : Bool */;
154 val
* var136
/* : nullable MSignature */;
155 long var137
/* : Int */;
156 long var138
/* : Int */;
157 short int var139
/* : Bool */;
158 short int var141
/* : Bool */;
161 const char* var_class_name144
;
162 short int var145
/* : Bool */;
163 static val
* varonce146
;
164 val
* var147
/* : String */;
165 char* var148
/* : NativeString */;
166 long var149
/* : Int */;
167 val
* var150
/* : String */;
168 val
* var151
/* : nullable MSignature */;
169 long var152
/* : Int */;
170 static val
* varonce153
;
171 val
* var154
/* : String */;
172 char* var155
/* : NativeString */;
173 long var156
/* : Int */;
174 val
* var157
/* : String */;
175 long var158
/* : Int */;
176 static val
* varonce159
;
177 val
* var160
/* : String */;
178 char* var161
/* : NativeString */;
179 long var162
/* : Int */;
180 val
* var163
/* : String */;
181 val
* var164
/* : Array[Object] */;
182 long var165
/* : Int */;
183 val
* var166
/* : NativeArray[Object] */;
184 val
* var167
/* : Object */;
185 val
* var168
/* : Object */;
186 val
* var169
/* : String */;
187 long var170
/* : Int */;
188 long var_i
/* var i: Int */;
189 val
* var171
/* : Array[MParameter] */;
190 val
* var172
/* : Iterator[nullable Object] */;
191 short int var173
/* : Bool */;
192 val
* var174
/* : nullable Object */;
193 val
* var_sp
/* var sp: MParameter */;
194 val
* var175
/* : nullable MSignature */;
195 val
* var176
/* : Array[MParameter] */;
196 val
* var177
/* : nullable Object */;
197 val
* var_p
/* var p: MParameter */;
198 val
* var178
/* : MType */;
199 val
* var179
/* : MType */;
200 short int var180
/* : Bool */;
201 short int var181
/* : Bool */;
202 static val
* varonce182
;
203 val
* var183
/* : String */;
204 char* var184
/* : NativeString */;
205 long var185
/* : Int */;
206 val
* var186
/* : String */;
207 static val
* varonce187
;
208 val
* var188
/* : String */;
209 char* var189
/* : NativeString */;
210 long var190
/* : Int */;
211 val
* var191
/* : String */;
212 val
* var192
/* : MType */;
213 static val
* varonce193
;
214 val
* var194
/* : String */;
215 char* var195
/* : NativeString */;
216 long var196
/* : Int */;
217 val
* var197
/* : String */;
218 val
* var198
/* : String */;
219 static val
* varonce199
;
220 val
* var200
/* : String */;
221 char* var201
/* : NativeString */;
222 long var202
/* : Int */;
223 val
* var203
/* : String */;
224 val
* var204
/* : MType */;
225 static val
* varonce205
;
226 val
* var206
/* : String */;
227 char* var207
/* : NativeString */;
228 long var208
/* : Int */;
229 val
* var209
/* : String */;
230 val
* var210
/* : Array[Object] */;
231 long var211
/* : Int */;
232 val
* var212
/* : NativeArray[Object] */;
233 val
* var213
/* : Object */;
234 val
* var214
/* : String */;
235 long var215
/* : Int */;
236 long var216
/* : Int */;
237 long var218
/* : Int */;
238 short int var220
/* : Bool */;
240 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
241 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
243 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
244 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1460);
247 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
250 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
252 /* <var_mpropdef:MPropDef> isa MMethodDef */
253 cltype
= type_model__MMethodDef
.color
;
254 idtype
= type_model__MMethodDef
.id
;
255 if(cltype
>= var_mpropdef
->type
->table_size
) {
258 var4
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
261 fprintf(stderr
, "Runtime error: %s", "Assert failed");
262 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1462);
265 var5
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mpropdef
) /* mproperty on <var_mpropdef:MPropDef(MMethodDef)>*/;
266 var_mproperty
= var5
;
268 var_superprop
= var6
;
269 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
270 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var7
) /* mclassdef on <var7:AClassdef>*/;
272 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
273 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1465);
276 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var8
) /* supertypes on <var8:nullable MClassDef>*/;
278 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Array[MClassType]>*/;
280 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
282 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
283 var_msupertype
= var12
;
284 var13
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
285 var14
= ((val
* (*)(val
*, val
*, val
*))(var_msupertype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_msupertype
, var13
, var_recvtype
) /* anchor_to on <var_msupertype:MClassType>*/;
286 var_msupertype
= var14
;
287 var15
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
288 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var15
) /* toolcontext on <var15:ModelBuilder>*/;
289 var17
= ((long (*)(val
*))(var16
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var16
) /* error_count on <var16:ToolContext>*/;
290 var_errcount
= var17
;
291 var18
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MMethod>*/;
292 var19
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(var_v
, self
, var_msupertype
, var18
) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
293 /* <var19:nullable MProperty> isa nullable MMethod */
294 cltype21
= type_nullable_model__MMethod
.color
;
295 idtype22
= type_nullable_model__MMethod
.id
;
299 if(cltype21
>= var19
->type
->table_size
) {
302 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
306 var_class_name
= var19
== NULL ?
"null" : var19
->type
->name
;
307 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name
);
308 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1468);
311 var_candidate
= var19
;
313 if (var_candidate
== NULL
) {
314 var24
= 1; /* is null */
316 var24
= 0; /* arg is null but recv is not */
319 var25
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
320 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var25
) /* toolcontext on <var25:ModelBuilder>*/;
321 var27
= ((long (*)(val
*))(var26
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var26
) /* error_count on <var26:ToolContext>*/;
322 { /* Inline kernel#Int#> (var27,var_errcount) */
323 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
324 /* <var_errcount:Int> isa OTHER */
325 var30
= 1; /* easy <var_errcount:Int> isa OTHER*/
327 var_class_name33
= type_kernel__Int
.name
;
328 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
329 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
332 var34
= var27
> var_errcount
;
345 if (var_superprop
== NULL
) {
346 var37
= 0; /* is null */
348 var37
= 1; /* arg is null and recv is not */
352 var38
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
353 var39
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var38
, var_candidate
) /* != on <var38:MProperty(MMethod)>*/;
362 var41
= "Error: conflicting super constructor to call for ";
364 var43
= string__NativeString__to_s_with_length(var41
, var42
);
373 var48
= string__NativeString__to_s_with_length(var46
, var47
);
377 var49
= ((val
* (*)(val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__full_name
]))(var_candidate
) /* full_name on <var_candidate:nullable MMethod(MMethod)>*/;
383 var54
= string__NativeString__to_s_with_length(var52
, var53
);
387 var55
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
388 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_model__MProperty__full_name
]))(var55
) /* full_name on <var55:MProperty(MMethod)>*/;
389 var57
= NEW_array__Array(&type_array__Arraykernel__Object
);
390 { /* var57 = array_instance Array[Object] */
392 var59
= NEW_array__NativeArray(var58
, &type_array__NativeArraykernel__Object
);
393 ((struct instance_array__NativeArray
*)var59
)->values
[0] = (val
*) var40
;
394 ((struct instance_array__NativeArray
*)var59
)->values
[1] = (val
*) var_mproperty
;
395 ((struct instance_array__NativeArray
*)var59
)->values
[2] = (val
*) var45
;
396 ((struct instance_array__NativeArray
*)var59
)->values
[3] = (val
*) var49
;
397 ((struct instance_array__NativeArray
*)var59
)->values
[4] = (val
*) var51
;
398 ((struct instance_array__NativeArray
*)var59
)->values
[5] = (val
*) var56
;
399 ((void (*)(val
*, val
*, long))(var57
->class->vft
[COLOR_array__Array__with_native
]))(var57
, var59
, var58
) /* with_native on <var57:Array[Object]>*/;
401 var60
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_string__Object__to_s
]))(var57
) /* to_s on <var57:Array[Object]>*/;
402 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var60
) /* error on <var_v:TypeVisitor>*/;
406 var61
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
407 var62
= ((val
* (*)(val
*, val
*, val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__lookup_definitions
]))(var_candidate
, var61
, var_recvtype
) /* lookup_definitions on <var_candidate:nullable MMethod(MMethod)>*/;
408 var_candidatedefs
= var62
;
410 if (var_superprop
== NULL
) {
411 var64
= 0; /* is null */
413 var64
= 1; /* arg is null and recv is not */
416 var65
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
417 var66
= ((short int (*)(val
*, val
*))(var_superprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_superprop
, var65
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
422 ((void (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidatedefs
, var_superprop
) /* add on <var_candidatedefs:Array[MMethodDef]>*/;
425 var67
= ((long (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidatedefs
) /* length on <var_candidatedefs:Array[MMethodDef]>*/;
427 { /* Inline kernel#Int#> (var67,var68) */
428 /* Covariant cast for argument 0 (i) <var68:Int> isa OTHER */
429 /* <var68:Int> isa OTHER */
430 var71
= 1; /* easy <var68:Int> isa OTHER*/
432 var_class_name74
= type_kernel__Int
.name
;
433 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74
);
434 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
437 var75
= var67
> var68
;
446 var78
= "Error: confliting property definitions for property ";
448 var80
= string__NativeString__to_s_with_length(var78
, var79
);
457 var85
= string__NativeString__to_s_with_length(var83
, var84
);
466 var90
= string__NativeString__to_s_with_length(var88
, var89
);
475 var95
= string__NativeString__to_s_with_length(var93
, var94
);
479 var96
= ((val
* (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_string__Collection__join
]))(var_candidatedefs
, var92
) /* join on <var_candidatedefs:Array[MMethodDef]>*/;
480 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
481 { /* var97 = array_instance Array[Object] */
483 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
484 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var77
;
485 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var_mproperty
;
486 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var82
;
487 ((struct instance_array__NativeArray
*)var99
)->values
[3] = (val
*) var_recvtype
;
488 ((struct instance_array__NativeArray
*)var99
)->values
[4] = (val
*) var87
;
489 ((struct instance_array__NativeArray
*)var99
)->values
[5] = (val
*) var96
;
490 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
492 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
493 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var100
) /* error on <var_v:TypeVisitor>*/;
497 var101
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
498 var_superprop
= var101
;
499 CONTINUE_label
: (void)0;
500 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
502 BREAK_label
: (void)0;
504 if (var_superprop
== NULL
) {
505 var103
= 1; /* is null */
507 var103
= 0; /* arg is null but recv is not */
513 var106
= "Error: No super method to call for ";
515 var108
= string__NativeString__to_s_with_length(var106
, var107
);
524 var113
= string__NativeString__to_s_with_length(var111
, var112
);
528 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
529 { /* var114 = array_instance Array[Object] */
531 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
532 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var105
;
533 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var_mproperty
;
534 ((struct instance_array__NativeArray
*)var116
)->values
[2] = (val
*) var110
;
535 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
537 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
538 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var117
) /* error on <var_v:TypeVisitor>*/;
543 var119
= ((val
* (*)(val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_signature_for
]))(var_v
, var_superprop
, var_recvtype
, var118
) /* resolve_signature_for on <var_v:TypeVisitor>*/;
544 var_msignature
= var119
;
545 var120
= NEW_typing__CallSite(&type_typing__CallSite
);
547 var122
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
549 ((void (*)(val
*, val
*, val
*, short int, val
*, val
*, val
*, short int))(var120
->class->vft
[COLOR_typing__CallSite__init
]))(var120
, self
, var_recvtype
, var121
, var122
, var_superprop
, var_msignature
, var123
) /* init on <var120:CallSite>*/;
550 var_callsite
= var120
;
551 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASuperExpr>*/;
552 var124
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
553 var125
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_typing__AExprs__to_a
]))(var124
) /* to_a on <var124:AExprs>*/;
555 var126
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
557 { /* Inline kernel#Int#> (var126,var127) */
558 /* Covariant cast for argument 0 (i) <var127:Int> isa OTHER */
559 /* <var127:Int> isa OTHER */
560 var130
= 1; /* easy <var127:Int> isa OTHER*/
562 var_class_name133
= type_kernel__Int
.name
;
563 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name133
);
564 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
567 var134
= var126
> var127
;
570 RET_LABEL129
:(void)0;
573 var135
= ((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:CallSite>*/;
576 var136
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:MPropDef(MMethodDef)>*/;
577 if (var136
== NULL
) {
578 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
579 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1502);
582 var137
= ((long (*)(val
*))(var136
->class->vft
[COLOR_model__MSignature__arity
]))(var136
) /* arity on <var136:nullable MSignature>*/;
584 var138
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
585 { /* Inline kernel#Int#< (var137,var138) */
586 /* Covariant cast for argument 0 (i) <var138:Int> isa OTHER */
587 /* <var138:Int> isa OTHER */
588 var141
= 1; /* easy <var138:Int> isa OTHER*/
590 var_class_name144
= type_kernel__Int
.name
;
591 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name144
);
592 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
595 var145
= var137
< var138
;
598 RET_LABEL140
:(void)0;
604 var148
= "Error: Not enough implicit arguments to pass. Got ";
606 var150
= string__NativeString__to_s_with_length(var148
, var149
);
610 var151
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:MPropDef(MMethodDef)>*/;
611 if (var151
== NULL
) {
612 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
613 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1503);
616 var152
= ((long (*)(val
*))(var151
->class->vft
[COLOR_model__MSignature__arity
]))(var151
) /* arity on <var151:nullable MSignature>*/;
621 var155
= ", expected at least ";
623 var157
= string__NativeString__to_s_with_length(var155
, var156
);
627 var158
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
631 var161
= ". Signature is ";
633 var163
= string__NativeString__to_s_with_length(var161
, var162
);
637 var164
= NEW_array__Array(&type_array__Arraykernel__Object
);
638 { /* var164 = array_instance Array[Object] */
640 var166
= NEW_array__NativeArray(var165
, &type_array__NativeArraykernel__Object
);
641 ((struct instance_array__NativeArray
*)var166
)->values
[0] = (val
*) var147
;
642 var167
= BOX_kernel__Int(var152
); /* autobox from Int to Object */
643 ((struct instance_array__NativeArray
*)var166
)->values
[1] = (val
*) var167
;
644 ((struct instance_array__NativeArray
*)var166
)->values
[2] = (val
*) var154
;
645 var168
= BOX_kernel__Int(var158
); /* autobox from Int to Object */
646 ((struct instance_array__NativeArray
*)var166
)->values
[3] = (val
*) var168
;
647 ((struct instance_array__NativeArray
*)var166
)->values
[4] = (val
*) var160
;
648 ((struct instance_array__NativeArray
*)var166
)->values
[5] = (val
*) var_msignature
;
649 ((void (*)(val
*, val
*, long))(var164
->class->vft
[COLOR_array__Array__with_native
]))(var164
, var166
, var165
) /* with_native on <var164:Array[Object]>*/;
651 var169
= ((val
* (*)(val
*))(var164
->class->vft
[COLOR_string__Object__to_s
]))(var164
) /* to_s on <var164:Array[Object]>*/;
652 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var169
) /* error on <var_v:TypeVisitor>*/;
658 var171
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
659 var172
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var171
) /* iterator on <var171:Array[MParameter]>*/;
661 var173
= ((short int (*)(val
*))(var172
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var172
) /* is_ok on <var172:Iterator[nullable Object]>*/;
663 var174
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var172
) /* item on <var172:Iterator[nullable Object]>*/;
665 var175
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:MPropDef(MMethodDef)>*/;
666 if (var175
== NULL
) {
667 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
668 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1509);
671 var176
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_model__MSignature__mparameters
]))(var175
) /* mparameters on <var175:nullable MSignature>*/;
673 var177
= ((val
* (*)(val
*, long))(var176
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var176
, var_i
) /* [] on <var176:Array[MParameter]>*/;
675 var178
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
676 var179
= ((val
* (*)(val
*))(var_sp
->class->vft
[COLOR_model__MParameter__mtype
]))(var_sp
) /* mtype on <var_sp:MParameter>*/;
677 var180
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var178
, var179
) /* is_subtype on <var_v:TypeVisitor>*/;
683 var184
= "Type error: expected argument #";
685 var186
= string__NativeString__to_s_with_length(var184
, var185
);
692 var189
= " of type ";
694 var191
= string__NativeString__to_s_with_length(var189
, var190
);
698 var192
= ((val
* (*)(val
*))(var_sp
->class->vft
[COLOR_model__MParameter__mtype
]))(var_sp
) /* mtype on <var_sp:MParameter>*/;
702 var195
= ", got implicit argument ";
704 var197
= string__NativeString__to_s_with_length(var195
, var196
);
708 var198
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__name
]))(var_p
) /* name on <var_p:MParameter>*/;
712 var201
= " of type ";
714 var203
= string__NativeString__to_s_with_length(var201
, var202
);
718 var204
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
722 var207
= ". Signature is ";
724 var209
= string__NativeString__to_s_with_length(var207
, var208
);
728 var210
= NEW_array__Array(&type_array__Arraykernel__Object
);
729 { /* var210 = array_instance Array[Object] */
731 var212
= NEW_array__NativeArray(var211
, &type_array__NativeArraykernel__Object
);
732 ((struct instance_array__NativeArray
*)var212
)->values
[0] = (val
*) var183
;
733 var213
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
734 ((struct instance_array__NativeArray
*)var212
)->values
[1] = (val
*) var213
;
735 ((struct instance_array__NativeArray
*)var212
)->values
[2] = (val
*) var188
;
736 ((struct instance_array__NativeArray
*)var212
)->values
[3] = (val
*) var192
;
737 ((struct instance_array__NativeArray
*)var212
)->values
[4] = (val
*) var194
;
738 ((struct instance_array__NativeArray
*)var212
)->values
[5] = (val
*) var198
;
739 ((struct instance_array__NativeArray
*)var212
)->values
[6] = (val
*) var200
;
740 ((struct instance_array__NativeArray
*)var212
)->values
[7] = (val
*) var204
;
741 ((struct instance_array__NativeArray
*)var212
)->values
[8] = (val
*) var206
;
742 ((struct instance_array__NativeArray
*)var212
)->values
[9] = (val
*) var_msignature
;
743 ((void (*)(val
*, val
*, long))(var210
->class->vft
[COLOR_array__Array__with_native
]))(var210
, var212
, var211
) /* with_native on <var210:Array[Object]>*/;
745 var214
= ((val
* (*)(val
*))(var210
->class->vft
[COLOR_string__Object__to_s
]))(var210
) /* to_s on <var210:Array[Object]>*/;
746 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var214
) /* error on <var_v:TypeVisitor>*/;
751 { /* Inline kernel#Int#+ (var_i,var215) */
752 var218
= var_i
+ var215
;
755 RET_LABEL217
:(void)0;
758 CONTINUE_label219
: (void)0;
759 ((void (*)(val
*))(var172
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var172
) /* next on <var172:Iterator[nullable Object]>*/;
761 BREAK_label219
: (void)0;
764 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var220
) /* is_typed= on <self:ASuperExpr>*/;
767 /* method typing#ASuperExpr#process_superinit for (self: Object, TypeVisitor) */
768 void VIRTUAL_typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
769 typing__ASuperExpr__process_superinit(self
, p0
);
772 /* method typing#ANewExpr#callsite for (self: ANewExpr): nullable CallSite */
773 val
* typing__ANewExpr__callsite(val
* self
) {
774 val
* var
/* : nullable CallSite */;
775 val
* var1
/* : nullable CallSite */;
776 var1
= self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
; /* @callsite on <self:ANewExpr> */
781 /* method typing#ANewExpr#callsite for (self: Object): nullable CallSite */
782 val
* VIRTUAL_typing__ANewExpr__callsite(val
* self
) {
783 val
* var
/* : nullable CallSite */;
784 val
* var1
/* : nullable CallSite */;
785 var1
= typing__ANewExpr__callsite(self
);
790 /* method typing#ANewExpr#callsite= for (self: ANewExpr, nullable CallSite) */
791 void typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
792 self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ANewExpr> */
795 /* method typing#ANewExpr#callsite= for (self: Object, nullable CallSite) */
796 void VIRTUAL_typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
797 typing__ANewExpr__callsite_61d(self
, p0
);
800 /* method typing#ANewExpr#accept_typing for (self: ANewExpr, TypeVisitor) */
801 void typing__ANewExpr__accept_typing(val
* self
, val
* p0
) {
802 val
* var_v
/* var v: TypeVisitor */;
803 val
* var
/* : AType */;
804 val
* var1
/* : nullable MType */;
805 val
* var_recvtype
/* var recvtype: nullable MType */;
806 val
* var2
/* : null */;
807 short int var3
/* : Bool */;
808 short int var4
/* : Bool */;
811 short int var5
/* : Bool */;
812 short int var6
/* : Bool */;
816 val
* var9
/* : String */;
817 char* var10
/* : NativeString */;
818 long var11
/* : Int */;
819 val
* var12
/* : String */;
820 static val
* varonce13
;
821 val
* var14
/* : String */;
822 char* var15
/* : NativeString */;
823 long var16
/* : Int */;
824 val
* var17
/* : String */;
825 val
* var18
/* : Array[Object] */;
826 long var19
/* : Int */;
827 val
* var20
/* : NativeArray[Object] */;
828 val
* var21
/* : String */;
829 static val
* varonce22
;
830 val
* var23
/* : String */;
831 char* var24
/* : NativeString */;
832 long var25
/* : Int */;
833 val
* var26
/* : String */;
834 static val
* varonce27
;
835 val
* var28
/* : String */;
836 char* var29
/* : NativeString */;
837 long var30
/* : Int */;
838 val
* var31
/* : String */;
839 val
* var32
/* : Array[Object] */;
840 long var33
/* : Int */;
841 val
* var34
/* : NativeArray[Object] */;
842 val
* var35
/* : String */;
843 val
* var36
/* : MClass */;
844 val
* var37
/* : MClassKind */;
845 val
* var38
/* : MClassKind */;
846 short int var39
/* : Bool */;
847 static val
* varonce40
;
848 val
* var41
/* : String */;
849 char* var42
/* : NativeString */;
850 long var43
/* : Int */;
851 val
* var44
/* : String */;
852 static val
* varonce45
;
853 val
* var46
/* : String */;
854 char* var47
/* : NativeString */;
855 long var48
/* : Int */;
856 val
* var49
/* : String */;
857 val
* var50
/* : Array[Object] */;
858 long var51
/* : Int */;
859 val
* var52
/* : NativeArray[Object] */;
860 val
* var53
/* : String */;
861 val
* var54
/* : MClass */;
862 val
* var55
/* : MClassKind */;
863 val
* var56
/* : MClassKind */;
864 short int var57
/* : Bool */;
865 static val
* varonce58
;
866 val
* var59
/* : String */;
867 char* var60
/* : NativeString */;
868 long var61
/* : Int */;
869 val
* var62
/* : String */;
870 static val
* varonce63
;
871 val
* var64
/* : String */;
872 char* var65
/* : NativeString */;
873 long var66
/* : Int */;
874 val
* var67
/* : String */;
875 val
* var68
/* : Array[Object] */;
876 long var69
/* : Int */;
877 val
* var70
/* : NativeArray[Object] */;
878 val
* var71
/* : String */;
879 val
* var72
/* : nullable TId */;
880 val
* var_nid
/* var nid: nullable TId */;
881 val
* var73
/* : null */;
882 short int var74
/* : Bool */;
883 val
* var75
/* : String */;
884 val
* var_name
/* var name: String */;
885 static val
* varonce76
;
886 val
* var77
/* : String */;
887 char* var78
/* : NativeString */;
888 long var79
/* : Int */;
889 val
* var80
/* : String */;
890 short int var81
/* : Bool */;
891 val
* var82
/* : nullable CallSite */;
892 val
* var_callsite
/* var callsite: nullable CallSite */;
893 val
* var83
/* : null */;
894 short int var84
/* : Bool */;
895 val
* var85
/* : MMethod */;
896 val
* var86
/* : MClass */;
897 short int var87
/* : Bool */;
898 short int var88
/* : Bool */;
899 static val
* varonce89
;
900 val
* var90
/* : String */;
901 char* var91
/* : NativeString */;
902 long var92
/* : Int */;
903 val
* var93
/* : String */;
904 static val
* varonce94
;
905 val
* var95
/* : String */;
906 char* var96
/* : NativeString */;
907 long var97
/* : Int */;
908 val
* var98
/* : String */;
909 val
* var99
/* : Array[Object] */;
910 long var100
/* : Int */;
911 val
* var101
/* : NativeArray[Object] */;
912 val
* var102
/* : String */;
913 val
* var103
/* : AExprs */;
914 val
* var104
/* : Array[AExpr] */;
915 val
* var_args
/* var args: Array[AExpr] */;
916 short int var105
/* : Bool */;
918 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_type
]))(self
) /* n_type on <self:ANewExpr>*/;
919 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var
) /* resolve_mtype on <var_v:TypeVisitor>*/;
922 if (var_recvtype
== NULL
) {
923 var3
= 1; /* is null */
925 var3
= 0; /* arg is null but recv is not */
931 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_recvtype
) /* mtype= on <self:ANewExpr>*/;
932 /* <var_recvtype:nullable MType(MType)> isa MClassType */
933 cltype
= type_model__MClassType
.color
;
934 idtype
= type_model__MClassType
.id
;
935 if(cltype
>= var_recvtype
->type
->table_size
) {
938 var4
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
942 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
943 cltype7
= type_model__MNullableType
.color
;
944 idtype8
= type_model__MNullableType
.id
;
945 if(cltype7
>= var_recvtype
->type
->table_size
) {
948 var6
= var_recvtype
->type
->type_table
[cltype7
] == idtype8
;
954 var10
= "Type error: cannot instantiate the nullable type ";
956 var12
= string__NativeString__to_s_with_length(var10
, var11
);
965 var17
= string__NativeString__to_s_with_length(var15
, var16
);
969 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
970 { /* var18 = array_instance Array[Object] */
972 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
973 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var9
;
974 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_recvtype
;
975 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var14
;
976 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
978 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
979 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var21
) /* error on <var_v:TypeVisitor>*/;
985 var24
= "Type error: cannot instantiate the formal type ";
987 var26
= string__NativeString__to_s_with_length(var24
, var25
);
996 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1000 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
1001 { /* var32 = array_instance Array[Object] */
1003 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
1004 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
1005 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_recvtype
;
1006 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
1007 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
1009 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
1010 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var35
) /* error on <var_v:TypeVisitor>*/;
1014 var36
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
1015 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_model__MClass__kind
]))(var36
) /* kind on <var36:MClass>*/;
1016 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__abstract_kind
]))(self
) /* abstract_kind on <self:ANewExpr>*/;
1017 var39
= ((short int (*)(val
*, val
*))(var37
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var37
, var38
) /* == on <var37:MClassKind>*/;
1022 var42
= "Cannot instantiate abstract class ";
1024 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1033 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1037 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
1038 { /* var50 = array_instance Array[Object] */
1040 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
1041 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var41
;
1042 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_recvtype
;
1043 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var46
;
1044 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
1046 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
1047 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var53
) /* error on <var_v:TypeVisitor>*/;
1050 var54
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
1051 var55
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_model__MClass__kind
]))(var54
) /* kind on <var54:MClass>*/;
1052 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:ANewExpr>*/;
1053 var57
= ((short int (*)(val
*, val
*))(var55
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var55
, var56
) /* == on <var55:MClassKind>*/;
1058 var60
= "Cannot instantiate interface ";
1060 var62
= string__NativeString__to_s_with_length(var60
, var61
);
1069 var67
= string__NativeString__to_s_with_length(var65
, var66
);
1073 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
1074 { /* var68 = array_instance Array[Object] */
1076 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
1077 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var59
;
1078 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var_recvtype
;
1079 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var64
;
1080 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
1082 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
1083 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var71
) /* error on <var_v:TypeVisitor>*/;
1089 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_id
]))(self
) /* n_id on <self:ANewExpr>*/;
1092 if (var_nid
== NULL
) {
1093 var74
= 0; /* is null */
1095 var74
= 1; /* arg is null and recv is not */
1098 var75
= ((val
* (*)(val
*))(var_nid
->class->vft
[COLOR_parser_nodes__Token__text
]))(var_nid
) /* text on <var_nid:nullable TId(TId)>*/;
1106 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1113 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>*/;
1114 var_callsite
= var82
;
1116 if (var_callsite
== NULL
) {
1117 var84
= 1; /* is null */
1119 var84
= 0; /* arg is null but recv is not */
1125 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANewExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ANewExpr>*/;
1126 var85
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
1127 var86
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:nullable MType(MClassType)>*/;
1128 var87
= ((short int (*)(val
*, val
*))(var85
->class->vft
[COLOR_model__MMethod__is_init_for
]))(var85
, var86
) /* is_init_for on <var85:MMethod>*/;
1136 var93
= string__NativeString__to_s_with_length(var91
, var92
);
1143 var96
= " is not a constructor.";
1145 var98
= string__NativeString__to_s_with_length(var96
, var97
);
1149 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
1150 { /* var99 = array_instance Array[Object] */
1152 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
1153 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var90
;
1154 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var_name
;
1155 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
1156 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
1158 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
1159 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var102
) /* error on <var_v:TypeVisitor>*/;
1163 var103
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_args
]))(self
) /* n_args on <self:ANewExpr>*/;
1164 var104
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_typing__AExprs__to_a
]))(var103
) /* to_a on <var103:AExprs>*/;
1166 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)>*/;
1170 /* method typing#ANewExpr#accept_typing for (self: Object, TypeVisitor) */
1171 void VIRTUAL_typing__ANewExpr__accept_typing(val
* self
, val
* p0
) {
1172 typing__ANewExpr__accept_typing(self
, p0
);
1175 /* method typing#AAttrFormExpr#mproperty for (self: AAttrFormExpr): nullable MAttribute */
1176 val
* typing__AAttrFormExpr__mproperty(val
* self
) {
1177 val
* var
/* : nullable MAttribute */;
1178 val
* var1
/* : nullable MAttribute */;
1179 var1
= self
->attrs
[COLOR_typing__AAttrFormExpr___64dmproperty
].val
; /* @mproperty on <self:AAttrFormExpr> */
1184 /* method typing#AAttrFormExpr#mproperty for (self: Object): nullable MAttribute */
1185 val
* VIRTUAL_typing__AAttrFormExpr__mproperty(val
* self
) {
1186 val
* var
/* : nullable MAttribute */;
1187 val
* var1
/* : nullable MAttribute */;
1188 var1
= typing__AAttrFormExpr__mproperty(self
);
1193 /* method typing#AAttrFormExpr#mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
1194 void typing__AAttrFormExpr__mproperty_61d(val
* self
, val
* p0
) {
1195 self
->attrs
[COLOR_typing__AAttrFormExpr___64dmproperty
].val
= p0
; /* @mproperty on <self:AAttrFormExpr> */
1198 /* method typing#AAttrFormExpr#mproperty= for (self: Object, nullable MAttribute) */
1199 void VIRTUAL_typing__AAttrFormExpr__mproperty_61d(val
* self
, val
* p0
) {
1200 typing__AAttrFormExpr__mproperty_61d(self
, p0
);
1203 /* method typing#AAttrFormExpr#attr_type for (self: AAttrFormExpr): nullable MType */
1204 val
* typing__AAttrFormExpr__attr_type(val
* self
) {
1205 val
* var
/* : nullable MType */;
1206 val
* var1
/* : nullable MType */;
1207 var1
= self
->attrs
[COLOR_typing__AAttrFormExpr___64dattr_type
].val
; /* @attr_type on <self:AAttrFormExpr> */
1212 /* method typing#AAttrFormExpr#attr_type for (self: Object): nullable MType */
1213 val
* VIRTUAL_typing__AAttrFormExpr__attr_type(val
* self
) {
1214 val
* var
/* : nullable MType */;
1215 val
* var1
/* : nullable MType */;
1216 var1
= typing__AAttrFormExpr__attr_type(self
);
1221 /* method typing#AAttrFormExpr#attr_type= for (self: AAttrFormExpr, nullable MType) */
1222 void typing__AAttrFormExpr__attr_type_61d(val
* self
, val
* p0
) {
1223 self
->attrs
[COLOR_typing__AAttrFormExpr___64dattr_type
].val
= p0
; /* @attr_type on <self:AAttrFormExpr> */
1226 /* method typing#AAttrFormExpr#attr_type= for (self: Object, nullable MType) */
1227 void VIRTUAL_typing__AAttrFormExpr__attr_type_61d(val
* self
, val
* p0
) {
1228 typing__AAttrFormExpr__attr_type_61d(self
, p0
);
1231 /* method typing#AAttrFormExpr#resolve_property for (self: AAttrFormExpr, TypeVisitor) */
1232 void typing__AAttrFormExpr__resolve_property(val
* self
, val
* p0
) {
1233 val
* var_v
/* var v: TypeVisitor */;
1234 val
* var
/* : AExpr */;
1235 val
* var1
/* : nullable MType */;
1236 val
* var_recvtype
/* var recvtype: nullable MType */;
1237 val
* var2
/* : null */;
1238 short int var3
/* : Bool */;
1239 val
* var4
/* : TAttrid */;
1240 val
* var5
/* : String */;
1241 val
* var_name
/* var name: String */;
1242 short int var6
/* : Bool */;
1245 static val
* varonce
;
1246 val
* var7
/* : String */;
1247 char* var8
/* : NativeString */;
1248 long var9
/* : Int */;
1249 val
* var10
/* : String */;
1250 static val
* varonce11
;
1251 val
* var12
/* : String */;
1252 char* var13
/* : NativeString */;
1253 long var14
/* : Int */;
1254 val
* var15
/* : String */;
1255 val
* var16
/* : Array[Object] */;
1256 long var17
/* : Int */;
1257 val
* var18
/* : NativeArray[Object] */;
1258 val
* var19
/* : String */;
1259 val
* var20
/* : MType */;
1260 val
* var_unsafe_type
/* var unsafe_type: MType */;
1261 val
* var21
/* : nullable MProperty */;
1262 val
* var_mproperty
/* var mproperty: nullable MProperty */;
1263 val
* var22
/* : null */;
1264 short int var23
/* : Bool */;
1265 val
* var24
/* : ModelBuilder */;
1266 static val
* varonce25
;
1267 val
* var26
/* : String */;
1268 char* var27
/* : NativeString */;
1269 long var28
/* : Int */;
1270 val
* var29
/* : String */;
1271 static val
* varonce30
;
1272 val
* var31
/* : String */;
1273 char* var32
/* : NativeString */;
1274 long var33
/* : Int */;
1275 val
* var34
/* : String */;
1276 static val
* varonce35
;
1277 val
* var36
/* : String */;
1278 char* var37
/* : NativeString */;
1279 long var38
/* : Int */;
1280 val
* var39
/* : String */;
1281 val
* var40
/* : Array[Object] */;
1282 long var41
/* : Int */;
1283 val
* var42
/* : NativeArray[Object] */;
1284 val
* var43
/* : String */;
1285 short int var44
/* : Bool */;
1288 val
* var47
/* : MModule */;
1289 val
* var48
/* : Array[MPropDef] */;
1290 val
* var_mpropdefs
/* var mpropdefs: Array[MAttributeDef] */;
1291 long var49
/* : Int */;
1292 long var50
/* : Int */;
1293 short int var51
/* : Bool */;
1294 short int var53
/* : Bool */;
1295 val
* var54
/* : nullable Object */;
1296 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
1297 val
* var55
/* : nullable MType */;
1298 val
* var_attr_type
/* var attr_type: MType */;
1299 val
* var56
/* : AExpr */;
1300 short int var57
/* : Bool */;
1303 val
* var60
/* : MType */;
1305 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrFormExpr>*/;
1306 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
1307 var_recvtype
= var1
;
1309 if (var_recvtype
== NULL
) {
1310 var3
= 1; /* is null */
1312 var3
= 0; /* arg is null but recv is not */
1318 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_id
]))(self
) /* n_id on <self:AAttrFormExpr>*/;
1319 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_parser_nodes__Token__text
]))(var4
) /* text on <var4:TAttrid>*/;
1321 /* <var_recvtype:nullable MType(MType)> isa MNullType */
1322 cltype
= type_model__MNullType
.color
;
1323 idtype
= type_model__MNullType
.id
;
1324 if(cltype
>= var_recvtype
->type
->table_size
) {
1327 var6
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
1333 var8
= "Error: Attribute \'";
1335 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1342 var13
= "\' access on \'null\'.";
1344 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1348 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
1349 { /* var16 = array_instance Array[Object] */
1351 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
1352 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
1353 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_name
;
1354 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
1355 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
1357 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
1358 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var19
) /* error on <var_v:TypeVisitor>*/;
1362 var20
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_recvtype
) /* anchor_to on <var_v:TypeVisitor>*/;
1363 var_unsafe_type
= var20
;
1364 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>*/;
1365 var_mproperty
= var21
;
1367 if (var_mproperty
== NULL
) {
1368 var23
= 1; /* is null */
1370 var23
= 0; /* arg is null but recv is not */
1373 var24
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
1377 var27
= "Error: Attribute ";
1379 var29
= string__NativeString__to_s_with_length(var27
, var28
);
1386 var32
= " doesn\'t exists in ";
1388 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1397 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1401 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
1402 { /* var40 = array_instance Array[Object] */
1404 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
1405 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var26
;
1406 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_name
;
1407 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var31
;
1408 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var_recvtype
;
1409 ((struct instance_array__NativeArray
*)var42
)->values
[4] = (val
*) var36
;
1410 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
1412 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
1413 ((void (*)(val
*, val
*, val
*))(var24
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var24
, self
, var43
) /* error on <var24:ModelBuilder>*/;
1417 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
1418 cltype45
= type_model__MAttribute
.color
;
1419 idtype46
= type_model__MAttribute
.id
;
1420 if(cltype45
>= var_mproperty
->type
->table_size
) {
1423 var44
= var_mproperty
->type
->type_table
[cltype45
] == idtype46
;
1426 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1427 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1600);
1430 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__mproperty_61d
]))(self
, var_mproperty
) /* mproperty= on <self:AAttrFormExpr>*/;
1431 var47
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
1432 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)>*/;
1433 var_mpropdefs
= var48
;
1434 var49
= ((long (*)(val
*))(var_mpropdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mpropdefs
) /* length on <var_mpropdefs:Array[MAttributeDef]>*/;
1436 { /* Inline kernel#Int#== (var49,var50) */
1437 var53
= var49
== var50
;
1440 RET_LABEL52
:(void)0;
1443 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1444 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1604);
1447 var54
= ((val
* (*)(val
*))(var_mpropdefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_mpropdefs
) /* first on <var_mpropdefs:Array[MAttributeDef]>*/;
1448 var_mpropdef
= var54
;
1449 var55
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var_mpropdef
) /* static_mtype on <var_mpropdef:MAttributeDef>*/;
1450 if (var55
== NULL
) {
1451 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1452 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1606);
1455 var_attr_type
= var55
;
1456 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrFormExpr>*/;
1457 /* <var56:AExpr> isa ASelfExpr */
1458 cltype58
= type_parser_nodes__ASelfExpr
.color
;
1459 idtype59
= type_parser_nodes__ASelfExpr
.id
;
1460 if(cltype58
>= var56
->type
->table_size
) {
1463 var57
= var56
->type
->type_table
[cltype58
] == idtype59
;
1465 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>*/;
1466 var_attr_type
= var60
;
1467 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type_61d
]))(self
, var_attr_type
) /* attr_type= on <self:AAttrFormExpr>*/;
1470 /* method typing#AAttrFormExpr#resolve_property for (self: Object, TypeVisitor) */
1471 void VIRTUAL_typing__AAttrFormExpr__resolve_property(val
* self
, val
* p0
) {
1472 typing__AAttrFormExpr__resolve_property(self
, p0
);
1475 /* method typing#AAttrExpr#accept_typing for (self: AAttrExpr, TypeVisitor) */
1476 void typing__AAttrExpr__accept_typing(val
* self
, val
* p0
) {
1477 val
* var_v
/* var v: TypeVisitor */;
1478 val
* var
/* : nullable MType */;
1480 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AAttrExpr>*/;
1481 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AAttrExpr>*/;
1482 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:AAttrExpr>*/;
1485 /* method typing#AAttrExpr#accept_typing for (self: Object, TypeVisitor) */
1486 void VIRTUAL_typing__AAttrExpr__accept_typing(val
* self
, val
* p0
) {
1487 typing__AAttrExpr__accept_typing(self
, p0
);
1490 /* method typing#AAttrAssignExpr#accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
1491 void typing__AAttrAssignExpr__accept_typing(val
* self
, val
* p0
) {
1492 val
* var_v
/* var v: TypeVisitor */;
1493 val
* var
/* : nullable MType */;
1494 val
* var_mtype
/* var mtype: nullable MType */;
1495 val
* var1
/* : AExpr */;
1496 val
* var2
/* : nullable MType */;
1497 short int var3
/* : Bool */;
1499 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AAttrAssignExpr>*/;
1500 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AAttrAssignExpr>*/;
1502 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AAttrAssignExpr>*/;
1503 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>*/;
1506 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAttrAssignExpr>*/;
1509 /* method typing#AAttrAssignExpr#accept_typing for (self: Object, TypeVisitor) */
1510 void VIRTUAL_typing__AAttrAssignExpr__accept_typing(val
* self
, val
* p0
) {
1511 typing__AAttrAssignExpr__accept_typing(self
, p0
);
1514 /* method typing#AAttrReassignExpr#accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
1515 void typing__AAttrReassignExpr__accept_typing(val
* self
, val
* p0
) {
1516 val
* var_v
/* var v: TypeVisitor */;
1517 val
* var
/* : nullable MType */;
1518 val
* var_mtype
/* var mtype: nullable MType */;
1519 val
* var1
/* : null */;
1520 short int var2
/* : Bool */;
1521 val
* var3
/* : nullable MType */;
1522 short int var4
/* : Bool */;
1524 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AAttrReassignExpr>*/;
1525 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AAttrReassignExpr>*/;
1528 if (var_mtype
== NULL
) {
1529 var2
= 1; /* is null */
1531 var2
= 0; /* arg is null but recv is not */
1537 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>*/;
1540 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AAttrReassignExpr>*/;
1543 /* method typing#AAttrReassignExpr#accept_typing for (self: Object, TypeVisitor) */
1544 void VIRTUAL_typing__AAttrReassignExpr__accept_typing(val
* self
, val
* p0
) {
1545 typing__AAttrReassignExpr__accept_typing(self
, p0
);
1548 /* method typing#AIssetAttrExpr#accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
1549 void typing__AIssetAttrExpr__accept_typing(val
* self
, val
* p0
) {
1550 val
* var_v
/* var v: TypeVisitor */;
1551 val
* var
/* : nullable MType */;
1552 val
* var_mtype
/* var mtype: nullable MType */;
1553 val
* var1
/* : null */;
1554 short int var2
/* : Bool */;
1555 val
* var3
/* : AExpr */;
1556 val
* var4
/* : nullable MType */;
1557 val
* var_recvtype
/* var recvtype: MType */;
1558 short int var5
/* : Bool */;
1559 val
* var6
/* : MType */;
1560 val
* var_bound
/* var bound: MType */;
1561 short int var7
/* : Bool */;
1564 static val
* varonce
;
1565 val
* var8
/* : String */;
1566 char* var9
/* : NativeString */;
1567 long var10
/* : Int */;
1568 val
* var11
/* : String */;
1569 val
* var12
/* : nullable MType */;
1571 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__resolve_property
]))(self
, var_v
) /* resolve_property on <self:AIssetAttrExpr>*/;
1572 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__attr_type
]))(self
) /* attr_type on <self:AIssetAttrExpr>*/;
1575 if (var_mtype
== NULL
) {
1576 var2
= 1; /* is null */
1578 var2
= 0; /* arg is null but recv is not */
1584 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AIssetAttrExpr>*/;
1585 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_typing__AExpr__mtype
]))(var3
) /* mtype on <var3:AExpr>*/;
1587 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1588 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1652);
1591 var_recvtype
= var4
;
1593 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>*/;
1595 /* <var_bound:MType> isa MNullableType */
1596 cltype
= type_model__MNullableType
.color
;
1597 idtype
= type_model__MNullableType
.id
;
1598 if(cltype
>= var_bound
->type
->table_size
) {
1601 var7
= var_bound
->type
->type_table
[cltype
] == idtype
;
1607 var9
= "Error: isset on a nullable attribute.";
1609 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1613 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
1616 var12
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
1617 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var12
) /* mtype= on <self:AIssetAttrExpr>*/;
1620 /* method typing#AIssetAttrExpr#accept_typing for (self: Object, TypeVisitor) */
1621 void VIRTUAL_typing__AIssetAttrExpr__accept_typing(val
* self
, val
* p0
) {
1622 typing__AIssetAttrExpr__accept_typing(self
, p0
);
1625 /* method typing#ADebugTypeExpr#accept_typing for (self: ADebugTypeExpr, TypeVisitor) */
1626 void typing__ADebugTypeExpr__accept_typing(val
* self
, val
* p0
) {
1627 val
* var_v
/* var v: TypeVisitor */;
1628 val
* var
/* : AExpr */;
1629 val
* var1
/* : nullable MType */;
1630 val
* var_expr
/* var expr: nullable MType */;
1631 val
* var2
/* : null */;
1632 short int var3
/* : Bool */;
1633 val
* var4
/* : MType */;
1634 val
* var_unsafe
/* var unsafe: MType */;
1635 val
* var5
/* : AType */;
1636 val
* var_ntype
/* var ntype: AType */;
1637 val
* var6
/* : nullable MType */;
1638 val
* var_mtype
/* var mtype: nullable MType */;
1639 short int var7
/* : Bool */;
1640 val
* var8
/* : null */;
1641 short int var9
/* : Bool */;
1642 short int var_
/* var : Bool */;
1643 short int var10
/* : Bool */;
1644 val
* var11
/* : MType */;
1645 val
* var_umtype
/* var umtype: MType */;
1646 val
* var12
/* : ModelBuilder */;
1647 static val
* varonce
;
1648 val
* var13
/* : String */;
1649 char* var14
/* : NativeString */;
1650 long var15
/* : Int */;
1651 val
* var16
/* : String */;
1652 static val
* varonce17
;
1653 val
* var18
/* : String */;
1654 char* var19
/* : NativeString */;
1655 long var20
/* : Int */;
1656 val
* var21
/* : String */;
1657 static val
* varonce22
;
1658 val
* var23
/* : String */;
1659 char* var24
/* : NativeString */;
1660 long var25
/* : Int */;
1661 val
* var26
/* : String */;
1662 static val
* varonce27
;
1663 val
* var28
/* : String */;
1664 char* var29
/* : NativeString */;
1665 long var30
/* : Int */;
1666 val
* var31
/* : String */;
1667 static val
* varonce32
;
1668 val
* var33
/* : String */;
1669 char* var34
/* : NativeString */;
1670 long var35
/* : Int */;
1671 val
* var36
/* : String */;
1672 val
* var37
/* : Array[Object] */;
1673 long var38
/* : Int */;
1674 val
* var39
/* : NativeArray[Object] */;
1675 val
* var40
/* : String */;
1676 short int var41
/* : Bool */;
1678 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADebugTypeExpr__n_expr
]))(self
) /* n_expr on <self:ADebugTypeExpr>*/;
1679 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
1682 if (var_expr
== NULL
) {
1683 var3
= 1; /* is null */
1685 var3
= 0; /* arg is null but recv is not */
1691 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_expr
) /* anchor_to on <var_v:TypeVisitor>*/;
1693 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADebugTypeExpr__n_type
]))(self
) /* n_type on <self:ADebugTypeExpr>*/;
1695 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
1698 if (var_mtype
== NULL
) {
1699 var9
= 0; /* is null */
1701 var9
= 1; /* arg is null and recv is not */
1705 var10
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_mtype
, var_expr
) /* != on <var_mtype:nullable MType(MType)>*/;
1711 var11
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
1713 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
1717 var14
= "Found type ";
1719 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1728 var21
= string__NativeString__to_s_with_length(var19
, var20
);
1735 var24
= "), expected ";
1737 var26
= string__NativeString__to_s_with_length(var24
, var25
);
1746 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1755 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1759 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
1760 { /* var37 = array_instance Array[Object] */
1762 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
1763 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var13
;
1764 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_expr
;
1765 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var18
;
1766 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var_unsafe
;
1767 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var23
;
1768 ((struct instance_array__NativeArray
*)var39
)->values
[5] = (val
*) var_mtype
;
1769 ((struct instance_array__NativeArray
*)var39
)->values
[6] = (val
*) var28
;
1770 ((struct instance_array__NativeArray
*)var39
)->values
[7] = (val
*) var_umtype
;
1771 ((struct instance_array__NativeArray
*)var39
)->values
[8] = (val
*) var33
;
1772 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
1774 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
1775 ((void (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var12
, self
, var40
) /* warning on <var12:ModelBuilder>*/;
1779 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var41
) /* is_typed= on <self:ADebugTypeExpr>*/;
1782 /* method typing#ADebugTypeExpr#accept_typing for (self: Object, TypeVisitor) */
1783 void VIRTUAL_typing__ADebugTypeExpr__accept_typing(val
* self
, val
* p0
) {
1784 typing__ADebugTypeExpr__accept_typing(self
, p0
);