aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoqbot-app[bot]2020-10-12 16:29:32 +0000
committerGitHub2020-10-12 16:29:32 +0000
commit60e8fa2c4120a1f95e873c49929f4b879a814ddd (patch)
tree064cf39dcc1d5df17a1ea618d9a7c5342f238696
parent917ac8b0dc8e0c9855cf3e9829d57e0ca1aaf13f (diff)
parente58642678bcc40fba51dd012d51c8518b639d0ab (diff)
Merge PR #13163: [printing] make detyping resilient to "let x : _ := t in"
Reviewed-by: herbelin Ack-by: SkySkimmer
-rw-r--r--pretyping/detyping.ml7
1 files changed, 6 insertions, 1 deletions
diff --git a/pretyping/detyping.ml b/pretyping/detyping.ml
index 7fcb0795bd..91c155fcce 100644
--- a/pretyping/detyping.ml
+++ b/pretyping/detyping.ml
@@ -883,7 +883,12 @@ and detype_binder d flags bk avoid env sigma decl c =
| BLetIn ->
let c = detype d { flags with flg_isgoal = false } avoid env sigma (Option.get body) in
(* Heuristic: we display the type if in Prop *)
- let s = try Retyping.get_sort_family_of (snd env) sigma ty with _ when !Flags.in_debugger || !Flags.in_toplevel -> InType (* Can fail because of sigma missing in debugger *) in
+ let s =
+ (* It can fail if ty is an evar, or if run inside ocamldebug or the
+ OCaml toplevel since their printers don't have access to the proper sigma/env *)
+ try Retyping.get_sort_family_of (snd env) sigma ty
+ with Retyping.RetypeError _ -> InType
+ in
let t = if s != InProp && not !Flags.raw_print then None else Some (detype d { flags with flg_isgoal = false } avoid env sigma ty) in
GLetIn (na', c, t, r)