[erlang-questions] Dialyzer Error: "Analysis failed with error"

David Mercer dmercer@REDACTED
Fri Jun 24 23:42:55 CEST 2011


Inspired by
http://www.erlang-factory.com/upload/presentations/347/Kostis.pdf, I decided
to give Dialyzer a go.  The first file I tried it on, however, failed with a
rather unhelpful error.  After trimming a few thousand lines, I've got it
down to the following minimal case:

 

-module(dialyzer_test).

-export([test/1]).

 

-record(rec1, {f1}).

-record(rec2, {f2}).

 

-type rec1(T) :: #rec1{f1 :: T}.

-type rec2(T) :: #rec2{f2 :: T}.

 

-spec test(rec2(rec1(A))) -> A.

 

test(#rec2{f2 = #rec1{f1 = X}}) -> X.

 

The Dialyzer error is:

 

dialyzer: Analysis failed with error: Illegal declaration of #rec2{f2}

 

Can anyone explain to me what's wrong with my types and spec?  Please
advise.  Thank-you.

 

David Mercer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110624/10927a9b/attachment.htm>


More information about the erlang-questions mailing list