diff options
author | 2010-01-28 00:55:02 +0000 | |
---|---|---|
committer | 2010-01-28 00:55:02 +0000 | |
commit | b5c4711e721bfb9a168838d91d76fc20b7db16c9 (patch) | |
tree | 82440858b155bcf46bb1a51eedf8d7495a2293d2 /interp | |
parent | 8be1500b80b0deb0547aaab7c91e4681d981b480 (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.ml | 17 | ||||
-rw-r--r-- | interp/constrintern.mli | 5 |
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 |