The Wire · Showcase
The never type is stable
By RepoJournal · Filed · About Rust
Rust's never type just went stable, making `!` a first-class citizen that changes how fallback works on every edition.
Rust's never type `!` is now stable, and the fallback for diverging expressions is `!` on all editions, a breaking change with crater analysis behind it [1]. WaffleLapkin followed up by stripping the `dependency_on_unit_never_type_fallback` lint [2] and removing `#![feature(never_type)]` from the tools [3]. Meanwhile, Miri walked back a recent decision: custom allocators won't get `noalias` after all, pending a future `NativeAllocator` wrapper [4]. The team also merged a follow-up that unifies the signal shim macros [5]. On the libc desk, HelenOS support landed as a stable-nominated PR that the author plans to backport to libc 0.2 [6]. Elsewhere, libc is cleaning up L4Re bindings by deprecating LFS symbols and adjusting offsets [7]. The crates.io-index churned through routine crate updates, nothing alarming [8]. This period saw 109 commits and 22 PRs across the five repos.
One email a day. Unsubscribe in one click.
Keep up with Rust in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Test your code against the never type fallback change, especially code with diverging match arms rust-lang/rust [plan]
- → Review custom allocator code for `noalias` assumptions and wait for the `NativeAllocator` wrapper rust-lang/miri [monitor]
- → Watch for the HelenOS backport to libc 0.2 and plan around it if you target that OS rust-lang/libc [monitor]
References
- [1] Auto merge of #155499 - WaffleLapkin:stabilize-never-type, r=JonathanBrouwer rust-lang/rust
- [2] remove `dependency_on_unit_never_type_fallback` lint rust-lang/rust
- [3] remove `#![feature(never_type)]` from tools rust-lang/rust
- [4] Custom allocators do not get noalias after all ↗ rust-lang/miri
- [5] unify shim_sig and shim_sig_variadic macros ↗ rust-lang/miri
- [6] Add HelenOS support ↗ rust-lang/libc
- [7] l4re: deprecate lfs bindings rust-lang/libc
- [8] Update crate `pamoja-security` rust-lang/crates.io-index