aboutsummaryrefslogtreecommitdiff
path: root/vernac
diff options
context:
space:
mode:
authorGaëtan Gilbert2019-06-07 15:42:39 +0200
committerGaëtan Gilbert2019-06-12 14:00:05 +0200
commite49ecf90e565b9e49f114cadb6b24ab660cd02f3 (patch)
treee93b6b46a5458d02b974c87a44410f39b34d9d76 /vernac
parent0d4300771e4a6a26d948872262a79695a38c7e0d (diff)
Fix #9455: avoid update_global_env when unchanged Global.universes()
This also makes vernacentries correct wrt update_global_env.
Diffstat (limited to 'vernac')
-rw-r--r--vernac/vernacentries.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/vernac/vernacentries.ml b/vernac/vernacentries.ml
index d206165e88..d52fe480ef 100644
--- a/vernac/vernacentries.ml
+++ b/vernac/vernacentries.ml
@@ -2755,7 +2755,10 @@ and vernac_load ~verbosely ~st fname =
and interp_control ?proof ~st v = match v with
| { v=VernacExpr (atts, cmd) } ->
- interp_expr ?proof ~atts ~st cmd
+ let before_univs = Global.universes () in
+ let pstack = interp_expr ?proof ~atts ~st cmd in
+ if before_univs == Global.universes () then pstack
+ else Option.map (Lemmas.Stack.map_top_pstate ~f:Proof_global.update_global_env) pstack
| { v=VernacFail v } ->
with_fail ~st (fun () -> interp_control ?proof ~st v);
st.Vernacstate.lemmas