diff options
| author | coqbot-app[bot] | 2020-10-12 16:29:32 +0000 |
|---|---|---|
| committer | GitHub | 2020-10-12 16:29:32 +0000 |
| commit | 60e8fa2c4120a1f95e873c49929f4b879a814ddd (patch) | |
| tree | 064cf39dcc1d5df17a1ea618d9a7c5342f238696 | |
| parent | 917ac8b0dc8e0c9855cf3e9829d57e0ca1aaf13f (diff) | |
| parent | e58642678bcc40fba51dd012d51c8518b639d0ab (diff) | |
Merge PR #13163: [printing] make detyping resilient to "let x : _ := t in"
Reviewed-by: herbelin
Ack-by: SkySkimmer
| -rw-r--r-- | pretyping/detyping.ml | 7 |
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) |
