删除特定的 "warning: unused value declaration"
Removing specific occurrence of "warning: unused value declaration"
我正在尝试使用警告装饰器 ([@*ocaml.warning]
) 在本地删除有关特定未使用函数的警告,但我找不到正确的语法(如果有的话)。我正在使用 OCaml 4.02.1.
在下面的代码中,我有一个 dbg
函数,该函数未导出且从未使用过,但我想对此关闭警告 32 (unused value dbg
).
我想在代码的其他地方保持激活警告,以避免意外错误。
我尝试在函数周围放置各种装饰器,但仍然出现警告:
A.mli:
val f : unit -> unit
A.ml:
let f () = ()
[@@ocaml.warning "-32"]
let dbg () = () [@ocaml.warning "-32"]
[@@ocaml.warning "-32"]
let bla () = ()
ocamlc -w +a a.mli a.ml
结果:
File "a.ml", line 4, characters 4-7:
Warning 32: unused value dbg.
File "a.ml", line 7, characters 4-7:
Warning 32: unused value bla.
请注意,在 let dbg
之前添加 [@@@ocaml.warning "-32"]
有效(它删除了警告),但之后我必须添加 [@@@ocaml.warning "+32"]
才能重新启用它,这并不理想,因为它 启用 警告,即使它们最初不存在。
例如,如果我随后使用 ocamlc a.mli a.ml
进行编译,这将添加不需要的警告。
有没有办法在本地禁用警告 32?
我相信没有办法在 OCaml 4.02.3 中停止个别警告 32。
我在试图抑制一个特定顶层的警告(我的是 39)时遇到了同样的麻烦 let
。门票是http://caml.inria.fr/mantis/view.php?id=6677 and http://caml.inria.fr/mantis/view.php?id=6586.
到目前为止,您可以做的是使用 _
前缀声明此类变量:
let _dbg () = ()
因为以 _
开头的变量超出了警告 32 的范围。缺点是如果您的代码中实际使用了这样的 _
前缀值,则没有可用的工具来警告.
我正在尝试使用警告装饰器 ([@*ocaml.warning]
) 在本地删除有关特定未使用函数的警告,但我找不到正确的语法(如果有的话)。我正在使用 OCaml 4.02.1.
在下面的代码中,我有一个 dbg
函数,该函数未导出且从未使用过,但我想对此关闭警告 32 (unused value dbg
).
我想在代码的其他地方保持激活警告,以避免意外错误。
我尝试在函数周围放置各种装饰器,但仍然出现警告:
A.mli:
val f : unit -> unit
A.ml:
let f () = ()
[@@ocaml.warning "-32"]
let dbg () = () [@ocaml.warning "-32"]
[@@ocaml.warning "-32"]
let bla () = ()
ocamlc -w +a a.mli a.ml
结果:
File "a.ml", line 4, characters 4-7:
Warning 32: unused value dbg.
File "a.ml", line 7, characters 4-7:
Warning 32: unused value bla.
请注意,在 let dbg
之前添加 [@@@ocaml.warning "-32"]
有效(它删除了警告),但之后我必须添加 [@@@ocaml.warning "+32"]
才能重新启用它,这并不理想,因为它 启用 警告,即使它们最初不存在。
例如,如果我随后使用 ocamlc a.mli a.ml
进行编译,这将添加不需要的警告。
有没有办法在本地禁用警告 32?
我相信没有办法在 OCaml 4.02.3 中停止个别警告 32。
我在试图抑制一个特定顶层的警告(我的是 39)时遇到了同样的麻烦 let
。门票是http://caml.inria.fr/mantis/view.php?id=6677 and http://caml.inria.fr/mantis/view.php?id=6586.
到目前为止,您可以做的是使用 _
前缀声明此类变量:
let _dbg () = ()
因为以 _
开头的变量超出了警告 32 的范围。缺点是如果您的代码中实际使用了这样的 _
前缀值,则没有可用的工具来警告.