【发布时间】:2014-05-12 21:53:41
【问题描述】:
是否有用于 Elixir 的 lint(如 Javascript)检查每个函数是否具有类型规范?
【问题讨论】:
是否有用于 Elixir 的 lint(如 Javascript)检查每个函数是否具有类型规范?
【问题讨论】:
有一个 Erlang 编译器开关 +warn_missing_spec 可以执行此操作,但我目前无法让它与 Elixir 一起使用,我认为它在解析 ELIXIR_ERL_OPTS 环境变量时存在错误,即将+warn_missing_spec 转换为-warn_missing_spec,这不是一个有效的编译器选项。我打算在跟踪器上打开一个问题,但我想你可能想知道这确实存在。
编辑:正如 José 下面提到的,正确的标志是 ERL_COMPILER_OPTIONS。您可以通过执行以下操作在编译期间启用缺少规范警告:
ERL_COMPILER_OPTIONS="warn_missing_spec" mix compile
请记住,对于 __MODULE__ 之类的函数,您可能会收到来自 Elixir 本身的多余警告。不过应该还是有用的。最后要注意的一件事,今天早上我发现使用 mix compile 的这个标志有问题,而且它目前只对 mix.exs 发出警告。这正在修复中,甚至可能在您看到它时修复,但需要注意这一点。
【讨论】:
+warn_missing_spec 是编译器开关,所以必须用ERL_COMPILER_OPTIONS 指定(这实际上是一个Erlang 标志)。另一个标志用于运行时选项(基本上一个用于 erlc,另一个用于 erl)。