首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用ppx时启用有关未使用/无效属性的警告

在使用ppx时启用有关未使用/无效属性的警告
EN

Stack Overflow用户
提问于 2017-01-06 18:14:01
回答 1查看 134关注 0票数 1

我正在尝试使用一些ppx扩展,我刚刚发现OCaml不会对未使用/无效的属性发出警告。例如,如果我写的东西是:

代码语言:javascript
复制
let[@blaa] () = ()

即使使用-w +A,OCaml也不会说@blaa从未被使用过,而且可能被错误地输入了。

当尝试使用ppx重写器和错误输入给定的属性(例如@blaa而不是@bla)时,这尤其令人沮丧,而且无法找到它。或者当一个给定的ppx重写器根本没有被启用,并且所有的属性都被默默地忽略了。

是否有办法为这种情况启用警告?

注意:我尝试了4.03.0和4.04.0,在这两种情况下都没有收到任何警告。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-06 18:55:48

一般情况下,这是不可能的,因为属性只是添加到语法树元素中,然后对树进行多次处理,处理器可能会查找不同的属性,而忽略其他属性。处理器不需要报告它们已经处理了一个属性,或者没有找到预期的属性。属性语义非常通用,默认情况下所有属性都是不必要的。

但是,您可以在它们之上构建自己的语义。例如,来自deriving 司机的JaneStreet将施加一个限制,即预处理器应该存在:

代码语言:javascript
复制
# type t = Hello [@@deriving some];;
Cannot locate deriver some
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41511783

复制
相关文章

相似问题

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