diff options
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/constrextern.ml | 10 | ||||
| -rw-r--r-- | interp/constrextern.mli | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml index 97e9855de8..5c7deb8852 100644 --- a/interp/constrextern.ml +++ b/interp/constrextern.ml @@ -625,12 +625,18 @@ let extern_cases_pattern vars p = let loc = dummy_loc (* for constr and pattern, locations are lost *) -let extern_constr at_top env t = +let extern_constr_gen at_top scopt env t = let vars = vars_of_env env in let avoid = if at_top then ids_of_context env else [] in - extern (not at_top) (None,Symbols.current_scopes()) vars + extern (not at_top) (scopt,Symbols.current_scopes()) vars (Detyping.detype env avoid (names_of_rel_context env) t) +let extern_constr_in_scope at_top scope env t = + extern_constr_gen at_top (Some scope) env t + +let extern_constr at_top env t = + extern_constr_gen at_top None env t + (******************************************************************) (* Main translation function from pattern -> constr_expr *) diff --git a/interp/constrextern.mli b/interp/constrextern.mli index 008957e1bb..c5595f5a9e 100644 --- a/interp/constrextern.mli +++ b/interp/constrextern.mli @@ -39,6 +39,7 @@ val extern_pattern : env -> names_context -> constr_pattern -> constr_expr level of quantification clashing with the variables in [env] are renamed *) val extern_constr : bool -> env -> constr -> constr_expr +val extern_constr_in_scope : bool -> scope_name -> env -> constr -> constr_expr val extern_reference : loc -> Idset.t -> global_reference -> reference (* For debugging *) |
