|
18 | 18 |
|
19 | 19 | * [Access] Add support for keyword lists in `Access.key/2` and `Access.key!/1` |
20 | 20 | * [Code] Add support for the `:erlc_options` compiler option |
| 21 | + * [Code.Formatter] Add a `:migrate_atom_interpolations` option |
| 22 | + * [Code.Typespec] Handle Erlang/OTP 28 nominal types in `Code.Typespec.fetch_types/1` |
| 23 | + * [Kernel] Improve performance of type constructors and complex intersections |
21 | 24 | * [Kernel] Warn on binary patterns with segments that are not byte-aligned |
22 | 25 | * [Keyword] Optimize `Keyword.pop/3`, `Keyword.pop!/2`, and `Keyword.pop_lazy/3` |
23 | 26 | * [List] Add `List.to_existing_atom/2` and `List.to_unsafe_atom/1` |
|
35 | 38 |
|
36 | 39 | #### Elixir |
37 | 40 |
|
| 41 | + * [Code.Fragment] Fix cursor completion when operator keywords such as `in`, `when`, `and`, `or`, and `not` follow another operator |
| 42 | + * [Date.Range] Fix slicing date ranges with stepped ranges |
| 43 | + * [Duration] Reject duplicate seconds in `Duration.from_iso8601/1` |
| 44 | + * [Enum] Fix `Enum.min/2,3` and `Enum.max/2,3` with custom sorters on ranges |
| 45 | + * [IO.ANSI.Docs] Recognize additional punctuation delimiters when rendering Markdown |
38 | 46 | * [Kernel] Fix expansion of rebound variables in bitstring size expressions |
| 47 | + * [Kernel] Expand `defguard` macros separately in guard and body contexts, preserving `and`/`or` error semantics outside guards |
39 | 48 | * [Kernel] Fix variables defined in one default argument leaking into subsequent default arguments |
40 | 49 | * [Kernel.Typespec] Preserve metadata when proxying to Elixir typespecs |
| 50 | + * [Keyword] Delete duplicate keys when `Keyword.get_and_update/3` and `Keyword.get_and_update!/3` return `:pop` |
| 51 | + * [NaiveDateTime] Fix `NaiveDateTime.diff/3` over-counting incomplete units |
| 52 | + * [Range] Fix `Range.disjoint?/2` for single-element ranges with a negative step |
| 53 | + * [String] Return `1.0` from `String.bag_distance/2` for two empty strings |
41 | 54 |
|
42 | 55 | #### ExUnit |
43 | 56 |
|
44 | | - * [ExUnit.CaptureLog] Fix the typespec for capture log options |
| 57 | + * [ExUnit.Assertions] Fix `refute_in_delta/4` at the delta boundary and with negative deltas |
| 58 | + * [ExUnit.CaptureIO] Stop `StringIO` processes when capturing a named device fails |
| 59 | + |
| 60 | +#### IEx |
| 61 | + |
| 62 | + * [IEx.Autocomplete] Fix completion crashes on maps with non-atom keys |
| 63 | + * [IEx.Evaluator] Recognize `**` as a continuation operator |
| 64 | + * [IEx.Helpers] Fix `r/1` when multiple modules are defined in the same file |
| 65 | + * [IEx.Helpers] Fix heap and stack memory calculations in `process_info/1` |
45 | 66 |
|
46 | 67 | #### Mix |
47 | 68 |
|
| 69 | + * [Mix.Release] Accept chardata paths in `Mix.Release.make_boot_script/4` |
48 | 70 | * [Mix.SCM.Git] Raise if Git refspecs start with `-` |
| 71 | + * [mix deps] Recompile path and fetchable dependencies when one of the dependencies they were compiled with is removed |
| 72 | + * [mix deps] Mark fetchable dependencies for compilation when their build exists but their SCM manifest is missing |
49 | 73 | * [mix deps.compile] Preserve code paths and compiler options across OS partitions |
50 | 74 |
|
51 | 75 | ### 3. Hard deprecations |
|
0 commit comments