Diaylzer in R14A with opaque types
Thorsten Schuett
schuett@REDACTED
Wed Jul 7 16:50:32 CEST 2010
Hi,
when I run dialyzer of R14A on the attached code, it complains about the
new_neighborhood/1 function:
nodelist.erl:12: Invalid type specification for function
nodelist:new_neighborhood/1. The success typing is (_) -> {[any(),...]}
However, when I change the type nodelist() from opaque to non-opaque (see
comment), dialyzer accepts the code. The types seem to be correct. The problem
seems to be with nested opaque types.
Thorsten
-module(nodelist).
-export([new_neighborhood/1]).
-export_type([nodelist/0, neighborhood/0]).
-type(node_type() :: node_type).
-opaque(nodelist() :: [node_type()]). % change to -type
-opaque(neighborhood() :: {nodelist()}).
-spec new_neighborhood(Node::node_type()) -> neighborhood().
new_neighborhood(Node) ->
{[Node]}.
More information about the erlang-bugs
mailing list