未使用属性 'explicit_arity'

Attribute 'explicit_arity' was not used

我正在尝试使用 Jane Street 的核心标准库和 Reason 语言前端进行编程。

所以我使用 corebuild 脚本并通过将 ocamlbuild 替换为 rebuild 将副本保存为 recorebuild。但是我在处理一些简单的代码时遇到了问题。

这是失败的最小示例:

type t = Foo int | Bar;

let foobar f => switch f {
| Foo x => x
| Bar => 0
};

如果您尝试使用以下选项编译它,corebuild 添加的众多选项之一:

rebuild -tag "ppx(ppx-jane -as-ppx)" test.byte

然后你得到这个错误:

File "", line 0:
Attribute `explicit_arity' was not used
Command exited with code 2.

这是什么意思?

explicit_arity 是由 refmt 发出的属性,用于解决 OCaml 语法中关于变体的歧义。不幸的是它与 Jane St ppx 冲突,但如果您从 corebuild 脚本中删除 -tag "ppx(ppx-jane -as-ppx)" 它应该可以工作。

(注意:此信息来自 Reason Discord,我个人对此没有任何经验)