From 9c001af07c658b9583bde8d138d1d9408274d741 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Thu, 7 Apr 2011 18:15:56 -0700 Subject: Implemented computing prestates and poststates for a few expression forms. The typestate checker (if it's uncommented) now correctly rejects a trivial example program that has an uninitialized variable. --- src/lib/bitv.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/lib') diff --git a/src/lib/bitv.rs b/src/lib/bitv.rs index 98e6c040..75254ce7 100644 --- a/src/lib/bitv.rs +++ b/src/lib/bitv.rs @@ -170,6 +170,21 @@ fn to_vec(&t v) -> vec[uint] { ret _vec.init_fn[uint](sub, v.nbits); } +fn to_str(&t v) -> str { + auto res = ""; + + for(uint i in v.storage) { + if (i == 1u) { + res += "1"; + } + else { + res += "0"; + } + } + + ret res; +} + // FIXME: can we just use structural equality on to_vec? fn eq_vec(&t v0, &vec[uint] v1) -> bool { check (v0.nbits == _vec.len[uint](v1)); -- cgit v1.2.3