首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除“警告:未使用的值声明”的特定出现

删除“警告:未使用的值声明”的特定出现
EN

Stack Overflow用户
提问于 2015-11-05 09:54:01
回答 1查看 2.1K关注 0票数 5

我试图使用警告装饰器([@*ocaml.warning])在本地删除关于特定未使用函数的警告,但是我找不到正确的语法(如果有语法的话)。我使用的是OCaml 4.02.1。

在下面的代码中,我有一个dbg函数,它不是导出的,也从未使用过,但是我想对它保持沉默,警告32 (unused value dbg)。

我希望在代码的其他地方保持激活警告,以避免意外错误。

我试着在函数周围设置各种装饰器,但警告仍然出现:

A.mli:

代码语言:javascript
运行
复制
val f : unit -> unit

A.ml:

代码语言:javascript
运行
复制
let f () = ()

[@@ocaml.warning "-32"]
let dbg () = () [@ocaml.warning "-32"]
[@@ocaml.warning "-32"]

let bla () = ()

ocamlc -w +a a.mli a.ml的结果是:

代码语言:javascript
运行
复制
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.

请注意,在[@@@ocaml.warning "-32"]之前添加let dbg是有效的(它移除警告),但是之后我必须添加[@@@ocaml.warning "+32"]来重新启用它,这并不理想,因为它启用了警告,即使它们最初没有出现。

例如,如果我然后使用ocamlc a.mli a.ml编译,这将添加一个不必要的警告。

有办法在本地禁用警告32吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 10:37:12

我相信在OCaml 4.02.3中没有办法阻止个人警告32。

我也有同样的困难,试图压制一个特定的let的警告(我的警告是39)。票是http://caml.inria.fr/mantis/view.php?id=6677http://caml.inria.fr/mantis/view.php?id=6586

到目前为止,您可以使用_前缀声明这些变量:

代码语言:javascript
运行
复制
let _dbg () = ()

由于变量以_开头,因此超出了警告32的范围。缺点是,如果代码中实际使用了此类_前缀值,则没有可用的工具来警告。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33541380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档