Skip to content

Commit 75982c1

Browse files
committed
Capture exception info
1 parent d5891eb commit 75982c1

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

proofs/clenv.ml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

444445
let 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

453455
let clenv_unique_resolver ?(flags=default_unify_flags ()) clenv concl =
454456
let metas = meta_handler clenv.metam in

0 commit comments

Comments
 (0)