函数arity作为elixir默认参数的结果,使得透析器抱怨

时间:2017-07-13 16:13:17

标签: elixir dialyzer

我有一个带有2个默认参数的函数

defp foo(bar, baz, qux \\ "", garply \\ nil)

我有两个用法,一个只提供前两个参数,另一个全部4.Dialyzer正在抱怨Function foo/3 will never be called。我认为这是因为它是私有的,并且两个默认值允许unroll_nodes/2unroll_nodes/3unroll_nodes/4。我可以表面上删除默认值并在当前foo/2调用中提供它们,但仅仅安抚透析器似乎很愚蠢。有没有办法在规范中指定这个?

1 个答案:

答案 0 :(得分:2)

您可以使用@dialyzer属性

来取消透析器警告
@dialyzer {:no_unused, [foo: 3]}

列出了所有可能的选项here