diff options
author | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2018-06-05 12:11:22 +0200 |
---|---|---|
committer | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2018-06-05 12:11:22 +0200 |
commit | f5a86aa6d18f569ac305559efd559ecad8f0b470 (patch) | |
tree | cc6e4c5d852ee84dc99cf9f9024c76b2fda1acd9 /pretyping/evarconv.ml | |
parent | af65c79cc976f3f96a768f3d0897febb24e1485a (diff) | |
parent | d4dac391db9e3be7a45d26e2da9007997b79587d (diff) |
Merge PR #7099: Stronger invariants in unification signature.
Diffstat (limited to 'pretyping/evarconv.ml')
-rw-r--r-- | pretyping/evarconv.ml | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml index 062136ff5..6d08f66c1 100644 --- a/pretyping/evarconv.ml +++ b/pretyping/evarconv.ml @@ -366,13 +366,10 @@ let rec evar_conv_x ts env evd pbty term1 term2 = let ground_test = if is_ground_term evd term1 && is_ground_term evd term2 then ( let e = - try - let evd, b = infer_conv ~catch_incon:false ~pb:pbty ~ts:(fst ts) - env evd term1 term2 - in - if b then Success evd - else UnifFailure (evd, ConversionFailed (env,term1,term2)) - with Univ.UniverseInconsistency e -> UnifFailure (evd, UnifUnivInconsistency e) + match infer_conv ~catch_incon:false ~pb:pbty ~ts:(fst ts) env evd term1 term2 with + | Some evd -> Success evd + | None -> UnifFailure (evd, ConversionFailed (env,term1,term2)) + | exception Univ.UniverseInconsistency e -> UnifFailure (evd, UnifUnivInconsistency e) in match e with | UnifFailure (evd, e) when not (is_ground_env evd env) -> None |