Elixir:lint用于确认每个函数都有类型sepcification

tld*_*ldr 7 lint elixir

是否有一个Elixir(像Javascript一样)的lint检查每个函数是否有类型规范?

bit*_*ker 5

有一个 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__. 不过应该还是有用的。最后要注意的一件事是,今天早上我发现将此标志与 一起使用存在问题mix compile,并且它目前仅对 mix.exs 发出警告。这正在修复中,甚至可能在您看到它时修复,但这是需要注意的。

  • 由于`+warn_missing_spec` 是一个编译器开关,它必须用`ERL_COMPILER_OPTIONS`(实际上是一个Erlang 标志)来指定。另一个标志用于运行时选项(基本上一个用于 erlc,另一个用于 erl)。 (3认同)