diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2017-10-03 11:45:31 +0200 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2017-10-03 11:45:31 +0200 |
commit | afe519db64b4864b5a901ab96a1e4297e9316b14 (patch) | |
tree | 9fe22a04fcfd049081dedb6f9262a3a321176d03 /printing | |
parent | e33cd69ab6fcb38478a6c0e00628a5de16181906 (diff) | |
parent | b772c323f62b322c9b0a4ab90c7de8b1e2066bae (diff) |
Merge PR #1040: Efficient fresh name generation
Diffstat (limited to 'printing')
-rw-r--r-- | printing/printmod.ml | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/printing/printmod.ml b/printing/printmod.ml index 219eafda4..755e905a7 100644 --- a/printing/printmod.ml +++ b/printing/printmod.ml @@ -64,9 +64,10 @@ let get_new_id locals id = if not (Nametab.exists_module dir) then id else - get_id (id::l) (Namegen.next_ident_away id l) + get_id (Id.Set.add id l) (Namegen.next_ident_away id l) in - get_id (List.map snd locals) id + let avoid = List.fold_left (fun accu (_, id) -> Id.Set.add id accu) Id.Set.empty locals in + get_id avoid id (** Inductive declarations *) |