Fix bug where tuples are destructured with the members in the wrong order
This commit is contained in:
parent
b9a2eab834
commit
085a756ed3
@ -593,14 +593,15 @@ and simpl_declaration : Raw.declaration -> declaration Location.wrap list result
|
||||
if i = (List.length variables) then accesses
|
||||
else
|
||||
let accesses =
|
||||
build_access_expr :: accesses
|
||||
build_access_expr :: accesses
|
||||
in
|
||||
gen_access_tuple name ~i: (i + 1) ~accesses
|
||||
in ok (gen_access_tuple name)
|
||||
(* TODO: Improve this error message *)
|
||||
| other -> fail @@ simplifying_expr other
|
||||
in let%bind decls =
|
||||
bind_map_list process_variable (List.combine variables expr_bind_lst)
|
||||
(* TODO: Rewrite the gen_access_tuple so there's no List.rev *)
|
||||
bind_map_list process_variable (List.combine variables (List.rev expr_bind_lst))
|
||||
in ok @@ decls
|
||||
| PPar {region = _ ; value = { lpar = _ ; inside = pt; rpar = _; } } ->
|
||||
(* Extract parenthetical multi-bind *)
|
||||
|
@ -11,4 +11,4 @@ let main_paren (p: unit) : int = x + y
|
||||
let foobar : (int * int) = (23 , 42)
|
||||
let (foo : int) , (bar : int) = foobar
|
||||
|
||||
let non_tuple_rhs (p: unit) : int = foo + bar
|
||||
let non_tuple_rhs (p: unit) : int = bar - foo
|
||||
|
@ -1215,7 +1215,7 @@ let mligo_let_multiple () : unit result =
|
||||
in
|
||||
let%bind () =
|
||||
let input = e_unit () in
|
||||
let expected = e_int 65 in
|
||||
let expected = e_int 19 in
|
||||
expect_eq program "non_tuple_rhs" input expected
|
||||
in
|
||||
ok ()
|
||||
|
Loading…
Reference in New Issue
Block a user