|
@@ -855,7 +855,7 @@ let match_expr ctx e cases def need_val with_type p =
|
|
| EArrayDecl el ->
|
|
| EArrayDecl el ->
|
|
List.map (fun e -> type_expr ctx e true) el
|
|
List.map (fun e -> type_expr ctx e true) el
|
|
| _ ->
|
|
| _ ->
|
|
- [type_expr_with_type ctx e with_type need_val]
|
|
|
|
|
|
+ [type_expr ctx e need_val]
|
|
in
|
|
in
|
|
let v_evals = List.map (fun e -> gen_local ctx e.etype) evals in
|
|
let v_evals = List.map (fun e -> gen_local ctx e.etype) evals in
|
|
let mctx = {
|
|
let mctx = {
|
|
@@ -894,7 +894,7 @@ let match_expr ctx e cases def need_val with_type p =
|
|
| _,_ :: _ :: [] -> error "This kind of binding is not allowed because we do not have tuples" (pos epat);
|
|
| _,_ :: _ :: [] -> error "This kind of binding is not allowed because we do not have tuples" (pos epat);
|
|
| _,_ -> [to_pattern ctx epat (List.hd evals).etype]
|
|
| _,_ -> [to_pattern ctx epat (List.hd evals).etype]
|
|
in
|
|
in
|
|
- let e = type_expr ctx e need_val in
|
|
|
|
|
|
+ let e = type_expr_with_type ctx e with_type need_val in
|
|
let eg = match eg with
|
|
let eg = match eg with
|
|
| None -> None
|
|
| None -> None
|
|
| Some e ->
|
|
| Some e ->
|