diff options
author | Florian Angeletti <florian.angeletti@inria.fr> | 2021-05-18 14:40:06 +0200 |
---|---|---|
committer | octachron <octa@polychoron.fr> | 2021-05-19 13:10:17 +0200 |
commit | 22e3e03f82c1556d30f19e7608fcd8c6f348bcec (patch) | |
tree | f17818bad33592e9471af1dc618e5e4628d15d8f /typing/printtyp.ml | |
parent | 5fbd6e15c8ccffeb533389e4695223fbc9370b4b (diff) | |
download | ocaml-22e3e03f82c1556d30f19e7608fcd8c6f348bcec.tar.gz |
toplevel: detect recursive definitions in #show
Diffstat (limited to 'typing/printtyp.ml')
-rw-r--r-- | typing/printtyp.ml | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/typing/printtyp.ml b/typing/printtyp.ml index 01250fc349..8c189832d8 100644 --- a/typing/printtyp.ml +++ b/typing/printtyp.ml @@ -1683,12 +1683,13 @@ let ident_sigitem = function | Types.Sig_typext (ident,_,_,_) -> {hide=false; ident } let hide ids env = - let hide_id id env = - if id.hide then - Env.add_type ~check:false (Ident.rename id.ident) dummy env - else env - in - List.fold_right hide_id ids env + let hide_id id env = + (* Global idents cannot be renamed *) + if id.hide && not (Ident.global id.ident) then + Env.add_type ~check:false (Ident.rename id.ident) dummy env + else env + in + List.fold_right hide_id ids env let with_hidden_items ids f = let with_hidden_in_printing_env ids f = |