aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
Diffstat (limited to 'interp')
-rw-r--r--interp/constrintern.ml26
1 files changed, 16 insertions, 10 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index ee245450b4..ce445c3f6d 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -1187,25 +1187,31 @@ let interp_open_constr sigma env c =
let interp_constr_judgment sigma env c =
Default.understand_judgment sigma env (intern_constr sigma env c)
-let interp_constr_evars_gen_impls ?(evdref=ref Evd.empty_evar_defs)
+let interp_constr_evars_gen_impls ?evdref
env ?(impls=([],[])) kind c =
- let c = intern_gen (kind=IsType) ~impls (Evd.evars_of !evdref) env c in
- let imps = implicits_of_rawterm c in
- Default.understand_tcc_evars evdref env kind c, imps
+ match evdref with
+ | None ->
+ let c = intern_gen (kind=IsType) ~impls Evd.empty env c in
+ let imps = implicits_of_rawterm c in
+ Default.understand_gen kind Evd.empty env c, imps
+ | Some evdref ->
+ let c = intern_gen (kind=IsType) ~impls (Evd.evars_of !evdref) env c in
+ let imps = implicits_of_rawterm c in
+ Default.understand_tcc_evars evdref env kind c, imps
let interp_constr_evars_gen evdref env ?(impls=([],[])) kind c =
let c = intern_gen (kind=IsType) ~impls (Evd.evars_of !evdref) env c in
Default.understand_tcc_evars evdref env kind c
-let interp_casted_constr_evars_impls ?(evdref=ref Evd.empty_evar_defs)
+let interp_casted_constr_evars_impls ?evdref
env ?(impls=([],[])) c typ =
- interp_constr_evars_gen_impls ~evdref env ~impls (OfType (Some typ)) c
+ interp_constr_evars_gen_impls ?evdref env ~impls (OfType (Some typ)) c
-let interp_type_evars_impls ?(evdref=ref Evd.empty_evar_defs) env ?(impls=([],[])) c =
- interp_constr_evars_gen_impls ~evdref env IsType ~impls c
+let interp_type_evars_impls ?evdref env ?(impls=([],[])) c =
+ interp_constr_evars_gen_impls ?evdref env IsType ~impls c
-let interp_constr_evars_impls ?(evdref=ref Evd.empty_evar_defs) env ?(impls=([],[])) c =
- interp_constr_evars_gen_impls ~evdref env (OfType None) ~impls c
+let interp_constr_evars_impls ?evdref env ?(impls=([],[])) c =
+ interp_constr_evars_gen_impls ?evdref env (OfType None) ~impls c
let interp_casted_constr_evars evdref env ?(impls=([],[])) c typ =
interp_constr_evars_gen evdref env ~impls (OfType (Some typ)) c