[erlang-bugs] illegal declaration of pertially defined record types in dialyzer, R14A

Kostis Sagonas <>
Thu Sep 16 09:11:10 CEST 2010


Nico Kruber wrote:
> here's the other bug I originally intendet to report:
> 
> I declare a remote type rec1:rec1() in the rec1 module,
> a record rec2 in module rec2 along with a rec2:rec2() type.
> 
> If I use the rec2:rec2() type in a third module, i.e. rec3, dialyzer reports 
> an illegal declaration of rec2#{id}:
> 
> ------------------------
>> dialyzer -Werror_handling -Wrace_conditions --src -c rec*.erl --no_native
>   Checking whether the PLT /home/nico/.dialyzer_plt is up-to-date... yes
>   Proceeding with analysis...
> dialyzer: Analysis failed with error: Illegal declaration of rec2#{id}
> 
> Last messages in the log cache:
>   Reading files and computing callgraph... done in 0.06 secs
>   Removing edges... done in 0.01 secs
> ------------------------

This problem has now been fixed (thanks to Maria Christakis).  The fix 
appears here:

http://github.com/kostis/otp/commit/544b05dc65606fcbfb46c2df69026c28f4ab2117

and will hopefully be included in OTP at some point.

Kostis


More information about the erlang-bugs mailing list