$ the-wire · showcase
Spec-only Elixir fixes: map_get, Process.spawn, send_after
By RepoJournal · Filed · About Elixir & Phoenix · Composed from the cited sources · methodology
Elixir spent the day correcting what its typespecs and docs claim about core Process, File, List, and pin operators, while Ecto touched up Ecto.HMAC documentation; no runtime behavior changes for code already written against the real semantics.
Treat map_get/2 with non-atom keys as failing on values elixir-lang/elixir
Elixir now treats map_get/2 with non-atom keys as failing on values rather than only on the map argument, closing the gap where a spec allowed keys the function would reject. That is the one change in this batch that can surface new type-checking failures: code passing a non-atom to map_get/2 in a pinned or guard position should be corrected, not silenced.
Correct Process.spawn monitor options in typespecs and documentation (#16083) elixir-lang/elixir
The monitor options in Process.spawn's typespecs and documentation were wrong and are now corrected, so dialyzer and editors stop endorsing option shapes the function does not accept. If your code was written to satisfy the old spec, re-read the docs before trusting it.
Correct the absolute-time argument type for Process.send_after/4 (#16084) elixir-lang/elixir
Process.send_after/4's absolute-time argument type is fixed in the spec, which matters for anyone passing a monotonic or absolute timestamp instead of a relative millisecond timeout. Specs that previously type-checked against the wrong type may now complain.
Include closed-device errors in File.stat/2 documentation and spec (#16078) elixir-lang/elixir
File.stat/2 documentation and its spec now include the closed-device errors the function can actually return. Code that matched only :enoent and :eacces against File.stat/2 was matching against an incomplete list of outcomes; the spec now names them.
Small documentation improvements for Ecto.HMAC elixir-ecto/ecto
The long tail is documentation: List.pop_at/3 now spells out its return value and negative indexing, List.pop_at/3 and File.stat/2 clarify behavior already in place, and Ecto.HMAC got small doc improvements in two branches of the same change.