[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:


and will hopefully be included in OTP at some point.


More information about the erlang-bugs mailing list