aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/constrintern.ml
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2003-09-09 15:04:11 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2003-09-09 15:04:11 +0000
commita6498fdcb697dafd9b95468aeada8a01221181da (patch)
tree876439fabed5e0138b03120c2fb3846b2142f168 /interp/constrintern.ml
parent8483fdf73a7aad87e090e1f37d4ca4f7b9b81657 (diff)
Ajout If; synchro avec constrextern
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4333 85f007b7-540e-0410-9357-904b9bb8a0f7
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 ->