aboutsummaryrefslogtreecommitdiff
path: root/vernac
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2019-07-03 13:02:55 +0200
committerEmilio Jesus Gallego Arias2019-07-03 13:02:55 +0200
commit465ee008d15bb1fb0428aef513b8c3fd3456327a (patch)
treedfc870d1a5d7b6d50adbd25e805f9521143a10a0 /vernac
parent60a13c4f6f9ce211a4078634e66d5eae49035ccc (diff)
parente49ecf90e565b9e49f114cadb6b24ab660cd02f3 (diff)
Merge PR #10338: Fix #9455: avoid update_global_env when unchanged Global.universes()
Ack-by: SkySkimmer Reviewed-by: ejgallego Ack-by: gares
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 2d48af6a8e..793ba72fd3 100644
--- a/vernac/vernacentries.ml
+++ b/vernac/vernacentries.ml
@@ -2681,7 +2681,10 @@ and vernac_load ~verbosely 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