aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Dénès2019-04-08 18:08:30 +0200
committerMaxime Dénès2019-04-10 15:41:45 +0200
commit6ccd28e53ad7694883e8174489bf333351fa407a (patch)
treefb2332a7153c1114c7ce01303fcc46bc111a719e
parent5af486406e366bf23558311a7367e573c617e078 (diff)
Remove calls to Global.env in Heads
-rw-r--r--pretyping/heads.ml11
1 files changed, 5 insertions, 6 deletions
diff --git a/pretyping/heads.ml b/pretyping/heads.ml
index 7590ac301b..ef27ca9b4e 100644
--- a/pretyping/heads.ml
+++ b/pretyping/heads.ml
@@ -33,17 +33,16 @@ type head_approximation =
| NotImmediatelyComputableHead
(* FIXME: maybe change interface here *)
-let rec compute_head = function
+let rec compute_head env = function
| EvalConstRef cst ->
- let env = Global.env() in
let body = Environ.constant_opt_value_in env (cst,Univ.Instance.empty) in
(match body with
| None -> RigidHead (RigidParameter cst)
| Some c -> kind_of_head env c)
| EvalVarRef id ->
- (match Global.lookup_named id with
+ (match lookup_named id env with
| LocalDef (_,c,_) when not (Decls.variable_opacity id) ->
- kind_of_head (Global.env()) c
+ kind_of_head env c
| _ -> RigidHead RigidOther)
and kind_of_head env t =
@@ -51,14 +50,14 @@ and kind_of_head env t =
| Rel n when n > k -> NotImmediatelyComputableHead
| Rel n -> FlexibleHead (k,k+1-n,List.length l,b)
| Var id ->
- (try on_subterm k l b (compute_head (EvalVarRef id))
+ (try on_subterm k l b (compute_head env (EvalVarRef id))
with Not_found ->
(* a goal variable *)
match lookup_named id env with
| LocalDef (_,c,_) -> aux k l c b
| LocalAssum _ -> NotImmediatelyComputableHead)
| Const (cst,_) ->
- (try on_subterm k l b (compute_head (EvalConstRef cst))
+ (try on_subterm k l b (compute_head env (EvalConstRef cst))
with Not_found ->
CErrors.anomaly
Pp.(str "constant not found in kind_of_head: " ++