aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/constrintern.ml
diff options
context:
space:
mode:
Diffstat (limited to 'interp/constrintern.ml')
-rw-r--r--interp/constrintern.ml9
1 files changed, 8 insertions, 1 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index 065e3c3ca..ce4fb5fe1 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -549,13 +549,20 @@ let internalise sigma env allow_soapp lvar c =
(loc,ind,l@nal)) indnalo))) tms,
List.map (intern_eqn (List.length tms) env) eqns)
| COrderedCase (loc, tag, po, c, cl) ->
+ let env = reset_tmp_scope env in
ROrderedCase (loc, tag, option_app (intern_type env) po,
intern env c,
Array.of_list (List.map (intern env) cl),ref None)
| CLetTuple (loc, nal, (na,po), b, c) ->
+ let env' = reset_tmp_scope env in
RLetTuple (loc, nal,
+ (na, option_app (intern_type (push_name_env env' na)) po),
+ intern env' b, intern (List.fold_left push_name_env env nal) c)
+ | CIf (loc, c, (na,po), b1, b2) ->
+ let env = reset_tmp_scope env in
+ RIf (loc, intern env c,
(na, option_app (intern_type (push_name_env env na)) po),
- intern env b, intern (List.fold_left push_name_env env nal) c)
+ intern env b1, intern env b2)
| CHole loc ->
RHole (loc, QuestionMark)
| CPatVar (loc, n) when allow_soapp ->