aboutsummaryrefslogtreecommitdiff
path: root/pretyping/evd.ml
diff options
context:
space:
mode:
authorHugo Herbelin2017-01-23 10:32:08 +0100
committerHugo Herbelin2017-01-23 10:44:09 +0100
commita6f687852c0c7509a06fdf16c0af29129b3566d5 (patch)
treeb1d45f2dc660fbcd619b6ee772e120b4e0cd7f55 /pretyping/evd.ml
parent65816f94ba427edf8999bf42633d0aad064e8ce4 (diff)
Fixing unification regression #5323.
Tracking conversion problems to reconsider was lost for evars subject to restriction (field last_mods was not updated and conversion problems not considered to be changed).
Diffstat (limited to 'pretyping/evd.ml')
-rw-r--r--pretyping/evd.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/pretyping/evd.ml b/pretyping/evd.ml
index 2f4b8fc12f..7b0ffd8b1d 100644
--- a/pretyping/evd.ml
+++ b/pretyping/evd.ml
@@ -898,13 +898,16 @@ let restrict evk evk' filter ?candidates evd =
{ evar_info with evar_filter = filter;
evar_candidates = candidates;
evar_extra = Store.empty } in
+ let last_mods = match evd.conv_pbs with
+ | [] -> evd.last_mods
+ | _ -> Evar.Set.add evk evd.last_mods in
let evar_names = EvNames.reassign_name_defined evk evk' evd.evar_names in
let ctxt = Filter.filter_list filter (evar_context evar_info) in
let id_inst = Array.map_of_list (fun (id,_,_) -> mkVar id) ctxt in
let body = mkEvar(evk',id_inst) in
let (defn_evars, undf_evars) = define_aux evd.defn_evars evd.undf_evars evk body in
{ evd with undf_evars = EvMap.add evk' evar_info' undf_evars;
- defn_evars; evar_names }
+ defn_evars; last_mods; evar_names }
let downcast evk ccl evd =
let evar_info = EvMap.find evk evd.undf_evars in