【发布时间】:2015-11-03 18:30:57
【问题描述】:
假设我有一个函数foo/1,其规范是-spec foo(atom()) -> #r{}.,其中#r{} 是定义为-record(r, {a :: 1..789}). 的记录,但是,当我对它运行透析器时,我的代码中有foo(a) -> 800. ,它没有警告我,(800 不是函数foo/1 的“有效”返回值),我可以让透析器警告我吗?
编辑
Dialyzer 保留将此范围扩大到更大范围的权利。
但我找不到如何禁用它。
【问题讨论】:
-
foo(a)不会受到记录r的类型规范的影响,因为它只接受一个原子作为参数。