diff options
| author | pboutill | 2010-05-20 12:57:40 +0000 |
|---|---|---|
| committer | pboutill | 2010-05-20 12:57:40 +0000 |
| commit | ea188f154f86960008df67fa0266a3aa648ff1e7 (patch) | |
| tree | dcc392b3078d369f2994a6fc81d209526005d45a /pretyping/evarconv.ml | |
| parent | e7fc963667a6cfbf9f8516f49ea1dcb9d6779f2d (diff) | |
Fix bug 2307
Evars of source "ImpossibleCase" that remain undefined at the end of
case analysis are now defined to ID (forall A : Type, A -> A).
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13023 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/evarconv.ml')
| -rw-r--r-- | pretyping/evarconv.ml | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml index ad4e700897..486fd05b3d 100644 --- a/pretyping/evarconv.ml +++ b/pretyping/evarconv.ml @@ -548,11 +548,15 @@ let apply_conversion_problem_heuristic env evd pbty t1 t2 = let consider_remaining_unif_problems env evd = let (evd,pbs) = extract_all_conv_pbs evd in - List.fold_left + let heuristic_solved_evd = List.fold_left (fun evd (pbty,env,t1,t2) -> let evd', b = apply_conversion_problem_heuristic env evd pbty t1 t2 in if b then evd' else Pretype_errors.error_cannot_unify env evd (t1, t2)) - evd pbs + evd pbs in + Evd.fold_undefined (fun ev ev_info evd' -> match ev_info.evar_source with + |_,ImpossibleCase -> + Evd.define ev (j_type (coq_unit_judge ())) evd' + |_ -> evd') heuristic_solved_evd heuristic_solved_evd (* Main entry points *) |
