aboutsummaryrefslogtreecommitdiffhomepage
path: root/dev/top_printers.ml
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-11-08 18:00:00 +0100
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-11-08 18:04:13 +0100
commitd7da4e1dfc58942ceb91fb24afe4751d6fb50cc9 (patch)
tree700b0b9c3dd7b29fe88a843e2f55fd9ffc296932 /dev/top_printers.ml
parent0d81e80a09db7d352408be4dfc5ba263f6ed98ef (diff)
Adding a debugging printer for ident maps whose codomain type is unknown.
Actually, ocaml is apparently doing well. If there is a printer for 'a Id.Map.t and another for say Id.t Id.Map.id, it uses the most defined existing ones, so, it is apparently not a problem to have overlapping printer.
Diffstat (limited to 'dev/top_printers.ml')
-rw-r--r--dev/top_printers.ml7
1 files changed, 6 insertions, 1 deletions
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 35956477d..94d825079 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -85,9 +85,14 @@ let prset' pr l = str "[" ++ hov 0 (prlist_with_sep pr_comma pr l) ++ str "]"
let pridmap pr l =
let pr (id,b) = Id.print id ++ str "=>" ++ pr id b in
prset' pr (Id.Map.fold (fun a b l -> (a,b)::l) l [])
-
let ppidmap pr l = pp (pridmap pr l)
+let pridmapgen l =
+ let dom = Id.Set.elements (Id.Map.domain l) in
+ if dom = [] then str "[]" else
+ str "[domain= " ++ hov 0 (prlist_with_sep spc Id.print dom) ++ str "]"
+let ppidmapgen l = pp (pridmapgen l)
+
let ppevarsubst = ppidmap (fun id0 -> prset (fun (c,copt,id) ->
hov 0
(Termops.print_constr (EConstr.of_constr c) ++