Skip to content

Commit 8fafaf7

Browse files
committed
Maintain previous order
1 parent 9e884e1 commit 8fafaf7

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

compiler/ml/tast_mapper.ml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,15 @@ let expr sub x =
233233
| Texp_setfield (exp1, lid, ld, exp2) ->
234234
Texp_setfield (sub.expr sub exp1, lid, ld, sub.expr sub exp2)
235235
| Texp_index (exp1, exp2) ->
236-
Texp_index (sub.expr sub exp1, sub.expr sub exp2)
236+
(* Use let bindings to ensure left-to-right evaluation order *)
237+
let exp1 = sub.expr sub exp1 in
238+
let exp2 = sub.expr sub exp2 in
239+
Texp_index (exp1, exp2)
237240
| Texp_setindex (exp1, exp2, exp3) ->
238-
Texp_setindex (sub.expr sub exp1, sub.expr sub exp2, sub.expr sub exp3)
241+
let exp1 = sub.expr sub exp1 in
242+
let exp2 = sub.expr sub exp2 in
243+
let exp3 = sub.expr sub exp3 in
244+
Texp_setindex (exp1, exp2, exp3)
239245
| Texp_array list -> Texp_array (List.map (sub.expr sub) list)
240246
| Texp_ifthenelse (exp1, exp2, expo) ->
241247
Texp_ifthenelse

0 commit comments

Comments
 (0)