diff options
Diffstat (limited to 'examples/vec.fwd')
| -rw-r--r-- | examples/vec.fwd | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/examples/vec.fwd b/examples/vec.fwd index 22049e0..bd88091 100644 --- a/examples/vec.fwd +++ b/examples/vec.fwd @@ -44,11 +44,12 @@ reserve_vec(vec v, u64 c, (vec) ok) set_vec(vec v, i64 i, i64 e, (vec) ok) { v => [n => n, s => s, buf => buf]; - buf + (n - 1 as u64) => nbuf; + /* oh wait, this is dumb, of course nbuf will never be null */ + buf + i => nbuf; nil nbuf { nil nbuf; fwdfree(buf); - fwdpanic("should never happen"); + fwdpanic("set_vec, should never happen\n"); } => dst; /* perform actual store */ @@ -68,7 +69,7 @@ append_vec(vec v, i64 e, (vec) ok) { n_vec(v) => v, n; reserve_vec(v, n + 1 as u64) => v; - set_vec(v, n as i64 - 1, e) => v; + set_vec(v, n as i64, e) => v; ok(v); } @@ -77,14 +78,14 @@ at_vec(vec v, u64 i, (vec, &i64) ok) v => [n => n, s => s, buf => buf]; guard(i < n) => { fwdfree(buf); - fwdpanic("bounds error"); + fwdpanic("at_vec, bounds error\n"); } => ; buf + i => *i64 nbuf; nil nbuf { nil nbuf; fwdfree(buf); - fwdpanic("should never happen"); + fwdpanic("at_vec, should never happen\n"); } => &i64 bufr; nil nbuf; @@ -112,9 +113,9 @@ populate_vec(i64 i, i64 n, vec v, (vec) ok) guard(bool c, () err | () ok) { if c { - err(); - } else { ok(); + } else { + err(); } } @@ -123,9 +124,9 @@ check_vec(i64 i, i64 n, vec v, (vec) ok) if i < n { at_vec(v, i as u64) => v, elem; - guard(elem* != i) => { + guard(elem* == i) => { destroy_vec(v); - fwdpanic("vec built wrong"); + fwdpanic("check_vec, vec built wrong\n"); } => ; check_vec(i + 1, n, v, ok); @@ -137,7 +138,7 @@ check_vec(i64 i, i64 n, vec v, (vec) ok) main() { init_vec(0 as u64) => vec v; - populate_vec(0, 1000000, v) => vec v; - check_vec(0, 1000000, v) => vec v; + populate_vec(0, 10, v) => vec v; + check_vec(0, 10, v) => vec v; destroy_vec(v); } |
