From 9d0e4b2ab78b89e39c63e8010ffd03745b309b5a Mon Sep 17 00:00:00 2001 From: Pierre-Marie Pédrot Date: Tue, 24 Dec 2019 14:19:56 +0100 Subject: Remove uses of Global in Evd API. Namely, Evd.evar_env and Evd.evar_filtered_env now take an additional environment instead of querying the imperative global one. We percolate this change as higher up as possible. --- proofs/evar_refiner.ml | 4 ++-- proofs/evar_refiner.mli | 2 +- proofs/goal.ml | 3 ++- proofs/proof.ml | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) (limited to 'proofs') diff --git a/proofs/evar_refiner.ml b/proofs/evar_refiner.ml index 59918ab2f9..8297b11585 100644 --- a/proofs/evar_refiner.ml +++ b/proofs/evar_refiner.ml @@ -44,10 +44,10 @@ let define_and_solve_constraints evk c env evd = | Success evd -> evd | UnifFailure _ -> user_err Pp.(str "Instance does not satisfy the constraints.") -let w_refine (evk,evi) (ltac_var,rawc) sigma = +let w_refine (evk,evi) (ltac_var,rawc) env sigma = if Evd.is_defined sigma evk then user_err Pp.(str "Instantiate called on already-defined evar"); - let env = Evd.evar_filtered_env evi in + let env = Evd.evar_filtered_env env evi in let sigma',typed_c = let flags = { Pretyping.use_typeclasses = true; diff --git a/proofs/evar_refiner.mli b/proofs/evar_refiner.mli index 8f3ac7ed25..a618bf1c94 100644 --- a/proofs/evar_refiner.mli +++ b/proofs/evar_refiner.mli @@ -17,4 +17,4 @@ open Ltac_pretype type glob_constr_ltac_closure = ltac_var_map * glob_constr val w_refine : Evar.t * evar_info -> - glob_constr_ltac_closure -> evar_map -> evar_map + glob_constr_ltac_closure -> Environ.env -> evar_map -> evar_map diff --git a/proofs/goal.ml b/proofs/goal.ml index 426fba7f63..4759c0860f 100644 --- a/proofs/goal.ml +++ b/proofs/goal.ml @@ -31,8 +31,9 @@ module V82 = struct (* Old style env primitive *) let env evars gl = + let env = Global.env () in let evi = Evd.find evars gl in - Evd.evar_filtered_env evi + Evd.evar_filtered_env env evi (* Old style hyps primitive *) let hyps evars gl = diff --git a/proofs/proof.ml b/proofs/proof.ml index e9f93d0c8f..5ab4409f8b 100644 --- a/proofs/proof.ml +++ b/proofs/proof.ml @@ -434,10 +434,10 @@ module V82 = struct else CList.nth evl (n-1) in - let env = Evd.evar_filtered_env evi in + let env = Evd.evar_filtered_env env evi in let rawc = intern env sigma in let ltac_vars = Glob_ops.empty_lvar in - let sigma = Evar_refiner.w_refine (evk, evi) (ltac_vars, rawc) sigma in + let sigma = Evar_refiner.w_refine (evk, evi) (ltac_vars, rawc) env sigma in Proofview.Unsafe.tclEVARS sigma end in let { name; poly } = pr in -- cgit v1.2.3