1
我有2个默认参数功能的元数的仙丹使透析器的默认参数因此抱怨
defp foo(bar, baz, qux \\ "", garply \\ nil)
我有两个用途的函数,一个只提供前两个参数,其他全部4.透析器正在抱怨Function foo/3 will never be called
。我认为这是因为它是私人的,两个默认值允许unroll_nodes/2
,unroll_nodes/3
和unroll_nodes/4
。我可以表面上放弃默认设置,并将它们提供给当前的foo/2
调用,但仅仅为了安抚透析器似乎很愚蠢。有没有在spec中指定这个的方法?
这是否意味着没有更好的方式来指定typespec?这确实是一个错误的警告?或者这是一种代码? – kolosy
我想这是Elixir总是生成所有中间头的组合。另一种方法是使用单独的函数调用“手动”定义默认值。那么你只有没有/ 3版本的/ 2和/ 4版本。 – michalmuskala