Hello,<div><br></div><div>I am sending a performance optimization for erl_lint. We have noticed when profiling code compilation that a bunch of time was being spent on erl_lint:default_types() which simples builds a dict. We observed those default types in the dictionary were not actually used, in fact, they were always discarded when looping the dictionary. We have removed those entries from the dictionary and compiled them into a function clause.</div>

<div><br></div><div>I have rebuilt Elixir's test suite with this patch and got around a 8% performance speed in some compilation cases.</div><div><br></div><div><div>git fetch git://<a href="http://github.com/josevalim/otp.git" target="_blank">github.com/josevalim/otp.git</a> erl_lint-default_types</div>

<div><br></div><div><a href="https://github.com/josevalim/otp/compare/erl_lint-default_types">https://github.com/josevalim/otp/compare/erl_lint-default_types</a></div><div><a href="https://github.com/josevalim/otp/compare/erl_lint-default_types.patch">https://github.com/josevalim/otp/compare/erl_lint-default_types.patch</a></div>

</div><div><br></div><div>Thank you!</div><div><div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div>

<span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div>

<div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Lead Developer</span></div></span></div></span></div>

</div>
<br></div>