aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-01-28 00:55:02 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-01-28 00:55:02 +0000
commitb5c4711e721bfb9a168838d91d76fc20b7db16c9 (patch)
tree82440858b155bcf46bb1a51eedf8d7495a2293d2 /interp
parent8be1500b80b0deb0547aaab7c91e4681d981b480 (diff)
Backport fixes in Instance declarations to Program Instance.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12694 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r--interp/constrintern.ml17
-rw-r--r--interp/constrintern.mli5
2 files changed, 15 insertions, 7 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index 1f6aff434..009a21965 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -1497,7 +1497,7 @@ let intern_context fail_anonymous sigma env params =
(intern_local_binder_aux ~fail_anonymous (my_intern_constr sigma env lvar) (my_intern_type sigma env lvar) lvar)
((extract_ids env,false,None,[]), []) params)
-let interp_context_gen understand_type understand_judgment env bl =
+let interp_rawcontext_gen understand_type understand_judgment env bl =
let (env, par, _, impls) =
List.fold_left
(fun (env,params,n,impls) (na, k, b, t) ->
@@ -1520,12 +1520,15 @@ let interp_context_gen understand_type understand_judgment env bl =
(env,[],1,[]) (List.rev bl)
in (env, par), impls
-let interp_context ?(fail_anonymous=false) sigma env params =
+let interp_context_gen understand_type understand_judgment ?(fail_anonymous=false) sigma env params =
let bl = intern_context fail_anonymous sigma env params in
- interp_context_gen (Default.understand_type sigma)
- (Default.understand_judgment sigma) env bl
+ interp_rawcontext_gen understand_type understand_judgment env bl
+
+let interp_context ?(fail_anonymous=false) sigma env params =
+ interp_context_gen (Default.understand_type sigma)
+ (Default.understand_judgment sigma) ~fail_anonymous sigma env params
let interp_context_evars ?(fail_anonymous=false) evdref env params =
- let bl = intern_context fail_anonymous !evdref env params in
- interp_context_gen (fun env t -> Default.understand_tcc_evars evdref env IsType t)
- (Default.understand_judgment_tcc evdref) env bl
+ interp_context_gen (fun env t -> Default.understand_tcc_evars evdref env IsType t)
+ (Default.understand_judgment_tcc evdref) ~fail_anonymous !evdref env params
+
diff --git a/interp/constrintern.mli b/interp/constrintern.mli
index 0e66dde83..5a62541db 100644
--- a/interp/constrintern.mli
+++ b/interp/constrintern.mli
@@ -158,6 +158,11 @@ val interp_binder_evars : evar_map ref -> env -> name -> constr_expr -> types
(* Interpret contexts: returns extended env and context *)
+val interp_context_gen : (env -> rawconstr -> types) ->
+ (env -> rawconstr -> unsafe_judgment) ->
+ ?fail_anonymous:bool ->
+ evar_map -> env -> local_binder list -> (env * rel_context) * manual_implicits
+
val interp_context : ?fail_anonymous:bool ->
evar_map -> env -> local_binder list -> (env * rel_context) * manual_implicits