aboutsummaryrefslogtreecommitdiff
path: root/pretyping/detyping.ml
diff options
context:
space:
mode:
authorMaxime Dénès2018-12-12 10:13:58 +0100
committerMaxime Dénès2018-12-12 10:13:58 +0100
commit84a950c8e1fa06d0dd764e9a426edbd987a7989e (patch)
tree824e99b1dbb0cac36e16b0b1ac871bc3492eb2f1 /pretyping/detyping.ml
parentd87c4c472478fbcb30de6efabc68473ee36849a1 (diff)
parent4db7296d629f08c5a71905d8f6d29e2c4e4c0517 (diff)
Merge PR #8974: Fix mod_subst wrt universe polymorphism
Diffstat (limited to 'pretyping/detyping.ml')
-rw-r--r--pretyping/detyping.ml11
1 files changed, 7 insertions, 4 deletions
diff --git a/pretyping/detyping.ml b/pretyping/detyping.ml
index 09b3cf167f..517834f014 100644
--- a/pretyping/detyping.ml
+++ b/pretyping/detyping.ml
@@ -948,10 +948,13 @@ let (f_subst_genarg, subst_genarg_hook) = Hook.make ()
let rec subst_glob_constr subst = DAst.map (function
| GRef (ref,u) as raw ->
let ref',t = subst_global subst ref in
- if ref' == ref then raw else
- let env = Global.env () in
- let evd = Evd.from_env env in
- DAst.get (detype Now false Id.Set.empty env evd (EConstr.of_constr t))
+ if ref' == ref then raw else (match t with
+ | None -> GRef (ref', u)
+ | Some t ->
+ let env = Global.env () in
+ let evd = Evd.from_env env in
+ let t = t.Univ.univ_abstracted_value in (* XXX This seems dangerous *)
+ DAst.get (detype Now false Id.Set.empty env evd (EConstr.of_constr t)))
| GSort _
| GVar _