diff options
Diffstat (limited to 'pretyping/reductionops.ml')
| -rw-r--r-- | pretyping/reductionops.ml | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/pretyping/reductionops.ml b/pretyping/reductionops.ml index 12594dd6d7..99c57d084c 100644 --- a/pretyping/reductionops.ml +++ b/pretyping/reductionops.ml @@ -518,9 +518,11 @@ let whd_eta c = app_stack (local_whd_state_gen eta (c,empty_stack)) (* Replacing defined evars for error messages *) let rec whd_evar sigma c = match kind_of_term c with - | Evar (ev,args) - when Evd.mem sigma ev & Evd.is_defined sigma ev -> - whd_evar sigma (Evd.existential_value sigma (ev,args)) + | Evar ev -> + let d = + try Some (Evd.existential_value sigma ev) + with NotInstantiatedEvar | Not_found -> None in + (match d with Some c -> whd_evar sigma c | None -> c) | Sort s when is_sort_variable sigma s -> whd_sort_variable sigma c | _ -> collapse_appl c |
