aboutsummaryrefslogtreecommitdiff
path: root/pretyping/pretyping.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2019-02-17 14:27:26 +0100
committerPierre-Marie Pédrot2019-02-17 14:27:26 +0100
commita49077ef67b8e70696ecacc311fc3070d1b7b461 (patch)
tree1d9adcfba5d77543a91140dbacbe975da00c213e /pretyping/pretyping.ml
parent9014e6544cb251f140636f774e95df4037d8d8f6 (diff)
parentac7169182a970c33be2e33abd43be5bf19542e2c (diff)
Merge PR #9528: Fix #9527: unknown evar in nonterminating [fix] error.
Reviewed-by: gares Reviewed-by: ppedrot
Diffstat (limited to 'pretyping/pretyping.ml')
-rw-r--r--pretyping/pretyping.ml13
1 files changed, 8 insertions, 5 deletions
diff --git a/pretyping/pretyping.ml b/pretyping/pretyping.ml
index 46e463512d..a92b245b91 100644
--- a/pretyping/pretyping.ml
+++ b/pretyping/pretyping.ml
@@ -103,6 +103,12 @@ let search_guard ?loc env possible_indexes fixdefs =
user_err ?loc ~hdr:"search_guard" (Pp.str errmsg)
with Found indexes -> indexes)
+let esearch_guard ?loc env sigma indexes fix =
+ let fix = nf_fix sigma fix in
+ try search_guard ?loc env indexes fix
+ with TypeError (env,err) ->
+ raise (PretypeError (env,sigma,TypingError (map_ptype_error of_constr err)))
+
(* To force universe name declaration before use *)
let is_strict_universe_declarations =
@@ -597,11 +603,8 @@ let rec pretype ~program_mode k0 resolve_tc (tycon : type_constraint) (env : Glo
vn)
in
let fixdecls = (names,ftys,fdefs) in
- let indexes =
- search_guard
- ?loc !!env possible_indexes (nf_fix sigma fixdecls)
- in
- make_judge (mkFix ((indexes,i),fixdecls)) ftys.(i)
+ let indexes = esearch_guard ?loc !!env sigma possible_indexes fixdecls in
+ make_judge (mkFix ((indexes,i),fixdecls)) ftys.(i)
| GCoFix i ->
let fixdecls = (names,ftys,fdefs) in
let cofix = (i, fixdecls) in