aboutsummaryrefslogtreecommitdiff
path: root/src/boot/me
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-07-13 14:26:38 -0700
committerGraydon Hoare <[email protected]>2010-07-13 14:26:38 -0700
commitbb243b3aef0d17fc82808274d0b3cf92ac3c07d4 (patch)
tree9b71189815b8da1697cdfea2277523313b780003 /src/boot/me
parentModify _io's fd_buf_reader to do something slightly more useful: produce mult... (diff)
downloadrust-bb243b3aef0d17fc82808274d0b3cf92ac3c07d4.tar.xz
rust-bb243b3aef0d17fc82808274d0b3cf92ac3c07d4.zip
Desugar the head stmts all the way out of STMT_for, rather than stashing them in the node. That's only necessary for STMT_while.
Diffstat (limited to 'src/boot/me')
-rw-r--r--src/boot/me/trans.ml3
-rw-r--r--src/boot/me/type.ml2
-rw-r--r--src/boot/me/typestate.ml2
-rw-r--r--src/boot/me/walk.ml3
4 files changed, 4 insertions, 6 deletions
diff --git a/src/boot/me/trans.ml b/src/boot/me/trans.ml
index 85dd5265..df0801b9 100644
--- a/src/boot/me/trans.ml
+++ b/src/boot/me/trans.ml
@@ -4021,10 +4021,9 @@ let trans_visitor
let dst_slot_id = (fst (fo.Ast.for_slot)).id in
let dst_slot = get_slot cx dst_slot_id in
let dst_cell = cell_of_block_slot dst_slot_id in
- let (head_stmts, seq) = fo.Ast.for_seq in
+ let seq = fo.Ast.for_seq in
let (seq_cell, seq_ty) = trans_lval seq in
let unit_ty = seq_unit_ty seq_ty in
- Array.iter trans_stmt head_stmts;
iter_seq_parts ty_params seq_cell seq_cell unit_ty
begin
fun _ src_cell unit_ty _ ->
diff --git a/src/boot/me/type.ml b/src/boot/me/type.ml
index b27e68dc..701bee1a 100644
--- a/src/boot/me/type.ml
+++ b/src/boot/me/type.ml
@@ -1263,7 +1263,7 @@ let process_crate (cx:ctxt) (crate:Ast.crate) : unit =
let mem_tv = ref TYSPEC_all in
let seq_tv = ref (TYSPEC_collection mem_tv) in
let (si, _) = fo.Ast.for_slot in
- let (_, seq) = fo.Ast.for_seq in
+ let seq = fo.Ast.for_seq in
unify_lval rval_ctx seq seq_tv;
unify_slot lval_ctx si.node (Some si.id) mem_tv
diff --git a/src/boot/me/typestate.ml b/src/boot/me/typestate.ml
index 6e0b57e1..b9a189c2 100644
--- a/src/boot/me/typestate.ml
+++ b/src/boot/me/typestate.ml
@@ -533,7 +533,7 @@ let condition_assigning_visitor
| Ast.STMT_for fo ->
let (si, _) = fo.Ast.for_slot in
- let (_, lval) = fo.Ast.for_seq in
+ let lval = fo.Ast.for_seq in
let precond = slot_inits (lval_slots cx lval) in
let block_entry_state = [| Constr_init si.id |] in
raise_pre_post_cond s.id precond;
diff --git a/src/boot/me/walk.ml b/src/boot/me/walk.ml
index 0b60c832..49db07e5 100644
--- a/src/boot/me/walk.ml
+++ b/src/boot/me/walk.ml
@@ -419,9 +419,8 @@ and walk_stmt
(s:Ast.stmt_for)
: unit =
let (si,_) = s.Ast.for_slot in
- let (ss,lv) = s.Ast.for_seq in
+ let lv = s.Ast.for_seq in
walk_slot_identified v si;
- Array.iter (walk_stmt v) ss;
walk_lval v lv;
walk_block v s.Ast.for_body
in