diff options
Diffstat (limited to 'proofs/evar_refiner.ml')
-rw-r--r-- | proofs/evar_refiner.ml | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/proofs/evar_refiner.ml b/proofs/evar_refiner.ml index 79f01ba1..132fa2b9 100644 --- a/proofs/evar_refiner.ml +++ b/proofs/evar_refiner.ml @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(* $Id: evar_refiner.ml 9154 2006-09-20 17:18:18Z corbinea $ *) +(* $Id: evar_refiner.ml 9583 2007-02-01 19:35:03Z notin $ *) open Util open Names @@ -28,9 +28,12 @@ let w_refine ev rawc evd = let e_info = Evd.find (evars_of evd) ev in let env = Evd.evar_env e_info in let sigma,typed_c = - Pretyping.Default.understand_tcc (evars_of evd) env - ~expected_type:e_info.evar_concl rawc in - evar_define ev typed_c (evars_reset_evd sigma evd) + try Pretyping.Default.understand_tcc (evars_of evd) env + ~expected_type:e_info.evar_concl rawc + with _ -> error ("The term is not well-typed in the environment of " ^ + string_of_existential ev) + in + evar_define ev typed_c (evars_reset_evd sigma evd) (* vernac command Existential *) |