File tree Expand file tree Collapse file tree 6 files changed +13
-15
lines changed Expand file tree Collapse file tree 6 files changed +13
-15
lines changed Original file line number Diff line number Diff line change @@ -283,7 +283,7 @@ and stmt_for_each =
283
283
and stmt_for =
284
284
{
285
285
for_slot : (slot identified * ident );
286
- for_seq : (( stmt array ) * lval ) ;
286
+ for_seq : lval ;
287
287
for_body : block ;
288
288
}
289
289
@@ -1098,15 +1098,14 @@ and fmt_stmt_body (ff:Format.formatter) (s:stmt) : unit =
1098
1098
1099
1099
| STMT_for sfor ->
1100
1100
let (slot, ident) = sfor.for_slot in
1101
- let (stmts, lval) = sfor.for_seq in
1101
+ let lval = sfor.for_seq in
1102
1102
begin
1103
1103
fmt_obox ff;
1104
1104
fmt ff " for (" ;
1105
1105
fmt_slot ff slot.node;
1106
1106
fmt ff " " ;
1107
1107
fmt_ident ff ident;
1108
1108
fmt ff " in " ;
1109
- fmt_stmts ff stmts;
1110
1109
fmt_lval ff lval;
1111
1110
fmt ff " ) " ;
1112
1111
fmt_obr ff;
Original file line number Diff line number Diff line change @@ -369,17 +369,18 @@ and parse_stmts (ps:pstate) : Ast.stmt array =
369
369
let inner ps =
370
370
let slot = (parse_identified_slot_and_ident false ps) in
371
371
let _ = (expect ps IN ) in
372
- let lval = (parse_lval ps) in
373
- (slot, lval) in
374
- let (slot, seq ) =
372
+ (slot, (parse_lval ps))
373
+ in
374
+ let (slot, (stmts, lval) ) =
375
375
ctxt " stmts: for head" (bracketed LPAREN RPAREN inner) ps
376
376
in
377
377
let body_block = ctxt " stmts: for body" parse_block ps in
378
378
let bpos = lexpos ps in
379
- [| span ps apos bpos
380
- (Ast. STMT_for
379
+ Array. append stmts
380
+ [| span ps apos bpos
381
+ (Ast. STMT_for
381
382
{ Ast. for_slot = slot;
382
- Ast. for_seq = seq ;
383
+ Ast. for_seq = lval ;
383
384
Ast. for_body = body_block; }) |]
384
385
end
385
386
Original file line number Diff line number Diff line change @@ -4021,10 +4021,9 @@ let trans_visitor
4021
4021
let dst_slot_id = (fst (fo.Ast. for_slot)).id in
4022
4022
let dst_slot = get_slot cx dst_slot_id in
4023
4023
let dst_cell = cell_of_block_slot dst_slot_id in
4024
- let (head_stmts, seq) = fo.Ast. for_seq in
4024
+ let seq = fo.Ast. for_seq in
4025
4025
let (seq_cell, seq_ty) = trans_lval seq in
4026
4026
let unit_ty = seq_unit_ty seq_ty in
4027
- Array. iter trans_stmt head_stmts;
4028
4027
iter_seq_parts ty_params seq_cell seq_cell unit_ty
4029
4028
begin
4030
4029
fun _ src_cell unit_ty _ ->
Original file line number Diff line number Diff line change @@ -1263,7 +1263,7 @@ let process_crate (cx:ctxt) (crate:Ast.crate) : unit =
1263
1263
let mem_tv = ref TYSPEC_all in
1264
1264
let seq_tv = ref (TYSPEC_collection mem_tv) in
1265
1265
let (si, _) = fo.Ast. for_slot in
1266
- let (_, seq) = fo.Ast. for_seq in
1266
+ let seq = fo.Ast. for_seq in
1267
1267
unify_lval rval_ctx seq seq_tv;
1268
1268
unify_slot lval_ctx si.node (Some si.id) mem_tv
1269
1269
Original file line number Diff line number Diff line change @@ -533,7 +533,7 @@ let condition_assigning_visitor
533
533
534
534
| Ast. STMT_for fo ->
535
535
let (si, _) = fo.Ast. for_slot in
536
- let (_, lval) = fo.Ast. for_seq in
536
+ let lval = fo.Ast. for_seq in
537
537
let precond = slot_inits (lval_slots cx lval) in
538
538
let block_entry_state = [| Constr_init si.id |] in
539
539
raise_pre_post_cond s.id precond;
Original file line number Diff line number Diff line change @@ -419,9 +419,8 @@ and walk_stmt
419
419
(s :Ast.stmt_for )
420
420
: unit =
421
421
let (si,_) = s.Ast. for_slot in
422
- let (ss,lv) = s.Ast. for_seq in
422
+ let lv = s.Ast. for_seq in
423
423
walk_slot_identified v si;
424
- Array. iter (walk_stmt v) ss;
425
424
walk_lval v lv;
426
425
walk_block v s.Ast. for_body
427
426
in
You can’t perform that action at this time.
0 commit comments