Elixir v1.20.2

v1.20.2
Added 1
  • Include per-module type checking times when compiler profiling is enabled with profile: :time
Fixed 14
  • Fix binary comprehensions with sizes when options such as :uniq or :into are used
  • Improve compiler error messages when quote with unquote is used inside a pattern or guard
  • Restore the compiler optimization of Kernel.put_elem/3 to emit :erlang.setelement/3
  • Fix type checking when applying an empty function type
  • Fix type checking of bitstring patterns that reuse variables
  • Fix type information for __info__(:struct) to include the :required key
1. Enhancements
Elixir
  • [Kernel.ParallelCompiler] Include per-module type checking times when compiler profiling is enabled with profile: :time
2. Bug fixes
Elixir
  • [Kernel] Fix binary comprehensions with sizes when options such as :uniq or :into are used
  • [Kernel] Improve compiler error messages when quote with unquote is used inside a pattern or guard
  • [Kernel] Restore the compiler optimization of Kernel.put_elem/3 to emit :erlang.setelement/3
  • [Module] Fix type checking when applying an empty function type
  • [Module] Fix type checking of bitstring patterns that reuse variables
  • [Module] Fix type information for __info__(:struct) to include the :required key
  • [Module] Fix type operations on map and optional keys during difference/intersection, including open keys and empty intersections
  • [Module] Fix typing of list types involving dynamic or empty lists
  • [Module] Include bitstrings as a possible domain key in the type system
  • [Module] Preserve file metadata from each clause in type system warnings
  • [Module] Fix type warnings for protocol implementations whose protocol module defines additional callbacks
  • [Module] Raise clearer type checking errors when an expected struct is removed or redefined during compilation
Mix
  • [mix compile] Avoid unnecessary umbrella recompilation when a path dependency's manifest is newer but unchanged
  • [mix deps.compile] Recompile fetched dependencies when their compile-time environment changes
View original

Upgraded? How did it go?

Discussion