Latest in branch 1.92
1.92.0
Released 11 Dec 2025
(5 months ago)
SoftwareRust
Version1.92
Initial release1.92.0
11 Dec 2025
(5 months ago)
Latest release1.92.0
11 Dec 2025
(5 months ago)
Support status22 Jan 2026
(Ended 4 months ago)
Release noteshttps://github.com/rust-lang/rust/releases/tag/1.92.0
Source codehttps://github.com/rust-lang/rust/tree/1.92.0
Downloadhttps://github.com/rust-lang/rust/releases/tag/1.92.0
Rust 1.92 ReleasesView full list

What Is New in Rust 1.92

CategoryHighlights
New FeaturesStabilized several APIs for use in const contexts.
ImprovementsUnused_must_use no longer warns on Result<(), Infallible>; unwind tables emitted by default with -Cpanic=abort; stricter validation of #[macro_export] arguments.
Breaking ChangesDeny-by-default never-type compatibility lints now cause compilation errors unless silenced.

What does the new deny-by-default never type lint mean for my crates?

The new deny-by-default lints never_type_fallback_flowing_into_unsafe and dependency_on_unit_never_type_fallback will turn into hard errors when they are triggered.

  • They fire only when the affected crate is compiled directly, not when it appears only as a dependency.
  • Cargo will emit a warning for dependent crates, giving you a heads-up before the error appears.
  • Typical fix: replace unit-type fallbacks with proper never-type handling or add #[allow(never_type_fallback_flowing_into_unsafe)] if you need a temporary workaround.

In practice, about 500 crates on crates.io are expected to hit these lints, so plan a migration window before upgrading a large codebase.

How does Rust 1.92 treat Result<(), Infallible> in the unused_must_use lint?

Rust 1.92 no longer warns when you ignore a Result<(), Infallible> or any Result<(), UninhabitedType>.

use core::convert::Infallible;
fn never_fails() -> Result<(), Infallible> {
    Ok(())
}
fn main() {
    never_fails(); // No unused_must_use warning
}

This matters if you have generic traits with an associated error type that can be Infallible; the lint now respects the fact that the error branch can never be constructed.

Will backtraces still work when I compile with -Cpanic=abort on Linux?

Yes, Rust 1.92 emits unwind tables by default even when -Cpanic=abort is set on Linux.

  • Backtraces will be available without the need for the -Cforce-unwind-tables=yes flag.
  • If you deliberately want to omit unwind tables, pass -Cforce-unwind-tables=no.

This improvement restores the behavior that existed before Rust 1.23 and simplifies debugging in low-overhead abort-panic configurations.

What new const-stabilized APIs are available in Rust 1.92?

Several previously stable APIs have been promoted to const-stable, allowing them to be used in compile-time contexts.

  • Functions and methods that were only usable at runtime can now appear in const fn bodies, enabling more powerful compile-time computation.
  • Typical use-case: building static lookup tables or performing validation in const contexts without resorting to build scripts.

Check the detailed release notes for the exact list of APIs that gained const stability.

Frequently Asked Questions

Do I need to change my Cargo.toml when upgrading to Rust 1.92?
No, the upgrade does not require Cargo.toml modifications unless you need to silence the new deny-by-default lints.

How can I temporarily silence the never-type compatibility lints?
You can add #[allow(never_type_fallback_flowing_into_unsafe)] at the crate root or on the specific items that trigger the lint.

Will existing code that ignores Result<(), Infallible> start compiling without warnings?
Yes, the unused_must_use lint now treats Result<(), Infallible> as safe to ignore.

What command should I run to get the latest stable Rust after this release?
Run rustup update stable to fetch Rust 1.92.

Is there a way to disable unwind table emission when using -Cpanic=abort?
Pass -Cforce-unwind-tables=no to the compiler to turn off unwind tables.

Are the new const-stable APIs backward compatible with older Rust versions?
They are only available when compiling with Rust 1.92 or newer; older compilers will emit an error.

Releases In Branch 1.92

VersionRelease date
1.92.011 Dec 2025
(5 months ago)