Merge branch 'killclosures' into killnitc
[nit.git] / c_src / stream.sep.1.c
1 #include "stream.sep.0.h"
2 /* method stream#IOS#close for (self: IOS) */
3 void stream__IOS__close(val* self) {
4 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 20);
5 exit(1);
6 RET_LABEL:;
7 }
8 /* method stream#IOS#close for (self: Object) */
9 void VIRTUAL_stream__IOS__close(val* self) {
10 stream__IOS__close(self);
11 RET_LABEL:;
12 }
13 /* method stream#IStream#read_char for (self: IStream): Int */
14 long stream__IStream__read_char(val* self) {
15 long var /* : Int */;
16 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 27);
17 exit(1);
18 RET_LABEL:;
19 return var;
20 }
21 /* method stream#IStream#read_char for (self: Object): Int */
22 long VIRTUAL_stream__IStream__read_char(val* self) {
23 long var /* : Int */;
24 long var1 /* : Int */;
25 var1 = stream__IStream__read_char(self);
26 var = var1;
27 RET_LABEL:;
28 return var;
29 }
30 /* method stream#IStream#read for (self: IStream, Int): String */
31 val* stream__IStream__read(val* self, long p0) {
32 val* var /* : String */;
33 long var_i /* var i: Int */;
34 val* var1 /* : Buffer */;
35 val* var_s /* var s: Buffer */;
36 short int var2 /* : Bool */;
37 long var3 /* : Int */;
38 short int var4 /* : Bool */;
39 short int var6 /* : Bool */;
40 int cltype;
41 int idtype;
42 short int var7 /* : Bool */;
43 short int var_ /* var : Bool */;
44 short int var8 /* : Bool */;
45 short int var9 /* : Bool */;
46 long var10 /* : Int */;
47 long var_c /* var c: Int */;
48 long var11 /* : Int */;
49 short int var12 /* : Bool */;
50 short int var14 /* : Bool */;
51 int cltype15;
52 int idtype16;
53 short int var17 /* : Bool */;
54 char var18 /* : Char */;
55 char var20 /* : Char */;
56 val* var21 /* : nullable Object */;
57 long var22 /* : Int */;
58 long var23 /* : Int */;
59 long var25 /* : Int */;
60 val* var26 /* : String */;
61 var_i = p0;
62 var1 = NEW_string__Buffer(&type_string__Buffer);
63 ((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var_i) /* with_capacity on <var1:Buffer>*/;
64 CHECK_NEW_string__Buffer(var1);
65 var_s = var1;
66 for(;;) {
67 var3 = 0;
68 { /* Inline kernel#Int#> (var_i,var3) */
69 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
70 /* <var3:Int> isa OTHER */
71 var6 = 1; /* easy <var3:Int> isa OTHER*/
72 if (!var6) {
73 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
74 exit(1);
75 }
76 var7 = var_i > var3;
77 var4 = var7;
78 goto RET_LABEL5;
79 RET_LABEL5:(void)0;
80 }
81 var_ = var4;
82 if (var4){
83 var8 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
84 var9 = !var8;
85 var2 = var9;
86 } else {
87 var2 = var_;
88 }
89 if (!var2) break;
90 var10 = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on <self:IStream>*/;
91 var_c = var10;
92 var11 = 0;
93 { /* Inline kernel#Int#>= (var_c,var11) */
94 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
95 /* <var11:Int> isa OTHER */
96 var14 = 1; /* easy <var11:Int> isa OTHER*/
97 if (!var14) {
98 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
99 exit(1);
100 }
101 var17 = var_c >= var11;
102 var12 = var17;
103 goto RET_LABEL13;
104 RET_LABEL13:(void)0;
105 }
106 if (var12){
107 { /* Inline kernel#Int#ascii (var_c) */
108 var20 = var_c;
109 var18 = var20;
110 goto RET_LABEL19;
111 RET_LABEL19:(void)0;
112 }
113 var21 = BOX_kernel__Char(var18); /* autobox from Char to nullable Object */
114 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var21) /* add on <var_s:Buffer>*/;
115 var22 = 1;
116 { /* Inline kernel#Int#- (var_i,var22) */
117 var25 = var_i - var22;
118 var23 = var25;
119 goto RET_LABEL24;
120 RET_LABEL24:(void)0;
121 }
122 var_i = var23;
123 } else {
124 }
125 CONTINUE_label: (void)0;
126 }
127 BREAK_label: (void)0;
128 var26 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
129 var = var26;
130 goto RET_LABEL;
131 RET_LABEL:;
132 return var;
133 }
134 /* method stream#IStream#read for (self: Object, Int): String */
135 val* VIRTUAL_stream__IStream__read(val* self, long p0) {
136 val* var /* : String */;
137 val* var1 /* : String */;
138 var1 = stream__IStream__read(self, p0);
139 var = var1;
140 RET_LABEL:;
141 return var;
142 }
143 /* method stream#IStream#read_line for (self: IStream): String */
144 val* stream__IStream__read_line(val* self) {
145 val* var /* : String */;
146 short int var1 /* : Bool */;
147 short int var2 /* : Bool */;
148 val* var3 /* : Buffer */;
149 val* var_s /* var s: Buffer */;
150 val* var4 /* : String */;
151 var1 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
152 var2 = !var1;
153 if (!var2) {
154 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/stream.nit", 47);
155 exit(1);
156 }
157 var3 = NEW_string__Buffer(&type_string__Buffer);
158 ((void (*)(val*))(var3->class->vft[COLOR_string__Buffer__init]))(var3) /* init on <var3:Buffer>*/;
159 CHECK_NEW_string__Buffer(var3);
160 var_s = var3;
161 ((void (*)(val*, val*))(self->class->vft[COLOR_stream__IStream__append_line_to]))(self, var_s) /* append_line_to on <self:IStream>*/;
162 var4 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
163 var = var4;
164 goto RET_LABEL;
165 RET_LABEL:;
166 return var;
167 }
168 /* method stream#IStream#read_line for (self: Object): String */
169 val* VIRTUAL_stream__IStream__read_line(val* self) {
170 val* var /* : String */;
171 val* var1 /* : String */;
172 var1 = stream__IStream__read_line(self);
173 var = var1;
174 RET_LABEL:;
175 return var;
176 }
177 /* method stream#IStream#read_all for (self: IStream): String */
178 val* stream__IStream__read_all(val* self) {
179 val* var /* : String */;
180 val* var1 /* : Buffer */;
181 val* var_s /* var s: Buffer */;
182 short int var2 /* : Bool */;
183 short int var3 /* : Bool */;
184 long var4 /* : Int */;
185 long var_c /* var c: Int */;
186 long var5 /* : Int */;
187 short int var6 /* : Bool */;
188 short int var8 /* : Bool */;
189 int cltype;
190 int idtype;
191 short int var9 /* : Bool */;
192 char var10 /* : Char */;
193 char var12 /* : Char */;
194 val* var13 /* : nullable Object */;
195 val* var14 /* : String */;
196 var1 = NEW_string__Buffer(&type_string__Buffer);
197 ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on <var1:Buffer>*/;
198 CHECK_NEW_string__Buffer(var1);
199 var_s = var1;
200 for(;;) {
201 var2 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
202 var3 = !var2;
203 if (!var3) break;
204 var4 = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on <self:IStream>*/;
205 var_c = var4;
206 var5 = 0;
207 { /* Inline kernel#Int#>= (var_c,var5) */
208 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
209 /* <var5:Int> isa OTHER */
210 var8 = 1; /* easy <var5:Int> isa OTHER*/
211 if (!var8) {
212 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
213 exit(1);
214 }
215 var9 = var_c >= var5;
216 var6 = var9;
217 goto RET_LABEL7;
218 RET_LABEL7:(void)0;
219 }
220 if (var6){
221 { /* Inline kernel#Int#ascii (var_c) */
222 var12 = var_c;
223 var10 = var12;
224 goto RET_LABEL11;
225 RET_LABEL11:(void)0;
226 }
227 var13 = BOX_kernel__Char(var10); /* autobox from Char to nullable Object */
228 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var13) /* add on <var_s:Buffer>*/;
229 } else {
230 }
231 CONTINUE_label: (void)0;
232 }
233 BREAK_label: (void)0;
234 var14 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
235 var = var14;
236 goto RET_LABEL;
237 RET_LABEL:;
238 return var;
239 }
240 /* method stream#IStream#read_all for (self: Object): String */
241 val* VIRTUAL_stream__IStream__read_all(val* self) {
242 val* var /* : String */;
243 val* var1 /* : String */;
244 var1 = stream__IStream__read_all(self);
245 var = var1;
246 RET_LABEL:;
247 return var;
248 }
249 /* method stream#IStream#append_line_to for (self: IStream, Buffer) */
250 void stream__IStream__append_line_to(val* self, val* p0) {
251 val* var_s /* var s: Buffer */;
252 long var /* : Int */;
253 long var_x /* var x: Int */;
254 long var1 /* : Int */;
255 long var2 /* : Int */;
256 long var4 /* : Int */;
257 short int var5 /* : Bool */;
258 short int var7 /* : Bool */;
259 short int var8 /* : Bool */;
260 char var9 /* : Char */;
261 char var11 /* : Char */;
262 char var_c /* var c: Char */;
263 val* var12 /* : nullable Object */;
264 char var13 /* : Char */;
265 short int var14 /* : Bool */;
266 short int var16 /* : Bool */;
267 var_s = p0;
268 for(;;) {
269 var = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on <self:IStream>*/;
270 var_x = var;
271 var1 = 1;
272 { /* Inline kernel#Int#unary - (var1) */
273 var4 = -var1;
274 var2 = var4;
275 goto RET_LABEL3;
276 RET_LABEL3:(void)0;
277 }
278 { /* Inline kernel#Int#== (var_x,var2) */
279 var7 = var_x == var2;
280 var5 = var7;
281 goto RET_LABEL6;
282 RET_LABEL6:(void)0;
283 }
284 if (var5){
285 var8 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
286 if (var8){
287 goto RET_LABEL;
288 } else {
289 }
290 } else {
291 { /* Inline kernel#Int#ascii (var_x) */
292 var11 = var_x;
293 var9 = var11;
294 goto RET_LABEL10;
295 RET_LABEL10:(void)0;
296 }
297 var_c = var9;
298 var12 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */
299 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__push]))(var_s, var12) /* push on <var_s:Buffer>*/;
300 var13 = '\n';
301 { /* Inline kernel#Char#== (var_c,var13) */
302 var16 = var_c == var13;
303 var14 = var16;
304 goto RET_LABEL15;
305 RET_LABEL15:(void)0;
306 }
307 if (var14){
308 goto RET_LABEL;
309 } else {
310 }
311 }
312 CONTINUE_label: (void)0;
313 }
314 BREAK_label: (void)0;
315 RET_LABEL:;
316 }
317 /* method stream#IStream#append_line_to for (self: Object, Buffer) */
318 void VIRTUAL_stream__IStream__append_line_to(val* self, val* p0) {
319 stream__IStream__append_line_to(self, p0);
320 RET_LABEL:;
321 }
322 /* method stream#IStream#eof for (self: IStream): Bool */
323 short int stream__IStream__eof(val* self) {
324 short int var /* : Bool */;
325 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 79);
326 exit(1);
327 RET_LABEL:;
328 return var;
329 }
330 /* method stream#IStream#eof for (self: Object): Bool */
331 short int VIRTUAL_stream__IStream__eof(val* self) {
332 short int var /* : Bool */;
333 short int var1 /* : Bool */;
334 var1 = stream__IStream__eof(self);
335 var = var1;
336 RET_LABEL:;
337 return var;
338 }
339 /* method stream#OStream#write for (self: OStream, String) */
340 void stream__OStream__write(val* self, val* p0) {
341 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 86);
342 exit(1);
343 RET_LABEL:;
344 }
345 /* method stream#OStream#write for (self: Object, String) */
346 void VIRTUAL_stream__OStream__write(val* self, val* p0) {
347 stream__OStream__write(self, p0);
348 RET_LABEL:;
349 }
350 /* method stream#OStream#is_writable for (self: OStream): Bool */
351 short int stream__OStream__is_writable(val* self) {
352 short int var /* : Bool */;
353 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 89);
354 exit(1);
355 RET_LABEL:;
356 return var;
357 }
358 /* method stream#OStream#is_writable for (self: Object): Bool */
359 short int VIRTUAL_stream__OStream__is_writable(val* self) {
360 short int var /* : Bool */;
361 short int var1 /* : Bool */;
362 var1 = stream__OStream__is_writable(self);
363 var = var1;
364 RET_LABEL:;
365 return var;
366 }
367 /* method stream#BufferedIStream#read_char for (self: BufferedIStream): Int */
368 long stream__BufferedIStream__read_char(val* self) {
369 long var /* : Int */;
370 short int var1 /* : Bool */;
371 short int var2 /* : Bool */;
372 long var3 /* : Int */;
373 val* var4 /* : nullable Buffer */;
374 long var5 /* : Int */;
375 short int var6 /* : Bool */;
376 short int var8 /* : Bool */;
377 int cltype;
378 int idtype;
379 short int var9 /* : Bool */;
380 long var10 /* : Int */;
381 val* var11 /* : nullable Buffer */;
382 long var12 /* : Int */;
383 short int var13 /* : Bool */;
384 short int var15 /* : Bool */;
385 int cltype16;
386 int idtype17;
387 short int var18 /* : Bool */;
388 long var19 /* : Int */;
389 long var20 /* : Int */;
390 long var22 /* : Int */;
391 val* var23 /* : nullable Buffer */;
392 long var24 /* : Int */;
393 val* var25 /* : nullable Object */;
394 char var26 /* : Char */;
395 char var_c /* var c: Char */;
396 val* var_ /* var : BufferedIStream */;
397 long var27 /* : Int */;
398 long var28 /* : Int */;
399 long var29 /* : Int */;
400 long var31 /* : Int */;
401 long var32 /* : Int */;
402 long var34 /* : Int */;
403 var1 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:BufferedIStream>*/;
404 var2 = !var1;
405 if (!var2) {
406 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/stream.nit", 98);
407 exit(1);
408 }
409 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
410 var4 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
411 if (var4 == NULL) {
412 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 99);
413 exit(1);
414 } else {
415 var5 = ((long (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__length]))(var4) /* length on <var4:nullable Buffer>*/;
416 }
417 { /* Inline kernel#Int#>= (var3,var5) */
418 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
419 /* <var5:Int> isa OTHER */
420 var8 = 1; /* easy <var5:Int> isa OTHER*/
421 if (!var8) {
422 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
423 exit(1);
424 }
425 var9 = var3 >= var5;
426 var6 = var9;
427 goto RET_LABEL7;
428 RET_LABEL7:(void)0;
429 }
430 if (var6){
431 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
432 } else {
433 }
434 var10 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
435 var11 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
436 if (var11 == NULL) {
437 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 102);
438 exit(1);
439 } else {
440 var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on <var11:nullable Buffer>*/;
441 }
442 { /* Inline kernel#Int#>= (var10,var12) */
443 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
444 /* <var12:Int> isa OTHER */
445 var15 = 1; /* easy <var12:Int> isa OTHER*/
446 if (!var15) {
447 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
448 exit(1);
449 }
450 var18 = var10 >= var12;
451 var13 = var18;
452 goto RET_LABEL14;
453 RET_LABEL14:(void)0;
454 }
455 if (var13){
456 var19 = 1;
457 { /* Inline kernel#Int#unary - (var19) */
458 var22 = -var19;
459 var20 = var22;
460 goto RET_LABEL21;
461 RET_LABEL21:(void)0;
462 }
463 var = var20;
464 goto RET_LABEL;
465 } else {
466 }
467 var23 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
468 var24 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
469 if (var23 == NULL) {
470 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 105);
471 exit(1);
472 } else {
473 var25 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var24) /* [] on <var23:nullable Buffer>*/;
474 }
475 var26 = ((struct instance_kernel__Char*)var25)->value; /* autounbox from nullable Object to Char */;
476 var_c = var26;
477 var_ = self;
478 var27 = var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <var_:BufferedIStream> */
479 var28 = 1;
480 { /* Inline kernel#Int#+ (var27,var28) */
481 var31 = var27 + var28;
482 var29 = var31;
483 goto RET_LABEL30;
484 RET_LABEL30:(void)0;
485 }
486 var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var29; /* _buffer_pos on <var_:BufferedIStream> */
487 { /* Inline kernel#Char#ascii (var_c) */
488 var34 = (unsigned char)var_c;
489 var32 = var34;
490 goto RET_LABEL33;
491 RET_LABEL33:(void)0;
492 }
493 var = var32;
494 goto RET_LABEL;
495 RET_LABEL:;
496 return var;
497 }
498 /* method stream#BufferedIStream#read_char for (self: Object): Int */
499 long VIRTUAL_stream__BufferedIStream__read_char(val* self) {
500 long var /* : Int */;
501 long var1 /* : Int */;
502 var1 = stream__BufferedIStream__read_char(self);
503 var = var1;
504 RET_LABEL:;
505 return var;
506 }
507 /* method stream#BufferedIStream#read for (self: BufferedIStream, Int): String */
508 val* stream__BufferedIStream__read(val* self, long p0) {
509 val* var /* : String */;
510 long var_i /* var i: Int */;
511 val* var1 /* : Buffer */;
512 val* var_s /* var s: Buffer */;
513 long var2 /* : Int */;
514 long var_j /* var j: Int */;
515 val* var3 /* : nullable Buffer */;
516 long var4 /* : Int */;
517 long var_k /* var k: Int */;
518 long var5 /* : Int */;
519 short int var6 /* : Bool */;
520 short int var8 /* : Bool */;
521 int cltype;
522 int idtype;
523 short int var9 /* : Bool */;
524 short int var10 /* : Bool */;
525 short int var12 /* : Bool */;
526 int cltype13;
527 int idtype14;
528 short int var15 /* : Bool */;
529 short int var16 /* : Bool */;
530 val* var17 /* : String */;
531 long var18 /* : Int */;
532 val* var19 /* : nullable Buffer */;
533 long var20 /* : Int */;
534 short int var21 /* : Bool */;
535 short int var22 /* : Bool */;
536 short int var24 /* : Bool */;
537 int cltype25;
538 int idtype26;
539 short int var27 /* : Bool */;
540 short int var_ /* var : Bool */;
541 long var28 /* : Int */;
542 short int var29 /* : Bool */;
543 short int var31 /* : Bool */;
544 int cltype32;
545 int idtype33;
546 short int var34 /* : Bool */;
547 val* var35 /* : nullable Buffer */;
548 val* var36 /* : nullable Object */;
549 long var37 /* : Int */;
550 long var38 /* : Int */;
551 long var40 /* : Int */;
552 long var41 /* : Int */;
553 long var42 /* : Int */;
554 long var44 /* : Int */;
555 val* var46 /* : String */;
556 var_i = p0;
557 var1 = NEW_string__Buffer(&type_string__Buffer);
558 ((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var_i) /* with_capacity on <var1:Buffer>*/;
559 CHECK_NEW_string__Buffer(var1);
560 var_s = var1;
561 var2 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
562 var_j = var2;
563 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
564 if (var3 == NULL) {
565 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 114);
566 exit(1);
567 } else {
568 var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on <var3:nullable Buffer>*/;
569 }
570 var_k = var4;
571 for(;;) {
572 var5 = 0;
573 { /* Inline kernel#Int#> (var_i,var5) */
574 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
575 /* <var5:Int> isa OTHER */
576 var8 = 1; /* easy <var5:Int> isa OTHER*/
577 if (!var8) {
578 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
579 exit(1);
580 }
581 var9 = var_i > var5;
582 var6 = var9;
583 goto RET_LABEL7;
584 RET_LABEL7:(void)0;
585 }
586 if (!var6) break;
587 { /* Inline kernel#Int#>= (var_j,var_k) */
588 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
589 /* <var_k:Int> isa OTHER */
590 var12 = 1; /* easy <var_k:Int> isa OTHER*/
591 if (!var12) {
592 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
593 exit(1);
594 }
595 var15 = var_j >= var_k;
596 var10 = var15;
597 goto RET_LABEL11;
598 RET_LABEL11:(void)0;
599 }
600 if (var10){
601 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
602 var16 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:BufferedIStream>*/;
603 if (var16){
604 var17 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
605 var = var17;
606 goto RET_LABEL;
607 } else {
608 }
609 var18 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
610 var_j = var18;
611 var19 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
612 if (var19 == NULL) {
613 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 120);
614 exit(1);
615 } else {
616 var20 = ((long (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__length]))(var19) /* length on <var19:nullable Buffer>*/;
617 }
618 var_k = var20;
619 } else {
620 }
621 for(;;) {
622 { /* Inline kernel#Int#< (var_j,var_k) */
623 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
624 /* <var_k:Int> isa OTHER */
625 var24 = 1; /* easy <var_k:Int> isa OTHER*/
626 if (!var24) {
627 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
628 exit(1);
629 }
630 var27 = var_j < var_k;
631 var22 = var27;
632 goto RET_LABEL23;
633 RET_LABEL23:(void)0;
634 }
635 var_ = var22;
636 if (var22){
637 var28 = 0;
638 { /* Inline kernel#Int#> (var_i,var28) */
639 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
640 /* <var28:Int> isa OTHER */
641 var31 = 1; /* easy <var28:Int> isa OTHER*/
642 if (!var31) {
643 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
644 exit(1);
645 }
646 var34 = var_i > var28;
647 var29 = var34;
648 goto RET_LABEL30;
649 RET_LABEL30:(void)0;
650 }
651 var21 = var29;
652 } else {
653 var21 = var_;
654 }
655 if (!var21) break;
656 var35 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
657 if (var35 == NULL) {
658 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 123);
659 exit(1);
660 } else {
661 var36 = ((val* (*)(val*, long))(var35->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var35, var_j) /* [] on <var35:nullable Buffer>*/;
662 }
663 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var36) /* add on <var_s:Buffer>*/;
664 var37 = 1;
665 { /* Inline kernel#Int#+ (var_j,var37) */
666 var40 = var_j + var37;
667 var38 = var40;
668 goto RET_LABEL39;
669 RET_LABEL39:(void)0;
670 }
671 var_j = var38;
672 var41 = 1;
673 { /* Inline kernel#Int#- (var_i,var41) */
674 var44 = var_i - var41;
675 var42 = var44;
676 goto RET_LABEL43;
677 RET_LABEL43:(void)0;
678 }
679 var_i = var42;
680 CONTINUE_label: (void)0;
681 }
682 BREAK_label: (void)0;
683 CONTINUE_label45: (void)0;
684 }
685 BREAK_label45: (void)0;
686 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_j; /* _buffer_pos on <self:BufferedIStream> */
687 var46 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
688 var = var46;
689 goto RET_LABEL;
690 RET_LABEL:;
691 return var;
692 }
693 /* method stream#BufferedIStream#read for (self: Object, Int): String */
694 val* VIRTUAL_stream__BufferedIStream__read(val* self, long p0) {
695 val* var /* : String */;
696 val* var1 /* : String */;
697 var1 = stream__BufferedIStream__read(self, p0);
698 var = var1;
699 RET_LABEL:;
700 return var;
701 }
702 /* method stream#BufferedIStream#read_all for (self: BufferedIStream): String */
703 val* stream__BufferedIStream__read_all(val* self) {
704 val* var /* : String */;
705 val* var1 /* : Buffer */;
706 val* var_s /* var s: Buffer */;
707 short int var2 /* : Bool */;
708 short int var3 /* : Bool */;
709 long var4 /* : Int */;
710 long var_j /* var j: Int */;
711 val* var5 /* : nullable Buffer */;
712 long var6 /* : Int */;
713 long var_k /* var k: Int */;
714 short int var7 /* : Bool */;
715 short int var9 /* : Bool */;
716 int cltype;
717 int idtype;
718 short int var10 /* : Bool */;
719 val* var11 /* : nullable Buffer */;
720 val* var12 /* : nullable Object */;
721 long var13 /* : Int */;
722 long var14 /* : Int */;
723 long var16 /* : Int */;
724 val* var18 /* : String */;
725 var1 = NEW_string__Buffer(&type_string__Buffer);
726 ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on <var1:Buffer>*/;
727 CHECK_NEW_string__Buffer(var1);
728 var_s = var1;
729 for(;;) {
730 var2 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:BufferedIStream>*/;
731 var3 = !var2;
732 if (!var3) break;
733 var4 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
734 var_j = var4;
735 var5 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
736 if (var5 == NULL) {
737 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 137);
738 exit(1);
739 } else {
740 var6 = ((long (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__length]))(var5) /* length on <var5:nullable Buffer>*/;
741 }
742 var_k = var6;
743 for(;;) {
744 { /* Inline kernel#Int#< (var_j,var_k) */
745 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
746 /* <var_k:Int> isa OTHER */
747 var9 = 1; /* easy <var_k:Int> isa OTHER*/
748 if (!var9) {
749 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
750 exit(1);
751 }
752 var10 = var_j < var_k;
753 var7 = var10;
754 goto RET_LABEL8;
755 RET_LABEL8:(void)0;
756 }
757 if (!var7) break;
758 var11 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
759 if (var11 == NULL) {
760 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 139);
761 exit(1);
762 } else {
763 var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_j) /* [] on <var11:nullable Buffer>*/;
764 }
765 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var12) /* add on <var_s:Buffer>*/;
766 var13 = 1;
767 { /* Inline kernel#Int#+ (var_j,var13) */
768 var16 = var_j + var13;
769 var14 = var16;
770 goto RET_LABEL15;
771 RET_LABEL15:(void)0;
772 }
773 var_j = var14;
774 CONTINUE_label: (void)0;
775 }
776 BREAK_label: (void)0;
777 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_j; /* _buffer_pos on <self:BufferedIStream> */
778 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
779 CONTINUE_label17: (void)0;
780 }
781 BREAK_label17: (void)0;
782 var18 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
783 var = var18;
784 goto RET_LABEL;
785 RET_LABEL:;
786 return var;
787 }
788 /* method stream#BufferedIStream#read_all for (self: Object): String */
789 val* VIRTUAL_stream__BufferedIStream__read_all(val* self) {
790 val* var /* : String */;
791 val* var1 /* : String */;
792 var1 = stream__BufferedIStream__read_all(self);
793 var = var1;
794 RET_LABEL:;
795 return var;
796 }
797 /* method stream#BufferedIStream#append_line_to for (self: BufferedIStream, Buffer) */
798 void stream__BufferedIStream__append_line_to(val* self, val* p0) {
799 val* var_s /* var s: Buffer */;
800 long var /* : Int */;
801 long var_i /* var i: Int */;
802 short int var1 /* : Bool */;
803 val* var2 /* : nullable Buffer */;
804 long var3 /* : Int */;
805 short int var4 /* : Bool */;
806 short int var6 /* : Bool */;
807 int cltype;
808 int idtype;
809 short int var7 /* : Bool */;
810 short int var_ /* var : Bool */;
811 val* var8 /* : nullable Buffer */;
812 val* var9 /* : nullable Object */;
813 char var10 /* : Char */;
814 short int var11 /* : Bool */;
815 short int var13 /* : Bool */;
816 char var14 /* : Char */;
817 short int var15 /* : Bool */;
818 long var16 /* : Int */;
819 long var17 /* : Int */;
820 long var19 /* : Int */;
821 long var20 /* : Int */;
822 short int var21 /* : Bool */;
823 short int var23 /* : Bool */;
824 int cltype24;
825 int idtype25;
826 short int var26 /* : Bool */;
827 long var27 /* : Int */;
828 long var28 /* : Int */;
829 long var30 /* : Int */;
830 long var31 /* : Int */;
831 long var32 /* : Int */;
832 long var34 /* : Int */;
833 long var35 /* : Int */;
834 long var_j /* var j: Int */;
835 short int var36 /* : Bool */;
836 short int var38 /* : Bool */;
837 int cltype39;
838 int idtype40;
839 short int var41 /* : Bool */;
840 val* var42 /* : nullable Buffer */;
841 val* var43 /* : nullable Object */;
842 long var44 /* : Int */;
843 long var45 /* : Int */;
844 long var47 /* : Int */;
845 val* var49 /* : nullable Buffer */;
846 long var50 /* : Int */;
847 short int var51 /* : Bool */;
848 short int var53 /* : Bool */;
849 int cltype54;
850 int idtype55;
851 short int var56 /* : Bool */;
852 long var57 /* : Int */;
853 long var58 /* : Int */;
854 long var60 /* : Int */;
855 short int var61 /* : Bool */;
856 var_s = p0;
857 for(;;) {
858 var = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
859 var_i = var;
860 for(;;) {
861 var2 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
862 if (var2 == NULL) {
863 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 153);
864 exit(1);
865 } else {
866 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:nullable Buffer>*/;
867 }
868 { /* Inline kernel#Int#< (var_i,var3) */
869 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
870 /* <var3:Int> isa OTHER */
871 var6 = 1; /* easy <var3:Int> isa OTHER*/
872 if (!var6) {
873 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
874 exit(1);
875 }
876 var7 = var_i < var3;
877 var4 = var7;
878 goto RET_LABEL5;
879 RET_LABEL5:(void)0;
880 }
881 var_ = var4;
882 if (var4){
883 var8 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
884 if (var8 == NULL) {
885 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 153);
886 exit(1);
887 } else {
888 var9 = ((val* (*)(val*, long))(var8->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var8, var_i) /* [] on <var8:nullable Buffer>*/;
889 }
890 var10 = '\n';
891 { /* Inline kernel#Char#!= (var9,var10) */
892 var13 = (var9 != NULL) && (var9->class == &class_kernel__Char);
893 if (var13) {
894 var14 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */;
895 var13 = (var14 == var10);
896 }
897 var15 = !var13;
898 var11 = var15;
899 goto RET_LABEL12;
900 RET_LABEL12:(void)0;
901 }
902 var1 = var11;
903 } else {
904 var1 = var_;
905 }
906 if (!var1) break;
907 var16 = 1;
908 { /* Inline kernel#Int#+ (var_i,var16) */
909 var19 = var_i + var16;
910 var17 = var19;
911 goto RET_LABEL18;
912 RET_LABEL18:(void)0;
913 }
914 var_i = var17;
915 CONTINUE_label: (void)0;
916 }
917 BREAK_label: (void)0;
918 var20 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
919 { /* Inline kernel#Int#> (var_i,var20) */
920 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
921 /* <var20:Int> isa OTHER */
922 var23 = 1; /* easy <var20:Int> isa OTHER*/
923 if (!var23) {
924 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
925 exit(1);
926 }
927 var26 = var_i > var20;
928 var21 = var26;
929 goto RET_LABEL22;
930 RET_LABEL22:(void)0;
931 }
932 if (var21){
933 var27 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Buffer>*/;
934 { /* Inline kernel#Int#+ (var27,var_i) */
935 var30 = var27 + var_i;
936 var28 = var30;
937 goto RET_LABEL29;
938 RET_LABEL29:(void)0;
939 }
940 var31 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
941 { /* Inline kernel#Int#- (var28,var31) */
942 var34 = var28 - var31;
943 var32 = var34;
944 goto RET_LABEL33;
945 RET_LABEL33:(void)0;
946 }
947 ((void (*)(val*, long))(var_s->class->vft[COLOR_array__AbstractArray__enlarge]))(var_s, var32) /* enlarge on <var_s:Buffer>*/;
948 var35 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
949 var_j = var35;
950 for(;;) {
951 { /* Inline kernel#Int#< (var_j,var_i) */
952 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
953 /* <var_i:Int> isa OTHER */
954 var38 = 1; /* easy <var_i:Int> isa OTHER*/
955 if (!var38) {
956 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
957 exit(1);
958 }
959 var41 = var_j < var_i;
960 var36 = var41;
961 goto RET_LABEL37;
962 RET_LABEL37:(void)0;
963 }
964 if (!var36) break;
965 var42 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
966 if (var42 == NULL) {
967 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 163);
968 exit(1);
969 } else {
970 var43 = ((val* (*)(val*, long))(var42->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var42, var_j) /* [] on <var42:nullable Buffer>*/;
971 }
972 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var43) /* add on <var_s:Buffer>*/;
973 var44 = 1;
974 { /* Inline kernel#Int#+ (var_j,var44) */
975 var47 = var_j + var44;
976 var45 = var47;
977 goto RET_LABEL46;
978 RET_LABEL46:(void)0;
979 }
980 var_j = var45;
981 CONTINUE_label48: (void)0;
982 }
983 BREAK_label48: (void)0;
984 } else {
985 }
986 var49 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
987 if (var49 == NULL) {
988 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 168);
989 exit(1);
990 } else {
991 var50 = ((long (*)(val*))(var49->class->vft[COLOR_abstract_collection__Collection__length]))(var49) /* length on <var49:nullable Buffer>*/;
992 }
993 { /* Inline kernel#Int#< (var_i,var50) */
994 /* Covariant cast for argument 0 (i) <var50:Int> isa OTHER */
995 /* <var50:Int> isa OTHER */
996 var53 = 1; /* easy <var50:Int> isa OTHER*/
997 if (!var53) {
998 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
999 exit(1);
1000 }
1001 var56 = var_i < var50;
1002 var51 = var56;
1003 goto RET_LABEL52;
1004 RET_LABEL52:(void)0;
1005 }
1006 if (var51){
1007 var57 = 1;
1008 { /* Inline kernel#Int#+ (var_i,var57) */
1009 var60 = var_i + var57;
1010 var58 = var60;
1011 goto RET_LABEL59;
1012 RET_LABEL59:(void)0;
1013 }
1014 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var58; /* _buffer_pos on <self:BufferedIStream> */
1015 goto RET_LABEL;
1016 } else {
1017 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_i; /* _buffer_pos on <self:BufferedIStream> */
1018 var61 = ((short int (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__end_reached]))(self) /* end_reached on <self:BufferedIStream>*/;
1019 if (var61){
1020 goto RET_LABEL;
1021 } else {
1022 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
1023 }
1024 }
1025 CONTINUE_label62: (void)0;
1026 }
1027 BREAK_label62: (void)0;
1028 RET_LABEL:;
1029 }
1030 /* method stream#BufferedIStream#append_line_to for (self: Object, Buffer) */
1031 void VIRTUAL_stream__BufferedIStream__append_line_to(val* self, val* p0) {
1032 stream__BufferedIStream__append_line_to(self, p0);
1033 RET_LABEL:;
1034 }
1035 /* method stream#BufferedIStream#eof for (self: BufferedIStream): Bool */
1036 short int stream__BufferedIStream__eof(val* self) {
1037 short int var /* : Bool */;
1038 short int var1 /* : Bool */;
1039 long var2 /* : Int */;
1040 val* var3 /* : nullable Buffer */;
1041 long var4 /* : Int */;
1042 short int var5 /* : Bool */;
1043 short int var7 /* : Bool */;
1044 int cltype;
1045 int idtype;
1046 short int var8 /* : Bool */;
1047 short int var_ /* var : Bool */;
1048 short int var9 /* : Bool */;
1049 var2 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
1050 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
1051 if (var3 == NULL) {
1052 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 184);
1053 exit(1);
1054 } else {
1055 var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on <var3:nullable Buffer>*/;
1056 }
1057 { /* Inline kernel#Int#>= (var2,var4) */
1058 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1059 /* <var4:Int> isa OTHER */
1060 var7 = 1; /* easy <var4:Int> isa OTHER*/
1061 if (!var7) {
1062 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
1063 exit(1);
1064 }
1065 var8 = var2 >= var4;
1066 var5 = var8;
1067 goto RET_LABEL6;
1068 RET_LABEL6:(void)0;
1069 }
1070 var_ = var5;
1071 if (var5){
1072 var9 = ((short int (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__end_reached]))(self) /* end_reached on <self:BufferedIStream>*/;
1073 var1 = var9;
1074 } else {
1075 var1 = var_;
1076 }
1077 var = var1;
1078 goto RET_LABEL;
1079 RET_LABEL:;
1080 return var;
1081 }
1082 /* method stream#BufferedIStream#eof for (self: Object): Bool */
1083 short int VIRTUAL_stream__BufferedIStream__eof(val* self) {
1084 short int var /* : Bool */;
1085 short int var1 /* : Bool */;
1086 var1 = stream__BufferedIStream__eof(self);
1087 var = var1;
1088 RET_LABEL:;
1089 return var;
1090 }
1091 /* method stream#BufferedIStream#fill_buffer for (self: BufferedIStream) */
1092 void stream__BufferedIStream__fill_buffer(val* self) {
1093 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 192);
1094 exit(1);
1095 RET_LABEL:;
1096 }
1097 /* method stream#BufferedIStream#fill_buffer for (self: Object) */
1098 void VIRTUAL_stream__BufferedIStream__fill_buffer(val* self) {
1099 stream__BufferedIStream__fill_buffer(self);
1100 RET_LABEL:;
1101 }
1102 /* method stream#BufferedIStream#end_reached for (self: BufferedIStream): Bool */
1103 short int stream__BufferedIStream__end_reached(val* self) {
1104 short int var /* : Bool */;
1105 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 195);
1106 exit(1);
1107 RET_LABEL:;
1108 return var;
1109 }
1110 /* method stream#BufferedIStream#end_reached for (self: Object): Bool */
1111 short int VIRTUAL_stream__BufferedIStream__end_reached(val* self) {
1112 short int var /* : Bool */;
1113 short int var1 /* : Bool */;
1114 var1 = stream__BufferedIStream__end_reached(self);
1115 var = var1;
1116 RET_LABEL:;
1117 return var;
1118 }
1119 /* method stream#BufferedIStream#prepare_buffer for (self: BufferedIStream, Int) */
1120 void stream__BufferedIStream__prepare_buffer(val* self, long p0) {
1121 long var_capacity /* var capacity: Int */;
1122 val* var /* : Buffer */;
1123 long var1 /* : Int */;
1124 var_capacity = p0;
1125 var = NEW_string__Buffer(&type_string__Buffer);
1126 ((void (*)(val*, long))(var->class->vft[COLOR_string__Buffer__with_capacity]))(var, var_capacity) /* with_capacity on <var:Buffer>*/;
1127 CHECK_NEW_string__Buffer(var);
1128 self->attrs[COLOR_stream__BufferedIStream___buffer].val = var; /* _buffer on <self:BufferedIStream> */
1129 var1 = 0;
1130 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var1; /* _buffer_pos on <self:BufferedIStream> */
1131 RET_LABEL:;
1132 }
1133 /* method stream#BufferedIStream#prepare_buffer for (self: Object, Int) */
1134 void VIRTUAL_stream__BufferedIStream__prepare_buffer(val* self, long p0) {
1135 stream__BufferedIStream__prepare_buffer(self, p0);
1136 RET_LABEL:;
1137 }
1138 /* method stream#BufferedIStream#init for (self: BufferedIStream) */
1139 void stream__BufferedIStream__init(val* self) {
1140 RET_LABEL:;
1141 }
1142 /* method stream#BufferedIStream#init for (self: Object) */
1143 void VIRTUAL_stream__BufferedIStream__init(val* self) {
1144 stream__BufferedIStream__init(self);
1145 RET_LABEL:;
1146 }
1147 /* method stream#FDStream#fd for (self: FDStream): Int */
1148 long stream__FDStream__fd(val* self) {
1149 long var /* : Int */;
1150 long var1 /* : Int */;
1151 var1 = self->attrs[COLOR_stream__FDStream___64dfd].l; /* @fd on <self:FDStream> */
1152 var = var1;
1153 RET_LABEL:;
1154 return var;
1155 }
1156 /* method stream#FDStream#fd for (self: Object): Int */
1157 long VIRTUAL_stream__FDStream__fd(val* self) {
1158 long var /* : Int */;
1159 long var1 /* : Int */;
1160 var1 = stream__FDStream__fd(self);
1161 var = var1;
1162 RET_LABEL:;
1163 return var;
1164 }
1165 /* method stream#FDStream#fd= for (self: FDStream, Int) */
1166 void stream__FDStream__fd_61d(val* self, long p0) {
1167 self->attrs[COLOR_stream__FDStream___64dfd].l = p0; /* @fd on <self:FDStream> */
1168 RET_LABEL:;
1169 }
1170 /* method stream#FDStream#fd= for (self: Object, Int) */
1171 void VIRTUAL_stream__FDStream__fd_61d(val* self, long p0) {
1172 stream__FDStream__fd_61d(self, p0);
1173 RET_LABEL:;
1174 }
1175 /* method stream#FDStream#close for (self: FDStream) */
1176 void stream__FDStream__close(val* self) {
1177 long var /* : Int */;
1178 long var1 /* : Int */;
1179 var = ((long (*)(val*))(self->class->vft[COLOR_stream__FDStream__fd]))(self) /* fd on <self:FDStream>*/;
1180 var1 = ((long (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__native_close]))(self, var) /* native_close on <self:FDStream>*/;
1181 var1;
1182 RET_LABEL:;
1183 }
1184 /* method stream#FDStream#close for (self: Object) */
1185 void VIRTUAL_stream__FDStream__close(val* self) {
1186 stream__FDStream__close(self);
1187 RET_LABEL:;
1188 }
1189 /* method stream#FDStream#native_close for (self: FDStream, Int): Int */
1190 long stream__FDStream__native_close(val* self, long p0) {
1191 long var /* : Int */;
1192 long var1 /* : Int */;
1193 var1 = stream_FDStream_FDStream_native_close_1(self, p0);
1194 var = var1;
1195 goto RET_LABEL;
1196 RET_LABEL:;
1197 return var;
1198 }
1199 /* method stream#FDStream#native_close for (self: Object, Int): Int */
1200 long VIRTUAL_stream__FDStream__native_close(val* self, long p0) {
1201 long var /* : Int */;
1202 long var1 /* : Int */;
1203 var1 = stream__FDStream__native_close(self, p0);
1204 var = var1;
1205 RET_LABEL:;
1206 return var;
1207 }
1208 /* method stream#FDStream#native_read_char for (self: FDStream, Int): Int */
1209 long stream__FDStream__native_read_char(val* self, long p0) {
1210 long var /* : Int */;
1211 long var1 /* : Int */;
1212 var1 = stream_FDStream_FDStream_native_read_char_1(self, p0);
1213 var = var1;
1214 goto RET_LABEL;
1215 RET_LABEL:;
1216 return var;
1217 }
1218 /* method stream#FDStream#native_read_char for (self: Object, Int): Int */
1219 long VIRTUAL_stream__FDStream__native_read_char(val* self, long p0) {
1220 long var /* : Int */;
1221 long var1 /* : Int */;
1222 var1 = stream__FDStream__native_read_char(self, p0);
1223 var = var1;
1224 RET_LABEL:;
1225 return var;
1226 }
1227 /* method stream#FDStream#native_read for (self: FDStream, Int, NativeString, Int): Int */
1228 long stream__FDStream__native_read(val* self, long p0, char* p1, long p2) {
1229 long var /* : Int */;
1230 long var1 /* : Int */;
1231 var1 = stream_FDStream_FDStream_native_read_3(self, p0, p1, p2);
1232 var = var1;
1233 goto RET_LABEL;
1234 RET_LABEL:;
1235 return var;
1236 }
1237 /* method stream#FDStream#native_read for (self: Object, Int, NativeString, Int): Int */
1238 long VIRTUAL_stream__FDStream__native_read(val* self, long p0, char* p1, long p2) {
1239 long var /* : Int */;
1240 long var1 /* : Int */;
1241 var1 = stream__FDStream__native_read(self, p0, p1, p2);
1242 var = var1;
1243 RET_LABEL:;
1244 return var;
1245 }
1246 /* method stream#FDStream#native_write for (self: FDStream, Int, NativeString, Int): Int */
1247 long stream__FDStream__native_write(val* self, long p0, char* p1, long p2) {
1248 long var /* : Int */;
1249 long var1 /* : Int */;
1250 var1 = stream_FDStream_FDStream_native_write_3(self, p0, p1, p2);
1251 var = var1;
1252 goto RET_LABEL;
1253 RET_LABEL:;
1254 return var;
1255 }
1256 /* method stream#FDStream#native_write for (self: Object, Int, NativeString, Int): Int */
1257 long VIRTUAL_stream__FDStream__native_write(val* self, long p0, char* p1, long p2) {
1258 long var /* : Int */;
1259 long var1 /* : Int */;
1260 var1 = stream__FDStream__native_write(self, p0, p1, p2);
1261 var = var1;
1262 RET_LABEL:;
1263 return var;
1264 }
1265 /* method stream#FDStream#native_write_char for (self: FDStream, Int, Char): Int */
1266 long stream__FDStream__native_write_char(val* self, long p0, char p1) {
1267 long var /* : Int */;
1268 long var1 /* : Int */;
1269 var1 = stream_FDStream_FDStream_native_write_char_2(self, p0, p1);
1270 var = var1;
1271 goto RET_LABEL;
1272 RET_LABEL:;
1273 return var;
1274 }
1275 /* method stream#FDStream#native_write_char for (self: Object, Int, Char): Int */
1276 long VIRTUAL_stream__FDStream__native_write_char(val* self, long p0, char p1) {
1277 long var /* : Int */;
1278 long var1 /* : Int */;
1279 var1 = stream__FDStream__native_write_char(self, p0, p1);
1280 var = var1;
1281 RET_LABEL:;
1282 return var;
1283 }
1284 /* method stream#FDStream#init for (self: FDStream, Int) */
1285 void stream__FDStream__init(val* self, long p0) {
1286 long var_fd /* var fd: Int */;
1287 var_fd = p0;
1288 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__fd_61d]))(self, var_fd) /* fd= on <self:FDStream>*/;
1289 RET_LABEL:;
1290 }
1291 /* method stream#FDStream#init for (self: Object, Int) */
1292 void VIRTUAL_stream__FDStream__init(val* self, long p0) {
1293 stream__FDStream__init(self, p0);
1294 RET_LABEL:;
1295 }
1296 /* method stream#FDIStream#eof for (self: FDIStream): Bool */
1297 short int stream__FDIStream__eof(val* self) {
1298 short int var /* : Bool */;
1299 short int var1 /* : Bool */;
1300 var1 = self->attrs[COLOR_stream__FDIStream___64deof].s; /* @eof on <self:FDIStream> */
1301 var = var1;
1302 RET_LABEL:;
1303 return var;
1304 }
1305 /* method stream#FDIStream#eof for (self: Object): Bool */
1306 short int VIRTUAL_stream__FDIStream__eof(val* self) {
1307 short int var /* : Bool */;
1308 short int var1 /* : Bool */;
1309 var1 = stream__FDIStream__eof(self);
1310 var = var1;
1311 RET_LABEL:;
1312 return var;
1313 }
1314 /* method stream#FDIStream#eof= for (self: FDIStream, Bool) */
1315 void stream__FDIStream__eof_61d(val* self, short int p0) {
1316 self->attrs[COLOR_stream__FDIStream___64deof].s = p0; /* @eof on <self:FDIStream> */
1317 RET_LABEL:;
1318 }
1319 /* method stream#FDIStream#eof= for (self: Object, Bool) */
1320 void VIRTUAL_stream__FDIStream__eof_61d(val* self, short int p0) {
1321 stream__FDIStream__eof_61d(self, p0);
1322 RET_LABEL:;
1323 }
1324 /* method stream#FDIStream#read_char for (self: FDIStream): Int */
1325 long stream__FDIStream__read_char(val* self) {
1326 long var /* : Int */;
1327 long var1 /* : Int */;
1328 long var2 /* : Int */;
1329 long var_nb /* var nb: Int */;
1330 long var3 /* : Int */;
1331 long var4 /* : Int */;
1332 long var6 /* : Int */;
1333 short int var7 /* : Bool */;
1334 short int var9 /* : Bool */;
1335 short int var10 /* : Bool */;
1336 var1 = ((long (*)(val*))(self->class->vft[COLOR_stream__FDStream__fd]))(self) /* fd on <self:FDIStream>*/;
1337 var2 = ((long (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__native_read_char]))(self, var1) /* native_read_char on <self:FDIStream>*/;
1338 var_nb = var2;
1339 var3 = 1;
1340 { /* Inline kernel#Int#unary - (var3) */
1341 var6 = -var3;
1342 var4 = var6;
1343 goto RET_LABEL5;
1344 RET_LABEL5:(void)0;
1345 }
1346 { /* Inline kernel#Int#== (var_nb,var4) */
1347 var9 = var_nb == var4;
1348 var7 = var9;
1349 goto RET_LABEL8;
1350 RET_LABEL8:(void)0;
1351 }
1352 if (var7){
1353 var10 = 1;
1354 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDIStream__eof_61d]))(self, var10) /* eof= on <self:FDIStream>*/;
1355 } else {
1356 }
1357 var = var_nb;
1358 goto RET_LABEL;
1359 RET_LABEL:;
1360 return var;
1361 }
1362 /* method stream#FDIStream#read_char for (self: Object): Int */
1363 long VIRTUAL_stream__FDIStream__read_char(val* self) {
1364 long var /* : Int */;
1365 long var1 /* : Int */;
1366 var1 = stream__FDIStream__read_char(self);
1367 var = var1;
1368 RET_LABEL:;
1369 return var;
1370 }
1371 /* method stream#FDIStream#init for (self: FDIStream, Int) */
1372 void stream__FDIStream__init(val* self, long p0) {
1373 long var_fd /* var fd: Int */;
1374 var_fd = p0;
1375 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__init]))(self, p0) /* init on <self:FDIStream>*/;
1376 RET_LABEL:;
1377 }
1378 /* method stream#FDIStream#init for (self: Object, Int) */
1379 void VIRTUAL_stream__FDIStream__init(val* self, long p0) {
1380 stream__FDIStream__init(self, p0);
1381 RET_LABEL:;
1382 }
1383 /* method stream#FDOStream#is_writable for (self: FDOStream): Bool */
1384 short int stream__FDOStream__is_writable(val* self) {
1385 short int var /* : Bool */;
1386 short int var1 /* : Bool */;
1387 var1 = self->attrs[COLOR_stream__FDOStream___64dis_writable].s; /* @is_writable on <self:FDOStream> */
1388 var = var1;
1389 RET_LABEL:;
1390 return var;
1391 }
1392 /* method stream#FDOStream#is_writable for (self: Object): Bool */
1393 short int VIRTUAL_stream__FDOStream__is_writable(val* self) {
1394 short int var /* : Bool */;
1395 short int var1 /* : Bool */;
1396 var1 = stream__FDOStream__is_writable(self);
1397 var = var1;
1398 RET_LABEL:;
1399 return var;
1400 }
1401 /* method stream#FDOStream#is_writable= for (self: FDOStream, Bool) */
1402 void stream__FDOStream__is_writable_61d(val* self, short int p0) {
1403 self->attrs[COLOR_stream__FDOStream___64dis_writable].s = p0; /* @is_writable on <self:FDOStream> */
1404 RET_LABEL:;
1405 }
1406 /* method stream#FDOStream#is_writable= for (self: Object, Bool) */
1407 void VIRTUAL_stream__FDOStream__is_writable_61d(val* self, short int p0) {
1408 stream__FDOStream__is_writable_61d(self, p0);
1409 RET_LABEL:;
1410 }
1411 /* method stream#FDOStream#write for (self: FDOStream, String) */
1412 void stream__FDOStream__write(val* self, val* p0) {
1413 val* var_s /* var s: String */;
1414 long var /* : Int */;
1415 char* var1 /* : NativeString */;
1416 long var2 /* : Int */;
1417 long var3 /* : Int */;
1418 long var_nb /* var nb: Int */;
1419 long var4 /* : Int */;
1420 short int var5 /* : Bool */;
1421 short int var7 /* : Bool */;
1422 int cltype;
1423 int idtype;
1424 short int var8 /* : Bool */;
1425 short int var9 /* : Bool */;
1426 var_s = p0;
1427 var = ((long (*)(val*))(self->class->vft[COLOR_stream__FDStream__fd]))(self) /* fd on <self:FDOStream>*/;
1428 var1 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__String__to_cstring]))(var_s) /* to_cstring on <var_s:String>*/;
1429 var2 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
1430 var3 = ((long (*)(val*, long, char*, long))(self->class->vft[COLOR_stream__FDStream__native_write]))(self, var, var1, var2) /* native_write on <self:FDOStream>*/;
1431 var_nb = var3;
1432 var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
1433 { /* Inline kernel#Int#< (var_nb,var4) */
1434 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1435 /* <var4:Int> isa OTHER */
1436 var7 = 1; /* easy <var4:Int> isa OTHER*/
1437 if (!var7) {
1438 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
1439 exit(1);
1440 }
1441 var8 = var_nb < var4;
1442 var5 = var8;
1443 goto RET_LABEL6;
1444 RET_LABEL6:(void)0;
1445 }
1446 if (var5){
1447 var9 = 0;
1448 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDOStream__is_writable_61d]))(self, var9) /* is_writable= on <self:FDOStream>*/;
1449 } else {
1450 }
1451 RET_LABEL:;
1452 }
1453 /* method stream#FDOStream#write for (self: Object, String) */
1454 void VIRTUAL_stream__FDOStream__write(val* self, val* p0) {
1455 stream__FDOStream__write(self, p0);
1456 RET_LABEL:;
1457 }
1458 /* method stream#FDOStream#init for (self: FDOStream, Int) */
1459 void stream__FDOStream__init(val* self, long p0) {
1460 long var_fd /* var fd: Int */;
1461 short int var /* : Bool */;
1462 var_fd = p0;
1463 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__init]))(self, p0) /* init on <self:FDOStream>*/;
1464 var = 1;
1465 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDOStream__is_writable_61d]))(self, var) /* is_writable= on <self:FDOStream>*/;
1466 RET_LABEL:;
1467 }
1468 /* method stream#FDOStream#init for (self: Object, Int) */
1469 void VIRTUAL_stream__FDOStream__init(val* self, long p0) {
1470 stream__FDOStream__init(self, p0);
1471 RET_LABEL:;
1472 }
1473 /* method stream#FDIOStream#init for (self: FDIOStream, Int) */
1474 void stream__FDIOStream__init(val* self, long p0) {
1475 long var_fd /* var fd: Int */;
1476 short int var /* : Bool */;
1477 var_fd = p0;
1478 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDIStream__init]))(self, p0) /* init on <self:FDIOStream>*/;
1479 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDOStream__init]))(self, p0) /* init on <self:FDIOStream>*/;
1480 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__fd_61d]))(self, var_fd) /* fd= on <self:FDIOStream>*/;
1481 var = 1;
1482 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDOStream__is_writable_61d]))(self, var) /* is_writable= on <self:FDIOStream>*/;
1483 RET_LABEL:;
1484 }
1485 /* method stream#FDIOStream#init for (self: Object, Int) */
1486 void VIRTUAL_stream__FDIOStream__init(val* self, long p0) {
1487 stream__FDIOStream__init(self, p0);
1488 RET_LABEL:;
1489 }
1490 /* method stream#Object#poll for (self: Object, Sequence[FDStream]): nullable FDStream */
1491 val* stream__Object__poll(val* self, val* p0) {
1492 val* var /* : nullable FDStream */;
1493 val* var_streams /* var streams: Sequence[FDStream] */;
1494 val* var1 /* : Array[Int] */;
1495 val* var_in_fds /* var in_fds: Array[Int] */;
1496 val* var2 /* : Array[Int] */;
1497 val* var_out_fds /* var out_fds: Array[Int] */;
1498 val* var3 /* : HashMap[Int, FDStream] */;
1499 val* var_fd_to_stream /* var fd_to_stream: HashMap[Int, FDStream] */;
1500 val* var4 /* : Iterator[nullable Object] */;
1501 short int var5 /* : Bool */;
1502 val* var6 /* : nullable Object */;
1503 val* var_s /* var s: FDStream */;
1504 long var7 /* : Int */;
1505 long var_fd /* var fd: Int */;
1506 short int var8 /* : Bool */;
1507 int cltype;
1508 int idtype;
1509 val* var9 /* : nullable Object */;
1510 short int var10 /* : Bool */;
1511 int cltype11;
1512 int idtype12;
1513 val* var13 /* : nullable Object */;
1514 val* var14 /* : Object */;
1515 val* var15 /* : nullable Int */;
1516 val* var_polled_fd /* var polled_fd: nullable Int */;
1517 val* var16 /* : null */;
1518 short int var17 /* : Bool */;
1519 val* var18 /* : null */;
1520 val* var19 /* : nullable Object */;
1521 var_streams = p0;
1522 var1 = NEW_array__Array(&type_array__Arraykernel__Int);
1523 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Int]>*/;
1524 CHECK_NEW_array__Array(var1);
1525 var_in_fds = var1;
1526 var2 = NEW_array__Array(&type_array__Arraykernel__Int);
1527 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Int]>*/;
1528 CHECK_NEW_array__Array(var2);
1529 var_out_fds = var2;
1530 var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapkernel__Intstream__FDStream);
1531 ((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[Int, FDStream]>*/;
1532 CHECK_NEW_hash_collection__HashMap(var3);
1533 var_fd_to_stream = var3;
1534 var4 = ((val* (*)(val*))(var_streams->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_streams) /* iterator on <var_streams:Sequence[FDStream]>*/;
1535 for(;;) {
1536 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
1537 if(!var5) break;
1538 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
1539 var_s = var6;
1540 var7 = ((long (*)(val*))(var_s->class->vft[COLOR_stream__FDStream__fd]))(var_s) /* fd on <var_s:FDStream>*/;
1541 var_fd = var7;
1542 /* <var_s:FDStream> isa FDIStream */
1543 cltype = type_stream__FDIStream.color;
1544 idtype = type_stream__FDIStream.id;
1545 if(cltype >= var_s->type->table_size) {
1546 var8 = 0;
1547 } else {
1548 var8 = var_s->type->type_table[cltype] == idtype;
1549 }
1550 if (var8){
1551 var9 = BOX_kernel__Int(var_fd); /* autobox from Int to nullable Object */
1552 ((void (*)(val*, val*))(var_in_fds->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_in_fds, var9) /* add on <var_in_fds:Array[Int]>*/;
1553 } else {
1554 }
1555 /* <var_s:FDStream> isa FDOStream */
1556 cltype11 = type_stream__FDOStream.color;
1557 idtype12 = type_stream__FDOStream.id;
1558 if(cltype11 >= var_s->type->table_size) {
1559 var10 = 0;
1560 } else {
1561 var10 = var_s->type->type_table[cltype11] == idtype12;
1562 }
1563 if (var10){
1564 var13 = BOX_kernel__Int(var_fd); /* autobox from Int to nullable Object */
1565 ((void (*)(val*, val*))(var_out_fds->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_out_fds, var13) /* add on <var_out_fds:Array[Int]>*/;
1566 } else {
1567 }
1568 var14 = BOX_kernel__Int(var_fd); /* autobox from Int to Object */
1569 ((void (*)(val*, val*, val*))(var_fd_to_stream->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var_fd_to_stream, var14, var_s) /* []= on <var_fd_to_stream:HashMap[Int, FDStream]>*/;
1570 CONTINUE_label: (void)0;
1571 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
1572 }
1573 BREAK_label: (void)0;
1574 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_stream__Object__intern_poll]))(self, var_in_fds, var_out_fds) /* intern_poll on <self:Object>*/;
1575 var_polled_fd = var15;
1576 var16 = NULL;
1577 if (var_polled_fd == NULL) {
1578 var17 = 1; /* is null */
1579 } else {
1580 var17 = 0; /* arg is null but recv is not */
1581 }
1582 if (var17){
1583 var18 = NULL;
1584 var = var18;
1585 goto RET_LABEL;
1586 } else {
1587 var19 = ((val* (*)(val*, val*))(var_fd_to_stream->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_fd_to_stream, var_polled_fd) /* [] on <var_fd_to_stream:HashMap[Int, FDStream]>*/;
1588 var = var19;
1589 goto RET_LABEL;
1590 }
1591 RET_LABEL:;
1592 return var;
1593 }
1594 /* method stream#Object#poll for (self: Object, Sequence[FDStream]): nullable FDStream */
1595 val* VIRTUAL_stream__Object__poll(val* self, val* p0) {
1596 val* var /* : nullable FDStream */;
1597 val* var1 /* : nullable FDStream */;
1598 var1 = stream__Object__poll(self, p0);
1599 var = var1;
1600 RET_LABEL:;
1601 return var;
1602 }
1603 /* method stream#Object#intern_poll for (self: Object, Array[Int], Array[Int]): nullable Int */
1604 val* stream__Object__intern_poll(val* self, val* p0, val* p1) {
1605 val* var /* : nullable Int */;
1606 fprintf(stderr, "NOT YET IMPLEMENTED nitni for stream#Object#intern_poll at lib/standard/stream.nit:297,2--171\n");
1607 exit(1);
1608 RET_LABEL:;
1609 return var;
1610 }
1611 /* method stream#Object#intern_poll for (self: Object, Array[Int], Array[Int]): nullable Int */
1612 val* VIRTUAL_stream__Object__intern_poll(val* self, val* p0, val* p1) {
1613 val* var /* : nullable Int */;
1614 val* var1 /* : nullable Int */;
1615 var1 = stream__Object__intern_poll(self, p0, p1);
1616 var = var1;
1617 RET_LABEL:;
1618 return var;
1619 }