<div dir="ltr">While preparing the Aeternity code for OTP 24, I came across a Dialyzer crash when using OTP 23.<div><br></div><div>We release the software using OTP 22, but run OTP 23-based builds in our CI. However, Dialyzer is only run on OTP 22 in the CI.</div><div><br></div><div>This is the crash:<br>```<br>=ERROR REPORT==== 4-Jun-2021::20:04:10.238902 ===<br>Error in process <0.29614.2> with exit value:<br>{function_clause,<br>    [{dialyzer_dep,bind_list1,<br>         [[],<br>          [{output,single,<br>               {set,<br>                   {set,1,16,16,8,80,48,<br>                       {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},<br>                       {{[],[],[],[],[],[],[],[],[],[],[],[],<br>                         [external],<br>                         [],[],[]}}}}}],<br>          {dict,172,35,64,32,175,105,<br>              {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},<br>              {{[[175186|<br>                  {output,single,<br>                      {set,<br>                          {set,1,16,16,8,80,48,<br>                              {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],<br>                               []},<br>                              {{[],[],[],[],[],[],[],[],[],[],[],[],<br>                                [178840],<br>                                [],[],[]}}}}}],<br></div><div>...</div><div>                [],[],[],[],[],[],[],[],[],[],[],[],[]},<br>               {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}],<br>         [{file,"dialyzer_dep.erl"},{line,456}]},<br>     {dialyzer_dep,traverse,4,[{file,"dialyzer_dep.erl"},{line,150}]},<br>     {dialyzer_dep,traverse_clauses,6,[{file,"dialyzer_dep.erl"},{line,263}]},<br>     {dialyzer_dep,traverse,4,[{file,"dialyzer_dep.erl"},{line,141}]},<br>     {dialyzer_dep,traverse_defs,5,[{file,"dialyzer_dep.erl"},{line,243}]},<br>     {dialyzer_dep,traverse,4,[{file,"dialyzer_dep.erl"},{line,161}]},<br>     {dialyzer_dep,traverse,4,[{file,"dialyzer_dep.erl"},{line,184}]},<br>     {dialyzer_dep,traverse_clauses,6,<br>         [{file,"dialyzer_dep.erl"},{line,263}]}]}<br></div><div>```</div><div><br></div><div>To reproduce, check out the current master of <a href="https://github.com/aeternity/aeternity">https://github.com/aeternity/aeternity</a></div><div><br></div><div>I first encountered it with 23.0.3, but also on 23.3.4.1. It works well with OTP 22.</div><div><br></div><div>Can't yet test it on OTP 24, among other things because we run into internal compiler crashes when trying to build the code. You can take a look at <a href="https://github.com/aeternity/aeternity/pull/3655">https://github.com/aeternity/aeternity/pull/3655</a></div><div><br></div><div>BR,</div><div>Ulf W</div></div>