diff options
| author | Gaëtan Gilbert | 2019-06-07 15:42:39 +0200 |
|---|---|---|
| committer | Gaëtan Gilbert | 2019-06-12 14:00:05 +0200 |
| commit | e49ecf90e565b9e49f114cadb6b24ab660cd02f3 (patch) | |
| tree | e93b6b46a5458d02b974c87a44410f39b34d9d76 /vernac | |
| parent | 0d4300771e4a6a26d948872262a79695a38c7e0d (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.ml | 5 |
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 |
