Elixir 1.20.2
Elixir 1.20.2 has been released — the second patch release in the v1.20 series, focused on type system refinements, compiler optimizations, and bug fixes. This release builds on the landmark v1.20.0 which introduced gradual typing to the Elixir ecosystem.
Overview
Elixir 1.20.2 was released on June 23, 2026, as a maintenance update to the v1.20 branch. It requires Erlang/OTP 27+ and is compatible with Erlang/OTP 29. The release addresses several type system edge cases discovered since v1.20.0 and improves developer experience through better error messages and compiler performance.
Enhancements
Kernel.ParallelCompiler — When compiler profiling is enabled with profile: :time, per-module type checking times are now included in the output. This gives developers finer-grained insight into which modules are slowing down their compilation pipeline, making it easier to identify and optimize type-heavy code.
Bug Fixes — Elixir Core
- [Kernel] Fixed binary comprehensions with sizes when options such as
:uniqor:intoare used - [Kernel] Improved compiler error messages when
quotewithunquoteis used inside a pattern or guard - [Kernel] Restored the compiler optimization of
Kernel.put_elem/3to emit:erlang.setelement/3 - [Module] Fixed type checking when applying an empty function type
- [Module] Fixed type checking of bitstring patterns that reuse variables
- [Module] Fixed type information for
__info__(:struct)to include the:requiredkey - [Module] Fixed type operations on map and optional keys during difference/intersection
- [Module] Fixed typing of list types involving dynamic or empty lists
- [Module] Included bitstrings as a possible domain key in the type system
- [Module] Preserved file metadata from each clause in type system warnings
- [Module] Fixed type warnings for protocol implementations whose protocol module defines additional callbacks
- [Module] Raised clearer type checking errors when an expected struct is removed or redefined during compilation
Bug Fixes — Mix
- [mix compile] Avoided unnecessary umbrella recompilation when a path dependency manifest is newer but unchanged
- [mix deps.compile] Recompiled fetched dependencies when their compile-time environment changes
Deprecations
No new deprecations are introduced in Elixir 1.20.2. All deprecations from v1.20.0 remain in effect. Users are encouraged to review the v1.20 upgrade guide for the full list of deprecated functions.
Upgrade Notes
To upgrade an existing Elixir project, update your dependency to 1.20.2 in your mix.exs or use your version manager of choice. The Elixir team recommends running mix test and mix dialyzer after upgrading to catch any type regressions.
Elixir 1.20.2 is available now via the official installer, asdf, and all major package managers. Visit elixir-lang.org for download instructions.