diff options
| author | Graydon Hoare <[email protected]> | 2010-07-13 14:26:38 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-07-13 14:26:38 -0700 |
| commit | bb243b3aef0d17fc82808274d0b3cf92ac3c07d4 (patch) | |
| tree | 9b71189815b8da1697cdfea2277523313b780003 /src/boot/me | |
| parent | Modify _io's fd_buf_reader to do something slightly more useful: produce mult... (diff) | |
| download | rust-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.ml | 3 | ||||
| -rw-r--r-- | src/boot/me/type.ml | 2 | ||||
| -rw-r--r-- | src/boot/me/typestate.ml | 2 | ||||
| -rw-r--r-- | src/boot/me/walk.ml | 3 |
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 |