Как скрыть предупреждение 30, используя [@ ocaml.warning "-30"] - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть две записи, зависящие друг от друга, и у них обеих есть поле с одинаковым именем. Как использовать атрибут ocaml.warning, чтобы скрыть это предупреждение? Я хотел бы избежать чего-то вроде [@@@ocaml.warning "-30"] my types here [@@@ocaml.warning "+30"].

# type a = {a : int;} and b = { a:int;};;
Characters 30-36:
Warning 30: the label a is defined in both types a and b.
type a = { a : int; }
and b = { a : int; }

1 Ответ

0 голосов
/ 13 сентября 2018

Это может быть не лучше, чем конструкция скобок, которую вы хотите избежать, но она работает для меня:

# module M = struct
    type a = {a: int} and b = {a: int}
  end [@warning "-30"];;
module M : sig type a = { a : int; } and b = { a : int; } end
# type a = M.a and b = M.b;;
type a = M.a
and b = M.b
...