//ww:run-exit 95 // Migrated from 775_io_vtable_run row branched_readers. package main; import io; fn r1(s: io.stream, buf: []u8) (size | io.eof | io.error) = { return 1: size; }; fn r2(s: io.stream, buf: []u8) (size | io.eof | io.error) = { return 2: size; }; export fn main() i32 = { let vt1: io.vtable; let vt2: io.vtable; vt1.reader = (&r1): *io.reader; vt2.reader = (&r2): *io.reader; let buf: [4]u8; let bs: []u8 = buf[0:4]; let a = io.read(&vt1, bs); let b = io.read(&vt2, bs); let asz: size = 0; let bsz: size = 0; if (a is size) { asz = a as size; }; if (b is size) { bsz = b as size; }; if (asz == 1: size && bsz == 2: size) { return 95; }; return 99; };