README: document nit_env.sh
[nit.git] / c_src / standard__bytes.sep.1.c
1 #include "standard__bytes.sep.0.h"
2 /* method bytes#Bytes#items for (self: Bytes): NativeString */
3 char* standard___standard__Bytes___items(val* self) {
4 char* var /* : NativeString */;
5 char* var1 /* : NativeString */;
6 var1 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method bytes#Bytes#items= for (self: Bytes, NativeString) */
12 void standard___standard__Bytes___items_61d(val* self, char* p0) {
13 self->attrs[COLOR_standard__bytes__Bytes___items].str = p0; /* _items on <self:Bytes> */
14 RET_LABEL:;
15 }
16 /* method bytes#Bytes#length for (self: Bytes): Int */
17 long standard___standard__Bytes___standard__abstract_collection__Collection__length(val* self) {
18 long var /* : Int */;
19 long var1 /* : Int */;
20 var1 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method bytes#Bytes#length= for (self: Bytes, Int) */
26 void standard___standard__Bytes___standard__array__AbstractArrayRead__length_61d(val* self, long p0) {
27 self->attrs[COLOR_standard__bytes__Bytes___length].l = p0; /* _length on <self:Bytes> */
28 RET_LABEL:;
29 }
30 /* method bytes#Bytes#capacity for (self: Bytes): Int */
31 long standard___standard__Bytes___capacity(val* self) {
32 long var /* : Int */;
33 long var1 /* : Int */;
34 var1 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
35 var = var1;
36 RET_LABEL:;
37 return var;
38 }
39 /* method bytes#Bytes#capacity= for (self: Bytes, Int) */
40 void standard___standard__Bytes___capacity_61d(val* self, long p0) {
41 self->attrs[COLOR_standard__bytes__Bytes___capacity].l = p0; /* _capacity on <self:Bytes> */
42 RET_LABEL:;
43 }
44 /* method bytes#Bytes#persisted for (self: Bytes): Bool */
45 short int standard___standard__Bytes___persisted(val* self) {
46 short int var /* : Bool */;
47 short int var1 /* : Bool */;
48 var1 = self->attrs[COLOR_standard__bytes__Bytes___persisted].s; /* _persisted on <self:Bytes> */
49 var = var1;
50 RET_LABEL:;
51 return var;
52 }
53 /* method bytes#Bytes#persisted= for (self: Bytes, Bool) */
54 void standard___standard__Bytes___persisted_61d(val* self, short int p0) {
55 self->attrs[COLOR_standard__bytes__Bytes___persisted].s = p0; /* _persisted on <self:Bytes> */
56 RET_LABEL:;
57 }
58 /* method bytes#Bytes#empty for (self: Bytes) */
59 void standard___standard__Bytes___empty(val* self) {
60 char* var /* : NativeString */;
61 char* var1 /* : NativeString */;
62 char* var3 /* : NativeString */;
63 char* var_ns /* var ns: NativeString */;
64 var = NULL/*special!*/;
65 {
66 { /* Inline string#NativeString#new (var,0l) on <var:NativeString> */
67 var3 = (char*)nit_alloc(0l);
68 var1 = var3;
69 goto RET_LABEL2;
70 RET_LABEL2:(void)0;
71 }
72 }
73 var_ns = var1;
74 {
75 ((void(*)(val* self, char* p0))(self->class->vft[COLOR_standard__bytes__Bytes__items_61d]))(self, var_ns); /* items= on <self:Bytes>*/
76 }
77 {
78 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__array__AbstractArrayRead__length_61d]))(self, 0l); /* length= on <self:Bytes>*/
79 }
80 {
81 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__bytes__Bytes__capacity_61d]))(self, 0l); /* capacity= on <self:Bytes>*/
82 }
83 {
84 ((void(*)(val* self))(self->class->vft[COLOR_standard__kernel__Object__init]))(self); /* init on <self:Bytes>*/
85 }
86 RET_LABEL:;
87 }
88 /* method bytes#Bytes#with_capacity for (self: Bytes, Int) */
89 void standard___standard__Bytes___with_capacity(val* self, long p0) {
90 long var_cap /* var cap: Int */;
91 char* var /* : NativeString */;
92 char* var1 /* : NativeString */;
93 char* var3 /* : NativeString */;
94 char* var_ns /* var ns: NativeString */;
95 var_cap = p0;
96 var = NULL/*special!*/;
97 {
98 { /* Inline string#NativeString#new (var,var_cap) on <var:NativeString> */
99 var3 = (char*)nit_alloc(var_cap);
100 var1 = var3;
101 goto RET_LABEL2;
102 RET_LABEL2:(void)0;
103 }
104 }
105 var_ns = var1;
106 {
107 ((void(*)(val* self, char* p0))(self->class->vft[COLOR_standard__bytes__Bytes__items_61d]))(self, var_ns); /* items= on <self:Bytes>*/
108 }
109 {
110 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__array__AbstractArrayRead__length_61d]))(self, 0l); /* length= on <self:Bytes>*/
111 }
112 {
113 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__bytes__Bytes__capacity_61d]))(self, var_cap); /* capacity= on <self:Bytes>*/
114 }
115 {
116 ((void(*)(val* self))(self->class->vft[COLOR_standard__kernel__Object__init]))(self); /* init on <self:Bytes>*/
117 }
118 RET_LABEL:;
119 }
120 /* method bytes#Bytes#is_empty for (self: Bytes): Bool */
121 short int standard___standard__Bytes___standard__abstract_collection__Collection__is_empty(val* self) {
122 short int var /* : Bool */;
123 long var1 /* : Int */;
124 long var3 /* : Int */;
125 short int var4 /* : Bool */;
126 short int var6 /* : Bool */;
127 short int var7 /* : Bool */;
128 {
129 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
130 var3 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
131 var1 = var3;
132 RET_LABEL2:(void)0;
133 }
134 }
135 {
136 { /* Inline kernel#Int#!= (var1,0l) on <var1:Int> */
137 var6 = var1 == 0l;
138 var7 = !var6;
139 var4 = var7;
140 goto RET_LABEL5;
141 RET_LABEL5:(void)0;
142 }
143 }
144 var = var4;
145 goto RET_LABEL;
146 RET_LABEL:;
147 return var;
148 }
149 /* method bytes#Bytes#[] for (self: Bytes, Int): Int */
150 long standard___standard__Bytes___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
151 long var /* : Int */;
152 long var_i /* var i: Int */;
153 short int var1 /* : Bool */;
154 short int var3 /* : Bool */;
155 int cltype;
156 int idtype;
157 const char* var_class_name;
158 short int var4 /* : Bool */;
159 long var5 /* : Int */;
160 long var7 /* : Int */;
161 short int var8 /* : Bool */;
162 short int var10 /* : Bool */;
163 int cltype11;
164 int idtype12;
165 const char* var_class_name13;
166 short int var14 /* : Bool */;
167 char* var15 /* : NativeString */;
168 char* var17 /* : NativeString */;
169 uint32_t var18 /* : Char */;
170 uint32_t var20 /* : Char */;
171 long var21 /* : Int */;
172 long var23 /* : Int */;
173 var_i = p0;
174 {
175 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
176 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
177 /* <0l:Int> isa OTHER */
178 var3 = 1; /* easy <0l:Int> isa OTHER*/
179 if (unlikely(!var3)) {
180 var_class_name = type_standard__Int.name;
181 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
182 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
183 fatal_exit(1);
184 }
185 var4 = var_i >= 0l;
186 var1 = var4;
187 goto RET_LABEL2;
188 RET_LABEL2:(void)0;
189 }
190 }
191 if (unlikely(!var1)) {
192 PRINT_ERROR("Runtime error: %s", "Assert failed");
193 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 62);
194 fatal_exit(1);
195 }
196 {
197 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
198 var7 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
199 var5 = var7;
200 RET_LABEL6:(void)0;
201 }
202 }
203 {
204 { /* Inline kernel#Int#< (var_i,var5) on <var_i:Int> */
205 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
206 /* <var5:Int> isa OTHER */
207 var10 = 1; /* easy <var5:Int> isa OTHER*/
208 if (unlikely(!var10)) {
209 var_class_name13 = type_standard__Int.name;
210 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
211 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
212 fatal_exit(1);
213 }
214 var14 = var_i < var5;
215 var8 = var14;
216 goto RET_LABEL9;
217 RET_LABEL9:(void)0;
218 }
219 }
220 if (unlikely(!var8)) {
221 PRINT_ERROR("Runtime error: %s", "Assert failed");
222 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 63);
223 fatal_exit(1);
224 }
225 {
226 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
227 var17 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
228 var15 = var17;
229 RET_LABEL16:(void)0;
230 }
231 }
232 {
233 { /* Inline string#NativeString#[] (var15,var_i) on <var15:NativeString> */
234 var20 = (uint32_t)(unsigned char)var15[var_i];
235 var18 = var20;
236 goto RET_LABEL19;
237 RET_LABEL19:(void)0;
238 }
239 }
240 {
241 { /* Inline kernel#Char#ascii (var18) on <var18:Char> */
242 var23 = (long)var18;
243 var21 = var23;
244 goto RET_LABEL22;
245 RET_LABEL22:(void)0;
246 }
247 }
248 var = var21;
249 goto RET_LABEL;
250 RET_LABEL:;
251 return var;
252 }
253 /* method bytes#Bytes#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
254 val* VIRTUAL_standard___standard__Bytes___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
255 val* var /* : nullable Object */;
256 long var1 /* : Int */;
257 val* var2 /* : nullable Object */;
258 var1 = standard___standard__Bytes___standard__abstract_collection__SequenceRead___91d_93d(self, p0);
259 var2 = (val*)(var1<<2|1);
260 var = var2;
261 RET_LABEL:;
262 return var;
263 }
264 /* method bytes#Bytes#[]= for (self: Bytes, Int, Int) */
265 void standard___standard__Bytes___standard__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, long p1) {
266 short int var /* : Bool */;
267 int cltype;
268 int idtype;
269 const char* var_class_name;
270 long var_i /* var i: Int */;
271 long var_v /* var v: Int */;
272 short int var1 /* : Bool */;
273 short int var3 /* : Bool */;
274 short int var4 /* : Bool */;
275 short int var6 /* : Bool */;
276 int cltype7;
277 int idtype8;
278 const char* var_class_name9;
279 short int var10 /* : Bool */;
280 long var11 /* : Int */;
281 long var13 /* : Int */;
282 short int var14 /* : Bool */;
283 short int var16 /* : Bool */;
284 int cltype17;
285 int idtype18;
286 const char* var_class_name19;
287 short int var20 /* : Bool */;
288 long var21 /* : Int */;
289 long var23 /* : Int */;
290 short int var24 /* : Bool */;
291 short int var26 /* : Bool */;
292 char* var27 /* : NativeString */;
293 char* var29 /* : NativeString */;
294 uint32_t var30 /* : Char */;
295 uint32_t var32 /* : Char */;
296 /* Covariant cast for argument 1 (v) <p1:Int> isa Int */
297 /* <p1:Int> isa Int */
298 var = 1; /* easy <p1:Int> isa Int*/
299 if (unlikely(!var)) {
300 var_class_name = type_standard__Int.name;
301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int", var_class_name);
302 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 67);
303 fatal_exit(1);
304 }
305 var_i = p0;
306 var_v = p1;
307 {
308 { /* Inline bytes#Bytes#persisted (self) on <self:Bytes> */
309 var3 = self->attrs[COLOR_standard__bytes__Bytes___persisted].s; /* _persisted on <self:Bytes> */
310 var1 = var3;
311 RET_LABEL2:(void)0;
312 }
313 }
314 if (var1){
315 {
316 standard___standard__Bytes___regen(self); /* Direct call bytes#Bytes#regen on <self:Bytes>*/
317 }
318 } else {
319 }
320 {
321 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
322 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
323 /* <0l:Int> isa OTHER */
324 var6 = 1; /* easy <0l:Int> isa OTHER*/
325 if (unlikely(!var6)) {
326 var_class_name9 = type_standard__Int.name;
327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9);
328 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
329 fatal_exit(1);
330 }
331 var10 = var_i >= 0l;
332 var4 = var10;
333 goto RET_LABEL5;
334 RET_LABEL5:(void)0;
335 }
336 }
337 if (unlikely(!var4)) {
338 PRINT_ERROR("Runtime error: %s", "Assert failed");
339 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 72);
340 fatal_exit(1);
341 }
342 {
343 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
344 var13 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
345 var11 = var13;
346 RET_LABEL12:(void)0;
347 }
348 }
349 {
350 { /* Inline kernel#Int#<= (var_i,var11) on <var_i:Int> */
351 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
352 /* <var11:Int> isa OTHER */
353 var16 = 1; /* easy <var11:Int> isa OTHER*/
354 if (unlikely(!var16)) {
355 var_class_name19 = type_standard__Int.name;
356 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
357 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
358 fatal_exit(1);
359 }
360 var20 = var_i <= var11;
361 var14 = var20;
362 goto RET_LABEL15;
363 RET_LABEL15:(void)0;
364 }
365 }
366 if (unlikely(!var14)) {
367 PRINT_ERROR("Runtime error: %s", "Assert failed");
368 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 73);
369 fatal_exit(1);
370 }
371 {
372 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
373 var23 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
374 var21 = var23;
375 RET_LABEL22:(void)0;
376 }
377 }
378 {
379 { /* Inline kernel#Int#== (var_i,var21) on <var_i:Int> */
380 var26 = var_i == var21;
381 var24 = var26;
382 goto RET_LABEL25;
383 RET_LABEL25:(void)0;
384 }
385 }
386 if (var24){
387 {
388 standard___standard__Bytes___standard__abstract_collection__SimpleCollection__add(self, var_v); /* Direct call bytes#Bytes#add on <self:Bytes>*/
389 }
390 } else {
391 }
392 {
393 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
394 var29 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
395 var27 = var29;
396 RET_LABEL28:(void)0;
397 }
398 }
399 {
400 { /* Inline kernel#Int#ascii (var_v) on <var_v:Int> */
401 var32 = (uint32_t)var_v;
402 var30 = var32;
403 goto RET_LABEL31;
404 RET_LABEL31:(void)0;
405 }
406 }
407 {
408 { /* Inline string#NativeString#[]= (var27,var_i,var30) on <var27:NativeString> */
409 var27[var_i]=(unsigned char)var30;
410 RET_LABEL33:(void)0;
411 }
412 }
413 RET_LABEL:;
414 }
415 /* method bytes#Bytes#[]= for (self: Sequence[nullable Object], Int, nullable Object) */
416 void VIRTUAL_standard___standard__Bytes___standard__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, val* p1) {
417 long var /* : Int */;
418 var = (long)(p1)>>2;
419 standard___standard__Bytes___standard__abstract_collection__Sequence___91d_93d_61d(self, p0, var); /* Direct call bytes#Bytes#[]= on <self:Sequence[nullable Object](Bytes)>*/
420 RET_LABEL:;
421 }
422 /* method bytes#Bytes#add for (self: Bytes, Int) */
423 void standard___standard__Bytes___standard__abstract_collection__SimpleCollection__add(val* self, long p0) {
424 short int var /* : Bool */;
425 int cltype;
426 int idtype;
427 const char* var_class_name;
428 long var_c /* var c: Int */;
429 short int var1 /* : Bool */;
430 short int var3 /* : Bool */;
431 long var4 /* : Int */;
432 long var6 /* : Int */;
433 long var7 /* : Int */;
434 long var9 /* : Int */;
435 short int var10 /* : Bool */;
436 short int var12 /* : Bool */;
437 int cltype13;
438 int idtype14;
439 const char* var_class_name15;
440 short int var16 /* : Bool */;
441 long var17 /* : Int */;
442 long var19 /* : Int */;
443 char* var20 /* : NativeString */;
444 char* var22 /* : NativeString */;
445 long var23 /* : Int */;
446 long var25 /* : Int */;
447 uint32_t var26 /* : Char */;
448 uint32_t var28 /* : Char */;
449 val* var_ /* var : Bytes */;
450 long var30 /* : Int */;
451 long var32 /* : Int */;
452 long var33 /* : Int */;
453 short int var35 /* : Bool */;
454 int cltype36;
455 int idtype37;
456 const char* var_class_name38;
457 long var39 /* : Int */;
458 /* Covariant cast for argument 0 (c) <p0:Int> isa Int */
459 /* <p0:Int> isa Int */
460 var = 1; /* easy <p0:Int> isa Int*/
461 if (unlikely(!var)) {
462 var_class_name = type_standard__Int.name;
463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int", var_class_name);
464 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 78);
465 fatal_exit(1);
466 }
467 var_c = p0;
468 {
469 { /* Inline bytes#Bytes#persisted (self) on <self:Bytes> */
470 var3 = self->attrs[COLOR_standard__bytes__Bytes___persisted].s; /* _persisted on <self:Bytes> */
471 var1 = var3;
472 RET_LABEL2:(void)0;
473 }
474 }
475 if (var1){
476 {
477 standard___standard__Bytes___regen(self); /* Direct call bytes#Bytes#regen on <self:Bytes>*/
478 }
479 } else {
480 }
481 {
482 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
483 var6 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
484 var4 = var6;
485 RET_LABEL5:(void)0;
486 }
487 }
488 {
489 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
490 var9 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
491 var7 = var9;
492 RET_LABEL8:(void)0;
493 }
494 }
495 {
496 { /* Inline kernel#Int#>= (var4,var7) on <var4:Int> */
497 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
498 /* <var7:Int> isa OTHER */
499 var12 = 1; /* easy <var7:Int> isa OTHER*/
500 if (unlikely(!var12)) {
501 var_class_name15 = type_standard__Int.name;
502 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
503 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
504 fatal_exit(1);
505 }
506 var16 = var4 >= var7;
507 var10 = var16;
508 goto RET_LABEL11;
509 RET_LABEL11:(void)0;
510 }
511 }
512 if (var10){
513 {
514 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
515 var19 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
516 var17 = var19;
517 RET_LABEL18:(void)0;
518 }
519 }
520 {
521 standard___standard__Bytes___standard__array__AbstractArray__enlarge(self, var17); /* Direct call bytes#Bytes#enlarge on <self:Bytes>*/
522 }
523 } else {
524 }
525 {
526 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
527 var22 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
528 var20 = var22;
529 RET_LABEL21:(void)0;
530 }
531 }
532 {
533 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
534 var25 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
535 var23 = var25;
536 RET_LABEL24:(void)0;
537 }
538 }
539 {
540 { /* Inline kernel#Int#ascii (var_c) on <var_c:Int> */
541 var28 = (uint32_t)var_c;
542 var26 = var28;
543 goto RET_LABEL27;
544 RET_LABEL27:(void)0;
545 }
546 }
547 {
548 { /* Inline string#NativeString#[]= (var20,var23,var26) on <var20:NativeString> */
549 var20[var23]=(unsigned char)var26;
550 RET_LABEL29:(void)0;
551 }
552 }
553 var_ = self;
554 {
555 { /* Inline bytes#Bytes#length (var_) on <var_:Bytes> */
556 var32 = var_->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <var_:Bytes> */
557 var30 = var32;
558 RET_LABEL31:(void)0;
559 }
560 }
561 {
562 { /* Inline kernel#Int#+ (var30,1l) on <var30:Int> */
563 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
564 /* <1l:Int> isa OTHER */
565 var35 = 1; /* easy <1l:Int> isa OTHER*/
566 if (unlikely(!var35)) {
567 var_class_name38 = type_standard__Int.name;
568 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
569 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
570 fatal_exit(1);
571 }
572 var39 = var30 + 1l;
573 var33 = var39;
574 goto RET_LABEL34;
575 RET_LABEL34:(void)0;
576 }
577 }
578 {
579 { /* Inline bytes#Bytes#length= (var_,var33) on <var_:Bytes> */
580 var_->attrs[COLOR_standard__bytes__Bytes___length].l = var33; /* _length on <var_:Bytes> */
581 RET_LABEL40:(void)0;
582 }
583 }
584 RET_LABEL:;
585 }
586 /* method bytes#Bytes#add for (self: SimpleCollection[nullable Object], nullable Object) */
587 void VIRTUAL_standard___standard__Bytes___standard__abstract_collection__SimpleCollection__add(val* self, val* p0) {
588 long var /* : Int */;
589 var = (long)(p0)>>2;
590 standard___standard__Bytes___standard__abstract_collection__SimpleCollection__add(self, var); /* Direct call bytes#Bytes#add on <self:SimpleCollection[nullable Object](Bytes)>*/
591 RET_LABEL:;
592 }
593 /* method bytes#Bytes#append for (self: Bytes, Collection[Int]) */
594 void standard___standard__Bytes___standard__abstract_collection__Sequence__append(val* self, val* p0) {
595 short int var /* : Bool */;
596 int cltype;
597 int idtype;
598 const char* var_class_name;
599 val* var_arr /* var arr: Collection[Int] */;
600 short int var1 /* : Bool */;
601 int cltype2;
602 int idtype3;
603 char* var4 /* : NativeString */;
604 char* var6 /* : NativeString */;
605 long var7 /* : Int */;
606 long var9 /* : Int */;
607 val* var_ /* var : Collection[Int] */;
608 val* var10 /* : Iterator[nullable Object] */;
609 val* var_11 /* var : Iterator[Int] */;
610 short int var12 /* : Bool */;
611 val* var13 /* : nullable Object */;
612 long var14 /* : Int */;
613 long var_i /* var i: Int */;
614 /* Covariant cast for argument 0 (arr) <p0:Collection[Int]> isa Collection[Int] */
615 /* <p0:Collection[Int]> isa Collection[Int] */
616 var = 1; /* easy <p0:Collection[Int]> isa Collection[Int]*/
617 if (unlikely(!var)) {
618 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
619 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Int]", var_class_name);
620 PRINT_ERROR(" (%s:%d)\n", FILE_standard__bytes, 90);
621 fatal_exit(1);
622 }
623 var_arr = p0;
624 /* <var_arr:Collection[Int]> isa Bytes */
625 cltype2 = type_standard__Bytes.color;
626 idtype3 = type_standard__Bytes.id;
627 if(cltype2 >= (((long)var_arr&3)?type_info[((long)var_arr&3)]:var_arr->type)->table_size) {
628 var1 = 0;
629 } else {
630 var1 = (((long)var_arr&3)?type_info[((long)var_arr&3)]:var_arr->type)->type_table[cltype2] == idtype3;
631 }
632 if (var1){
633 {
634 { /* Inline bytes#Bytes#items (var_arr) on <var_arr:Collection[Int](Bytes)> */
635 var6 = var_arr->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <var_arr:Collection[Int](Bytes)> */
636 var4 = var6;
637 RET_LABEL5:(void)0;
638 }
639 }
640 {
641 { /* Inline bytes#Bytes#length (var_arr) on <var_arr:Collection[Int](Bytes)> */
642 var9 = var_arr->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <var_arr:Collection[Int](Bytes)> */
643 var7 = var9;
644 RET_LABEL8:(void)0;
645 }
646 }
647 {
648 standard___standard__Bytes___append_ns(self, var4, var7); /* Direct call bytes#Bytes#append_ns on <self:Bytes>*/
649 }
650 } else {
651 var_ = var_arr;
652 {
653 var10 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[Int]>*/
654 }
655 var_11 = var10;
656 for(;;) {
657 {
658 var12 = ((short int(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_11); /* is_ok on <var_11:Iterator[Int]>*/
659 }
660 if (var12){
661 {
662 var13 = ((val*(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_11); /* item on <var_11:Iterator[Int]>*/
663 }
664 var14 = (long)(var13)>>2;
665 var_i = var14;
666 {
667 standard___standard__Bytes___standard__abstract_collection__SimpleCollection__add(self, var_i); /* Direct call bytes#Bytes#add on <self:Bytes>*/
668 }
669 {
670 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_11); /* next on <var_11:Iterator[Int]>*/
671 }
672 } else {
673 goto BREAK_label;
674 }
675 }
676 BREAK_label: (void)0;
677 {
678 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_11); /* finish on <var_11:Iterator[Int]>*/
679 }
680 }
681 RET_LABEL:;
682 }
683 /* method bytes#Bytes#clear for (self: Bytes) */
684 void standard___standard__Bytes___standard__abstract_collection__RemovableCollection__clear(val* self) {
685 {
686 { /* Inline bytes#Bytes#length= (self,0l) on <self:Bytes> */
687 self->attrs[COLOR_standard__bytes__Bytes___length].l = 0l; /* _length on <self:Bytes> */
688 RET_LABEL1:(void)0;
689 }
690 }
691 RET_LABEL:;
692 }
693 /* method bytes#Bytes#regen for (self: Bytes) */
694 void standard___standard__Bytes___regen(val* self) {
695 char* var /* : NativeString */;
696 long var1 /* : Int */;
697 long var3 /* : Int */;
698 char* var4 /* : NativeString */;
699 char* var6 /* : NativeString */;
700 char* var_nns /* var nns: NativeString */;
701 char* var7 /* : NativeString */;
702 char* var9 /* : NativeString */;
703 long var10 /* : Int */;
704 long var12 /* : Int */;
705 var = NULL/*special!*/;
706 {
707 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
708 var3 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
709 var1 = var3;
710 RET_LABEL2:(void)0;
711 }
712 }
713 {
714 { /* Inline string#NativeString#new (var,var1) on <var:NativeString> */
715 var6 = (char*)nit_alloc(var1);
716 var4 = var6;
717 goto RET_LABEL5;
718 RET_LABEL5:(void)0;
719 }
720 }
721 var_nns = var4;
722 {
723 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
724 var9 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
725 var7 = var9;
726 RET_LABEL8:(void)0;
727 }
728 }
729 {
730 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
731 var12 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
732 var10 = var12;
733 RET_LABEL11:(void)0;
734 }
735 }
736 {
737 { /* Inline string#NativeString#copy_to (var7,var_nns,var10,0l,0l) on <var7:NativeString> */
738 memmove(var_nns+0l,var7+0l,var10);
739 RET_LABEL13:(void)0;
740 }
741 }
742 {
743 { /* Inline bytes#Bytes#persisted= (self,0) on <self:Bytes> */
744 self->attrs[COLOR_standard__bytes__Bytes___persisted].s = 0; /* _persisted on <self:Bytes> */
745 RET_LABEL14:(void)0;
746 }
747 }
748 RET_LABEL:;
749 }
750 /* method bytes#Bytes#append_ns for (self: Bytes, NativeString, Int) */
751 void standard___standard__Bytes___append_ns(val* self, char* p0, long p1) {
752 char* var_ns /* var ns: NativeString */;
753 long var_ln /* var ln: Int */;
754 short int var /* : Bool */;
755 short int var2 /* : Bool */;
756 long var3 /* : Int */;
757 long var5 /* : Int */;
758 long var6 /* : Int */;
759 short int var8 /* : Bool */;
760 int cltype;
761 int idtype;
762 const char* var_class_name;
763 long var9 /* : Int */;
764 long var_nlen /* var nlen: Int */;
765 long var10 /* : Int */;
766 long var12 /* : Int */;
767 short int var13 /* : Bool */;
768 short int var15 /* : Bool */;
769 int cltype16;
770 int idtype17;
771 const char* var_class_name18;
772 short int var19 /* : Bool */;
773 char* var20 /* : NativeString */;
774 char* var22 /* : NativeString */;
775 long var23 /* : Int */;
776 long var25 /* : Int */;
777 val* var_ /* var : Bytes */;
778 long var27 /* : Int */;
779 long var29 /* : Int */;
780 long var30 /* : Int */;
781 short int var32 /* : Bool */;
782 int cltype33;
783 int idtype34;
784 const char* var_class_name35;
785 long var36 /* : Int */;
786 var_ns = p0;
787 var_ln = p1;
788 {
789 { /* Inline bytes#Bytes#persisted (self) on <self:Bytes> */
790 var2 = self->attrs[COLOR_standard__bytes__Bytes___persisted].s; /* _persisted on <self:Bytes> */
791 var = var2;
792 RET_LABEL1:(void)0;
793 }
794 }
795 if (var){
796 {
797 standard___standard__Bytes___regen(self); /* Direct call bytes#Bytes#regen on <self:Bytes>*/
798 }
799 } else {
800 }
801 {
802 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
803 var5 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
804 var3 = var5;
805 RET_LABEL4:(void)0;
806 }
807 }
808 {
809 { /* Inline kernel#Int#+ (var3,var_ln) on <var3:Int> */
810 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
811 /* <var_ln:Int> isa OTHER */
812 var8 = 1; /* easy <var_ln:Int> isa OTHER*/
813 if (unlikely(!var8)) {
814 var_class_name = type_standard__Int.name;
815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
816 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
817 fatal_exit(1);
818 }
819 var9 = var3 + var_ln;
820 var6 = var9;
821 goto RET_LABEL7;
822 RET_LABEL7:(void)0;
823 }
824 }
825 var_nlen = var6;
826 {
827 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
828 var12 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
829 var10 = var12;
830 RET_LABEL11:(void)0;
831 }
832 }
833 {
834 { /* Inline kernel#Int#> (var_nlen,var10) on <var_nlen:Int> */
835 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
836 /* <var10:Int> isa OTHER */
837 var15 = 1; /* easy <var10:Int> isa OTHER*/
838 if (unlikely(!var15)) {
839 var_class_name18 = type_standard__Int.name;
840 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
841 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
842 fatal_exit(1);
843 }
844 var19 = var_nlen > var10;
845 var13 = var19;
846 goto RET_LABEL14;
847 RET_LABEL14:(void)0;
848 }
849 }
850 if (var13){
851 {
852 standard___standard__Bytes___standard__array__AbstractArray__enlarge(self, var_nlen); /* Direct call bytes#Bytes#enlarge on <self:Bytes>*/
853 }
854 } else {
855 }
856 {
857 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
858 var22 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
859 var20 = var22;
860 RET_LABEL21:(void)0;
861 }
862 }
863 {
864 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
865 var25 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
866 var23 = var25;
867 RET_LABEL24:(void)0;
868 }
869 }
870 {
871 { /* Inline string#NativeString#copy_to (var_ns,var20,var_ln,0l,var23) on <var_ns:NativeString> */
872 memmove(var20+var23,var_ns+0l,var_ln);
873 RET_LABEL26:(void)0;
874 }
875 }
876 var_ = self;
877 {
878 { /* Inline bytes#Bytes#length (var_) on <var_:Bytes> */
879 var29 = var_->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <var_:Bytes> */
880 var27 = var29;
881 RET_LABEL28:(void)0;
882 }
883 }
884 {
885 { /* Inline kernel#Int#+ (var27,var_ln) on <var27:Int> */
886 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
887 /* <var_ln:Int> isa OTHER */
888 var32 = 1; /* easy <var_ln:Int> isa OTHER*/
889 if (unlikely(!var32)) {
890 var_class_name35 = type_standard__Int.name;
891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
892 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
893 fatal_exit(1);
894 }
895 var36 = var27 + var_ln;
896 var30 = var36;
897 goto RET_LABEL31;
898 RET_LABEL31:(void)0;
899 }
900 }
901 {
902 { /* Inline bytes#Bytes#length= (var_,var30) on <var_:Bytes> */
903 var_->attrs[COLOR_standard__bytes__Bytes___length].l = var30; /* _length on <var_:Bytes> */
904 RET_LABEL37:(void)0;
905 }
906 }
907 RET_LABEL:;
908 }
909 /* method bytes#Bytes#append_ns_from for (self: Bytes, NativeString, Int, Int) */
910 void standard___standard__Bytes___append_ns_from(val* self, char* p0, long p1, long p2) {
911 char* var_ns /* var ns: NativeString */;
912 long var_ln /* var ln: Int */;
913 long var_from /* var from: Int */;
914 short int var /* : Bool */;
915 short int var2 /* : Bool */;
916 long var3 /* : Int */;
917 long var5 /* : Int */;
918 long var6 /* : Int */;
919 short int var8 /* : Bool */;
920 int cltype;
921 int idtype;
922 const char* var_class_name;
923 long var9 /* : Int */;
924 long var_nlen /* var nlen: Int */;
925 long var10 /* : Int */;
926 long var12 /* : Int */;
927 short int var13 /* : Bool */;
928 short int var15 /* : Bool */;
929 int cltype16;
930 int idtype17;
931 const char* var_class_name18;
932 short int var19 /* : Bool */;
933 char* var20 /* : NativeString */;
934 char* var22 /* : NativeString */;
935 long var23 /* : Int */;
936 long var25 /* : Int */;
937 val* var_ /* var : Bytes */;
938 long var27 /* : Int */;
939 long var29 /* : Int */;
940 long var30 /* : Int */;
941 short int var32 /* : Bool */;
942 int cltype33;
943 int idtype34;
944 const char* var_class_name35;
945 long var36 /* : Int */;
946 var_ns = p0;
947 var_ln = p1;
948 var_from = p2;
949 {
950 { /* Inline bytes#Bytes#persisted (self) on <self:Bytes> */
951 var2 = self->attrs[COLOR_standard__bytes__Bytes___persisted].s; /* _persisted on <self:Bytes> */
952 var = var2;
953 RET_LABEL1:(void)0;
954 }
955 }
956 if (var){
957 {
958 standard___standard__Bytes___regen(self); /* Direct call bytes#Bytes#regen on <self:Bytes>*/
959 }
960 } else {
961 }
962 {
963 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
964 var5 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
965 var3 = var5;
966 RET_LABEL4:(void)0;
967 }
968 }
969 {
970 { /* Inline kernel#Int#+ (var3,var_ln) on <var3:Int> */
971 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
972 /* <var_ln:Int> isa OTHER */
973 var8 = 1; /* easy <var_ln:Int> isa OTHER*/
974 if (unlikely(!var8)) {
975 var_class_name = type_standard__Int.name;
976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
977 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
978 fatal_exit(1);
979 }
980 var9 = var3 + var_ln;
981 var6 = var9;
982 goto RET_LABEL7;
983 RET_LABEL7:(void)0;
984 }
985 }
986 var_nlen = var6;
987 {
988 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
989 var12 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
990 var10 = var12;
991 RET_LABEL11:(void)0;
992 }
993 }
994 {
995 { /* Inline kernel#Int#> (var_nlen,var10) on <var_nlen:Int> */
996 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
997 /* <var10:Int> isa OTHER */
998 var15 = 1; /* easy <var10:Int> isa OTHER*/
999 if (unlikely(!var15)) {
1000 var_class_name18 = type_standard__Int.name;
1001 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1002 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1003 fatal_exit(1);
1004 }
1005 var19 = var_nlen > var10;
1006 var13 = var19;
1007 goto RET_LABEL14;
1008 RET_LABEL14:(void)0;
1009 }
1010 }
1011 if (var13){
1012 {
1013 standard___standard__Bytes___standard__array__AbstractArray__enlarge(self, var_nlen); /* Direct call bytes#Bytes#enlarge on <self:Bytes>*/
1014 }
1015 } else {
1016 }
1017 {
1018 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
1019 var22 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
1020 var20 = var22;
1021 RET_LABEL21:(void)0;
1022 }
1023 }
1024 {
1025 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
1026 var25 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
1027 var23 = var25;
1028 RET_LABEL24:(void)0;
1029 }
1030 }
1031 {
1032 { /* Inline string#NativeString#copy_to (var_ns,var20,var_ln,var_from,var23) on <var_ns:NativeString> */
1033 memmove(var20+var23,var_ns+var_from,var_ln);
1034 RET_LABEL26:(void)0;
1035 }
1036 }
1037 var_ = self;
1038 {
1039 { /* Inline bytes#Bytes#length (var_) on <var_:Bytes> */
1040 var29 = var_->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <var_:Bytes> */
1041 var27 = var29;
1042 RET_LABEL28:(void)0;
1043 }
1044 }
1045 {
1046 { /* Inline kernel#Int#+ (var27,var_ln) on <var27:Int> */
1047 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
1048 /* <var_ln:Int> isa OTHER */
1049 var32 = 1; /* easy <var_ln:Int> isa OTHER*/
1050 if (unlikely(!var32)) {
1051 var_class_name35 = type_standard__Int.name;
1052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
1053 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1054 fatal_exit(1);
1055 }
1056 var36 = var27 + var_ln;
1057 var30 = var36;
1058 goto RET_LABEL31;
1059 RET_LABEL31:(void)0;
1060 }
1061 }
1062 {
1063 { /* Inline bytes#Bytes#length= (var_,var30) on <var_:Bytes> */
1064 var_->attrs[COLOR_standard__bytes__Bytes___length].l = var30; /* _length on <var_:Bytes> */
1065 RET_LABEL37:(void)0;
1066 }
1067 }
1068 RET_LABEL:;
1069 }
1070 /* method bytes#Bytes#enlarge for (self: Bytes, Int) */
1071 void standard___standard__Bytes___standard__array__AbstractArray__enlarge(val* self, long p0) {
1072 long var_sz /* var sz: Int */;
1073 long var /* : Int */;
1074 long var2 /* : Int */;
1075 short int var3 /* : Bool */;
1076 short int var5 /* : Bool */;
1077 int cltype;
1078 int idtype;
1079 const char* var_class_name;
1080 short int var6 /* : Bool */;
1081 long var8 /* : Int */;
1082 long var10 /* : Int */;
1083 short int var11 /* : Bool */;
1084 short int var13 /* : Bool */;
1085 int cltype14;
1086 int idtype15;
1087 const char* var_class_name16;
1088 short int var17 /* : Bool */;
1089 long var18 /* : Int */;
1090 long var20 /* : Int */;
1091 long var21 /* : Int */;
1092 short int var23 /* : Bool */;
1093 int cltype24;
1094 int idtype25;
1095 const char* var_class_name26;
1096 long var27 /* : Int */;
1097 long var28 /* : Int */;
1098 short int var30 /* : Bool */;
1099 int cltype31;
1100 int idtype32;
1101 const char* var_class_name33;
1102 long var34 /* : Int */;
1103 char* var36 /* : NativeString */;
1104 long var37 /* : Int */;
1105 long var39 /* : Int */;
1106 char* var40 /* : NativeString */;
1107 char* var42 /* : NativeString */;
1108 char* var_ns /* var ns: NativeString */;
1109 char* var43 /* : NativeString */;
1110 char* var45 /* : NativeString */;
1111 long var46 /* : Int */;
1112 long var48 /* : Int */;
1113 var_sz = p0;
1114 {
1115 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
1116 var2 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
1117 var = var2;
1118 RET_LABEL1:(void)0;
1119 }
1120 }
1121 {
1122 { /* Inline kernel#Int#>= (var,var_sz) on <var:Int> */
1123 /* Covariant cast for argument 0 (i) <var_sz:Int> isa OTHER */
1124 /* <var_sz:Int> isa OTHER */
1125 var5 = 1; /* easy <var_sz:Int> isa OTHER*/
1126 if (unlikely(!var5)) {
1127 var_class_name = type_standard__Int.name;
1128 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1129 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1130 fatal_exit(1);
1131 }
1132 var6 = var >= var_sz;
1133 var3 = var6;
1134 goto RET_LABEL4;
1135 RET_LABEL4:(void)0;
1136 }
1137 }
1138 if (var3){
1139 goto RET_LABEL;
1140 } else {
1141 }
1142 {
1143 { /* Inline bytes#Bytes#persisted= (self,0) on <self:Bytes> */
1144 self->attrs[COLOR_standard__bytes__Bytes___persisted].s = 0; /* _persisted on <self:Bytes> */
1145 RET_LABEL7:(void)0;
1146 }
1147 }
1148 for(;;) {
1149 {
1150 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
1151 var10 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
1152 var8 = var10;
1153 RET_LABEL9:(void)0;
1154 }
1155 }
1156 {
1157 { /* Inline kernel#Int#< (var8,var_sz) on <var8:Int> */
1158 /* Covariant cast for argument 0 (i) <var_sz:Int> isa OTHER */
1159 /* <var_sz:Int> isa OTHER */
1160 var13 = 1; /* easy <var_sz:Int> isa OTHER*/
1161 if (unlikely(!var13)) {
1162 var_class_name16 = type_standard__Int.name;
1163 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
1164 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1165 fatal_exit(1);
1166 }
1167 var17 = var8 < var_sz;
1168 var11 = var17;
1169 goto RET_LABEL12;
1170 RET_LABEL12:(void)0;
1171 }
1172 }
1173 if (var11){
1174 {
1175 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
1176 var20 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
1177 var18 = var20;
1178 RET_LABEL19:(void)0;
1179 }
1180 }
1181 {
1182 { /* Inline kernel#Int#* (var18,2l) on <var18:Int> */
1183 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1184 /* <2l:Int> isa OTHER */
1185 var23 = 1; /* easy <2l:Int> isa OTHER*/
1186 if (unlikely(!var23)) {
1187 var_class_name26 = type_standard__Int.name;
1188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
1189 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 541);
1190 fatal_exit(1);
1191 }
1192 var27 = var18 * 2l;
1193 var21 = var27;
1194 goto RET_LABEL22;
1195 RET_LABEL22:(void)0;
1196 }
1197 }
1198 {
1199 { /* Inline kernel#Int#+ (var21,2l) on <var21:Int> */
1200 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1201 /* <2l:Int> isa OTHER */
1202 var30 = 1; /* easy <2l:Int> isa OTHER*/
1203 if (unlikely(!var30)) {
1204 var_class_name33 = type_standard__Int.name;
1205 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
1206 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1207 fatal_exit(1);
1208 }
1209 var34 = var21 + 2l;
1210 var28 = var34;
1211 goto RET_LABEL29;
1212 RET_LABEL29:(void)0;
1213 }
1214 }
1215 {
1216 { /* Inline bytes#Bytes#capacity= (self,var28) on <self:Bytes> */
1217 self->attrs[COLOR_standard__bytes__Bytes___capacity].l = var28; /* _capacity on <self:Bytes> */
1218 RET_LABEL35:(void)0;
1219 }
1220 }
1221 } else {
1222 goto BREAK_label;
1223 }
1224 }
1225 BREAK_label: (void)0;
1226 var36 = NULL/*special!*/;
1227 {
1228 { /* Inline bytes#Bytes#capacity (self) on <self:Bytes> */
1229 var39 = self->attrs[COLOR_standard__bytes__Bytes___capacity].l; /* _capacity on <self:Bytes> */
1230 var37 = var39;
1231 RET_LABEL38:(void)0;
1232 }
1233 }
1234 {
1235 { /* Inline string#NativeString#new (var36,var37) on <var36:NativeString> */
1236 var42 = (char*)nit_alloc(var37);
1237 var40 = var42;
1238 goto RET_LABEL41;
1239 RET_LABEL41:(void)0;
1240 }
1241 }
1242 var_ns = var40;
1243 {
1244 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
1245 var45 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
1246 var43 = var45;
1247 RET_LABEL44:(void)0;
1248 }
1249 }
1250 {
1251 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
1252 var48 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
1253 var46 = var48;
1254 RET_LABEL47:(void)0;
1255 }
1256 }
1257 {
1258 { /* Inline string#NativeString#copy_to (var43,var_ns,var46,0l,0l) on <var43:NativeString> */
1259 memmove(var_ns+0l,var43+0l,var46);
1260 RET_LABEL49:(void)0;
1261 }
1262 }
1263 {
1264 { /* Inline bytes#Bytes#items= (self,var_ns) on <self:Bytes> */
1265 self->attrs[COLOR_standard__bytes__Bytes___items].str = var_ns; /* _items on <self:Bytes> */
1266 RET_LABEL50:(void)0;
1267 }
1268 }
1269 RET_LABEL:;
1270 }
1271 /* method bytes#Bytes#to_s for (self: Bytes): String */
1272 val* standard___standard__Bytes___standard__string__Object__to_s(val* self) {
1273 val* var /* : String */;
1274 val* var2 /* : FlatString */;
1275 char* var3 /* : NativeString */;
1276 char* var5 /* : NativeString */;
1277 long var6 /* : Int */;
1278 long var8 /* : Int */;
1279 long var9 /* : Int */;
1280 long var11 /* : Int */;
1281 long var12 /* : Int */;
1282 short int var14 /* : Bool */;
1283 int cltype;
1284 int idtype;
1285 const char* var_class_name;
1286 long var15 /* : Int */;
1287 {
1288 { /* Inline bytes#Bytes#persisted= (self,1) on <self:Bytes> */
1289 self->attrs[COLOR_standard__bytes__Bytes___persisted].s = 1; /* _persisted on <self:Bytes> */
1290 RET_LABEL1:(void)0;
1291 }
1292 }
1293 var2 = NEW_standard__FlatString(&type_standard__FlatString);
1294 {
1295 { /* Inline bytes#Bytes#items (self) on <self:Bytes> */
1296 var5 = self->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <self:Bytes> */
1297 var3 = var5;
1298 RET_LABEL4:(void)0;
1299 }
1300 }
1301 {
1302 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
1303 var8 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
1304 var6 = var8;
1305 RET_LABEL7:(void)0;
1306 }
1307 }
1308 {
1309 { /* Inline bytes#Bytes#length (self) on <self:Bytes> */
1310 var11 = self->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <self:Bytes> */
1311 var9 = var11;
1312 RET_LABEL10:(void)0;
1313 }
1314 }
1315 {
1316 { /* Inline kernel#Int#- (var9,1l) on <var9:Int> */
1317 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1318 /* <1l:Int> isa OTHER */
1319 var14 = 1; /* easy <1l:Int> isa OTHER*/
1320 if (unlikely(!var14)) {
1321 var_class_name = type_standard__Int.name;
1322 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1323 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1324 fatal_exit(1);
1325 }
1326 var15 = var9 - 1l;
1327 var12 = var15;
1328 goto RET_LABEL13;
1329 RET_LABEL13:(void)0;
1330 }
1331 }
1332 {
1333 standard___standard__FlatString___with_infos(var2, var3, var6, 0l, var12); /* Direct call string#FlatString#with_infos on <var2:FlatString>*/
1334 }
1335 var = var2;
1336 goto RET_LABEL;
1337 RET_LABEL:;
1338 return var;
1339 }
1340 /* method bytes#Bytes#iterator for (self: Bytes): Iterator[Int] */
1341 val* standard___standard__Bytes___standard__abstract_collection__Collection__iterator(val* self) {
1342 val* var /* : Iterator[Int] */;
1343 val* var1 /* : BytesIterator */;
1344 var1 = NEW_standard__bytes__BytesIterator(&type_standard__bytes__BytesIterator);
1345 {
1346 standard__bytes___standard__bytes__BytesIterator___with_buffer(var1, self); /* Direct call bytes#BytesIterator#with_buffer on <var1:BytesIterator>*/
1347 }
1348 var = var1;
1349 goto RET_LABEL;
1350 RET_LABEL:;
1351 return var;
1352 }
1353 /* method bytes#Bytes#init for (self: Bytes) */
1354 void standard___standard__Bytes___standard__kernel__Object__init(val* self) {
1355 {
1356 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__Bytes___standard__kernel__Object__init]))(self); /* init on <self:Bytes>*/
1357 }
1358 RET_LABEL:;
1359 }
1360 /* method bytes#BytesIterator#tgt for (self: BytesIterator): NativeString */
1361 char* standard__bytes___standard__bytes__BytesIterator___tgt(val* self) {
1362 char* var /* : NativeString */;
1363 char* var1 /* : NativeString */;
1364 var1 = self->attrs[COLOR_standard__bytes__BytesIterator___tgt].str; /* _tgt on <self:BytesIterator> */
1365 var = var1;
1366 RET_LABEL:;
1367 return var;
1368 }
1369 /* method bytes#BytesIterator#tgt= for (self: BytesIterator, NativeString) */
1370 void standard__bytes___standard__bytes__BytesIterator___tgt_61d(val* self, char* p0) {
1371 self->attrs[COLOR_standard__bytes__BytesIterator___tgt].str = p0; /* _tgt on <self:BytesIterator> */
1372 RET_LABEL:;
1373 }
1374 /* method bytes#BytesIterator#index for (self: BytesIterator): Int */
1375 long standard__bytes___standard__bytes__BytesIterator___standard__abstract_collection__IndexedIterator__index(val* self) {
1376 long var /* : Int */;
1377 long var1 /* : Int */;
1378 var1 = self->attrs[COLOR_standard__bytes__BytesIterator___index].l; /* _index on <self:BytesIterator> */
1379 var = var1;
1380 RET_LABEL:;
1381 return var;
1382 }
1383 /* method bytes#BytesIterator#index= for (self: BytesIterator, Int) */
1384 void standard__bytes___standard__bytes__BytesIterator___index_61d(val* self, long p0) {
1385 self->attrs[COLOR_standard__bytes__BytesIterator___index].l = p0; /* _index on <self:BytesIterator> */
1386 RET_LABEL:;
1387 }
1388 /* method bytes#BytesIterator#max for (self: BytesIterator): Int */
1389 long standard__bytes___standard__bytes__BytesIterator___max(val* self) {
1390 long var /* : Int */;
1391 long var1 /* : Int */;
1392 var1 = self->attrs[COLOR_standard__bytes__BytesIterator___max].l; /* _max on <self:BytesIterator> */
1393 var = var1;
1394 RET_LABEL:;
1395 return var;
1396 }
1397 /* method bytes#BytesIterator#max= for (self: BytesIterator, Int) */
1398 void standard__bytes___standard__bytes__BytesIterator___max_61d(val* self, long p0) {
1399 self->attrs[COLOR_standard__bytes__BytesIterator___max].l = p0; /* _max on <self:BytesIterator> */
1400 RET_LABEL:;
1401 }
1402 /* method bytes#BytesIterator#with_buffer for (self: BytesIterator, Bytes) */
1403 void standard__bytes___standard__bytes__BytesIterator___with_buffer(val* self, val* p0) {
1404 val* var_b /* var b: Bytes */;
1405 char* var /* : NativeString */;
1406 char* var2 /* : NativeString */;
1407 long var3 /* : Int */;
1408 long var5 /* : Int */;
1409 long var6 /* : Int */;
1410 short int var8 /* : Bool */;
1411 int cltype;
1412 int idtype;
1413 const char* var_class_name;
1414 long var9 /* : Int */;
1415 var_b = p0;
1416 {
1417 { /* Inline bytes#Bytes#items (var_b) on <var_b:Bytes> */
1418 var2 = var_b->attrs[COLOR_standard__bytes__Bytes___items].str; /* _items on <var_b:Bytes> */
1419 var = var2;
1420 RET_LABEL1:(void)0;
1421 }
1422 }
1423 {
1424 { /* Inline bytes#Bytes#length (var_b) on <var_b:Bytes> */
1425 var5 = var_b->attrs[COLOR_standard__bytes__Bytes___length].l; /* _length on <var_b:Bytes> */
1426 var3 = var5;
1427 RET_LABEL4:(void)0;
1428 }
1429 }
1430 {
1431 { /* Inline kernel#Int#- (var3,1l) on <var3:Int> */
1432 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1433 /* <1l:Int> isa OTHER */
1434 var8 = 1; /* easy <1l:Int> isa OTHER*/
1435 if (unlikely(!var8)) {
1436 var_class_name = type_standard__Int.name;
1437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1438 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1439 fatal_exit(1);
1440 }
1441 var9 = var3 - 1l;
1442 var6 = var9;
1443 goto RET_LABEL7;
1444 RET_LABEL7:(void)0;
1445 }
1446 }
1447 {
1448 ((void(*)(val* self, char* p0))(self->class->vft[COLOR_standard__bytes__BytesIterator__tgt_61d]))(self, var); /* tgt= on <self:BytesIterator>*/
1449 }
1450 {
1451 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__bytes__BytesIterator__index_61d]))(self, 0l); /* index= on <self:BytesIterator>*/
1452 }
1453 {
1454 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__bytes__BytesIterator__max_61d]))(self, var6); /* max= on <self:BytesIterator>*/
1455 }
1456 {
1457 ((void(*)(val* self))(self->class->vft[COLOR_standard__kernel__Object__init]))(self); /* init on <self:BytesIterator>*/
1458 }
1459 RET_LABEL:;
1460 }
1461 /* method bytes#BytesIterator#is_ok for (self: BytesIterator): Bool */
1462 short int standard__bytes___standard__bytes__BytesIterator___standard__abstract_collection__Iterator__is_ok(val* self) {
1463 short int var /* : Bool */;
1464 long var1 /* : Int */;
1465 long var3 /* : Int */;
1466 long var4 /* : Int */;
1467 long var6 /* : Int */;
1468 short int var7 /* : Bool */;
1469 short int var9 /* : Bool */;
1470 int cltype;
1471 int idtype;
1472 const char* var_class_name;
1473 short int var10 /* : Bool */;
1474 {
1475 { /* Inline bytes#BytesIterator#index (self) on <self:BytesIterator> */
1476 var3 = self->attrs[COLOR_standard__bytes__BytesIterator___index].l; /* _index on <self:BytesIterator> */
1477 var1 = var3;
1478 RET_LABEL2:(void)0;
1479 }
1480 }
1481 {
1482 { /* Inline bytes#BytesIterator#max (self) on <self:BytesIterator> */
1483 var6 = self->attrs[COLOR_standard__bytes__BytesIterator___max].l; /* _max on <self:BytesIterator> */
1484 var4 = var6;
1485 RET_LABEL5:(void)0;
1486 }
1487 }
1488 {
1489 { /* Inline kernel#Int#< (var1,var4) on <var1:Int> */
1490 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1491 /* <var4:Int> isa OTHER */
1492 var9 = 1; /* easy <var4:Int> isa OTHER*/
1493 if (unlikely(!var9)) {
1494 var_class_name = type_standard__Int.name;
1495 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1496 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1497 fatal_exit(1);
1498 }
1499 var10 = var1 < var4;
1500 var7 = var10;
1501 goto RET_LABEL8;
1502 RET_LABEL8:(void)0;
1503 }
1504 }
1505 var = var7;
1506 goto RET_LABEL;
1507 RET_LABEL:;
1508 return var;
1509 }
1510 /* method bytes#BytesIterator#next for (self: BytesIterator) */
1511 void standard__bytes___standard__bytes__BytesIterator___standard__abstract_collection__Iterator__next(val* self) {
1512 val* var_ /* var : BytesIterator */;
1513 long var /* : Int */;
1514 long var2 /* : Int */;
1515 long var3 /* : Int */;
1516 short int var5 /* : Bool */;
1517 int cltype;
1518 int idtype;
1519 const char* var_class_name;
1520 long var6 /* : Int */;
1521 var_ = self;
1522 {
1523 { /* Inline bytes#BytesIterator#index (var_) on <var_:BytesIterator> */
1524 var2 = var_->attrs[COLOR_standard__bytes__BytesIterator___index].l; /* _index on <var_:BytesIterator> */
1525 var = var2;
1526 RET_LABEL1:(void)0;
1527 }
1528 }
1529 {
1530 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
1531 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1532 /* <1l:Int> isa OTHER */
1533 var5 = 1; /* easy <1l:Int> isa OTHER*/
1534 if (unlikely(!var5)) {
1535 var_class_name = type_standard__Int.name;
1536 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1537 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1538 fatal_exit(1);
1539 }
1540 var6 = var + 1l;
1541 var3 = var6;
1542 goto RET_LABEL4;
1543 RET_LABEL4:(void)0;
1544 }
1545 }
1546 {
1547 { /* Inline bytes#BytesIterator#index= (var_,var3) on <var_:BytesIterator> */
1548 var_->attrs[COLOR_standard__bytes__BytesIterator___index].l = var3; /* _index on <var_:BytesIterator> */
1549 RET_LABEL7:(void)0;
1550 }
1551 }
1552 RET_LABEL:;
1553 }
1554 /* method bytes#BytesIterator#item for (self: BytesIterator): Int */
1555 long standard__bytes___standard__bytes__BytesIterator___standard__abstract_collection__Iterator__item(val* self) {
1556 long var /* : Int */;
1557 char* var1 /* : NativeString */;
1558 char* var3 /* : NativeString */;
1559 long var4 /* : Int */;
1560 long var6 /* : Int */;
1561 uint32_t var7 /* : Char */;
1562 uint32_t var9 /* : Char */;
1563 long var10 /* : Int */;
1564 long var12 /* : Int */;
1565 {
1566 { /* Inline bytes#BytesIterator#tgt (self) on <self:BytesIterator> */
1567 var3 = self->attrs[COLOR_standard__bytes__BytesIterator___tgt].str; /* _tgt on <self:BytesIterator> */
1568 var1 = var3;
1569 RET_LABEL2:(void)0;
1570 }
1571 }
1572 {
1573 { /* Inline bytes#BytesIterator#index (self) on <self:BytesIterator> */
1574 var6 = self->attrs[COLOR_standard__bytes__BytesIterator___index].l; /* _index on <self:BytesIterator> */
1575 var4 = var6;
1576 RET_LABEL5:(void)0;
1577 }
1578 }
1579 {
1580 { /* Inline string#NativeString#[] (var1,var4) on <var1:NativeString> */
1581 var9 = (uint32_t)(unsigned char)var1[var4];
1582 var7 = var9;
1583 goto RET_LABEL8;
1584 RET_LABEL8:(void)0;
1585 }
1586 }
1587 {
1588 { /* Inline kernel#Char#ascii (var7) on <var7:Char> */
1589 var12 = (long)var7;
1590 var10 = var12;
1591 goto RET_LABEL11;
1592 RET_LABEL11:(void)0;
1593 }
1594 }
1595 var = var10;
1596 goto RET_LABEL;
1597 RET_LABEL:;
1598 return var;
1599 }
1600 /* method bytes#BytesIterator#item for (self: Iterator[nullable Object]): nullable Object */
1601 val* VIRTUAL_standard__bytes___standard__bytes__BytesIterator___standard__abstract_collection__Iterator__item(val* self) {
1602 val* var /* : nullable Object */;
1603 long var1 /* : Int */;
1604 val* var2 /* : nullable Object */;
1605 var1 = standard__bytes___standard__bytes__BytesIterator___standard__abstract_collection__Iterator__item(self);
1606 var2 = (val*)(var1<<2|1);
1607 var = var2;
1608 RET_LABEL:;
1609 return var;
1610 }
1611 /* method bytes#BytesIterator#init for (self: BytesIterator) */
1612 void standard__bytes___standard__bytes__BytesIterator___standard__kernel__Object__init(val* self) {
1613 {
1614 ((void(*)(val* self))(self->class->vft[COLOR_standard__bytes___standard__bytes__BytesIterator___standard__kernel__Object__init]))(self); /* init on <self:BytesIterator>*/
1615 }
1616 RET_LABEL:;
1617 }