aboutsummaryrefslogtreecommitdiff
path: root/engine/namegen.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2016-08-17 16:17:17 +0200
committerPierre-Marie Pédrot2016-08-17 16:17:17 +0200
commit13fb26d615cdb03a4c4841c20b108deab2de60b3 (patch)
tree55f86d47695ee2071d1f886ce70ad7eec6a1e866 /engine/namegen.ml
parent3fd0b8ad700bd77aabdd3f3f33b13ba5e93d8bc8 (diff)
parentbc7ffd368789cb82bb8fc8b642b3de870b92c897 (diff)
Merge branch 'v8.6'
Diffstat (limited to 'engine/namegen.ml')
-rw-r--r--engine/namegen.ml10
1 files changed, 9 insertions, 1 deletions
diff --git a/engine/namegen.ml b/engine/namegen.ml
index 129cb3868e..638adea5d3 100644
--- a/engine/namegen.ml
+++ b/engine/namegen.ml
@@ -191,18 +191,26 @@ let visible_ids (nenv, c) =
let (gseen, vseen, ids) = !accu in
let g = global_of_constr c in
if not (Refset_env.mem g gseen) then
+ begin
+ try
let gseen = Refset_env.add g gseen in
let short = shortest_qualid_of_global Id.Set.empty g in
let dir, id = repr_qualid short in
let ids = if DirPath.is_empty dir then Id.Set.add id ids else ids in
accu := (gseen, vseen, ids)
+ with Not_found when !Flags.in_debugger || !Flags.in_toplevel -> ()
+ end
| Rel p ->
let (gseen, vseen, ids) = !accu in
if p > n && not (Int.Set.mem p vseen) then
let vseen = Int.Set.add p vseen in
let name =
try Some (lookup_name_of_rel (p - n) nenv)
- with Not_found -> None (* Unbound indice : may happen in debug *)
+ with Not_found ->
+ (* Unbound index: may happen in debug and actually also
+ while computing temporary implicit arguments of an
+ inductive type *)
+ None
in
let ids = match name with
| Some (Name id) -> Id.Set.add id ids