@@ -436,19 +436,21 @@ let clenv_unify ?(flags=default_unify_flags ()) cv_pb t1 t2 clenv =
436436 let metas = clenv.metam in
437437 let metas, sigma = w_unify ~metas ~flags clenv.env clenv.evd cv_pb t1 t2 in
438438 update_clenv_evd clenv sigma metas
439- with Pretype_errors. (PretypeError (env , sigma , CannotUnify (t1 , t2 , reason ))) ->
439+ with Pretype_errors. (PretypeError (env , sigma , CannotUnify (t1 , t2 , reason ))) as exn ->
440+ let _, info = Exninfo. capture exn in
440441 let sigma, f = replace_clenv_metas env sigma clenv in
441- raise (Pretype_errors. (PretypeError (env, sigma, CannotUnify (f t1, f t2, reason))))
442+ Exninfo. iraise (Pretype_errors. (PretypeError (env, sigma, CannotUnify (f t1, f t2, reason))), info )
442443
443444
444445let clenv_unify_meta_types ?(flags =default_unify_flags () ) clenv =
445446 try
446447 let metas = clenv.metam in
447448 let metas, sigma = w_unify_meta_types ~metas ~flags: flags clenv.env clenv.evd in
448449 update_clenv_evd clenv sigma metas
449- with Pretype_errors. (PretypeError (env , sigma , CannotUnify (t1 , t2 , reason ))) ->
450+ with Pretype_errors. (PretypeError (env , sigma , CannotUnify (t1 , t2 , reason ))) as exn ->
451+ let _, info = Exninfo. capture exn in
450452 let sigma, f = replace_clenv_metas env sigma clenv in
451- raise (Pretype_errors. (PretypeError (env, sigma, CannotUnify (f t1, f t2, reason))))
453+ Exninfo. iraise (Pretype_errors. (PretypeError (env, sigma, CannotUnify (f t1, f t2, reason))), info )
452454
453455let clenv_unique_resolver ?(flags =default_unify_flags () ) clenv concl =
454456 let metas = meta_handler clenv.metam in
0 commit comments