v1.20.3
Changed 1
- Batch type checker cache operations in Kernel.ParallelCompiler to improve compilation times
Fixed 12
- Improve type precision of the ++/2 operator
- Improve type precision of the send/2 return type
- Improve type refinement for and/2 and or/2
- Fix type checking of Map.put/3 on empty map types
- Fix type checking of tuple insertion on equivalent tuple types
- Fix type checking of tuple insertion on gradual types with empty static parts
- Fix variable refinements leaking from invalid receive/after timeout expressions
- Fix rendering inferred types containing unions of static and dynamic functions
- Ensure typing errors in :maps.values/1 reference the correct function
- Mark %_{} patterns as precise so subsequent redundant struct clauses are detected
- Fix parsing of the --profile time option in elixirc
- Fix break!/1 in IEx.Helpers with unknown expressions
1. Enhancements
Elixir
- [Kernel.ParallelCompiler] Batch type checker cache operations to improve compilation times
2. Bug fixes
Elixir
- [Kernel] Improve type precision of the
++/2operator - [Kernel] Improve type precision of the
send/2return type - [Kernel] Improve type refinement for
and/2andor/2 - [Kernel] Fix type checking of
Map.put/3on empty map types - [Kernel] Fix type checking of tuple insertion on equivalent tuple types
- [Kernel] Fix type checking of tuple insertion on gradual types with empty static parts
- [Kernel] Fix variable refinements leaking from invalid
receive/aftertimeout expressions - [Kernel] Fix rendering inferred types containing unions of static and dynamic functions
- [Kernel] Ensure typing errors in
:maps.values/1reference the correct function - [Kernel] Mark
%_{}patterns as precise so subsequent redundant struct clauses are detected - [elixirc] Fix parsing of the
--profile timeoption
IEx
- [IEx.Helpers] Fix
break!/1with unknown expressions