Traceary

Catalog / Rust

Rust breaking changes

The 4 releases whose own notes call out a breaking change, out of 59 the archive holds. Scattered one per release page, this is a run nobody can see; gathered, it is the shape of how often Rust asks you to change your code.

Tagged breaking
4of 59 releases
Roughly
1 in 15releases held here
Most recent
9 Jul 20262 months ago
Across
45 monthsback to 3 Nov 2022

How this is decided

A release appears here because the word breaking is in the notes its publisher wrote, not because anyone here read the diff. That cuts both ways. A release that changed an API without using the word is missing from this page, and a release that used the word about something minor is on it. It is the publisher’s own signal, reported rather than judged, which is the same rule the security page follows.

Newest first

All Rust releases
1.97.0breakingaddedchanged

Language Consider Result<T, Uninhabited> and ControlFlow<Uninhabited, T> to be equivalent to T for must use lint Add allow-by-default dead_code_pub_in_binary lint for unused pub items in binary crates Stabilize the div32, lam-bh, lamcas, ld

1.96.0breakingsecurityadded

Language Allow passing expr metavariable to cfg Always coerce never types in tuple expressions Avoid incorrect inference guidance of function arguments in rare cases Support s390x vector registers in inline assembly Allow using constants of

1.89.0breakingaddedfixed

Language Stabilize explicitly inferred const arguments (feature(generic_arg_infer)) Add a warn-by-default mismatched_lifetime_syntaxes lint. This lint detects when the same lifetime is referred to by different syntax categories between func

1.65.0breakingaddedfixed

Language Error on as casts of enums with #[non_exhaustive] variants Stabilize let else Stabilize generic associated types (GATs) Add lints let_underscore_drop and let_underscore_lock from Clippy Stabilize breaking from arbitrary labeled blo