diff options
| author | Hugo Herbelin | 2017-01-23 10:32:08 +0100 |
|---|---|---|
| committer | Hugo Herbelin | 2017-01-23 10:44:09 +0100 |
| commit | a6f687852c0c7509a06fdf16c0af29129b3566d5 (patch) | |
| tree | b1d45f2dc660fbcd619b6ee772e120b4e0cd7f55 /pretyping/evd.ml | |
| parent | 65816f94ba427edf8999bf42633d0aad064e8ce4 (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.ml | 5 |
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 |
