Change8

Migrating to Rust Language 1.91.0

Version 1.91.0 introduces 1 breaking change. This guide details how to update your code.

Released: 10/30/2025

1
Breaking Changes
1
Migration Steps
50
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

semicolon_in_expressions_from_macrostarget_abicore::panic::Location::filestd::thread::set_stack_sizePath::file_prefixAtomicPtr::fetch_ptr_addAtomicPtr::fetch_ptr_subAtomicPtr::fetch_byte_addAtomicPtr::fetch_byte_subAtomicPtr::fetch_orAtomicPtr::fetch_andAtomicPtr::fetch_xorinteger::strict_addinteger::strict_subinteger::strict_mulinteger::strict_divinteger::strict_div_euclidinteger::strict_reminteger::strict_rem_euclidinteger::strict_neginteger::strict_shlinteger::strict_shrinteger::strict_powi{N}::strict_add_unsignedi{N}::strict_sub_unsignedi{N}::strict_absu{N}::strict_add_signedu{N}::strict_sub_signedPanicHookInfo::payload_as_strcore::iter::chainu{N}::checked_signed_diffcore::array::repeatPathBuf::add_extensionPathBuf::with_added_extensionDuration::from_minsDuration::from_hoursPathBuf::PartialEq<str>PathBuf::PartialEq<String>Path::PartialEq<str>Path::PartialEq<String>String::PartialEq<PathBuf>String::PartialEq<Path>str::PartialEq<PathBuf>str::PartialEq<Path>Ipv4Addr::from_octetsIpv6Addr::from_octetsIpv6Addr::from_segmentsPin<Box<T>>::DefaultPin<Rc<T>>::DefaultPin<Arc<T>>::Default

Breaking Changes

Issue #1

The `semicolon_in_expressions_from_macros` lint has been upgraded from `warn` to `deny`. Code that previously only generated a warning for using semicolons in expressions originating from macros will now fail compilation.

Solution

Remove semicolons from expressions inside macros that are used as parts of larger expressions, or use the `#![allow(semicolon_in_expressions_from_macros)]` attribute if the behavior is intended and acceptable.

Migration Steps

  1. 1
    If your code relied on the old behavior of `semicolon_in_expressions_from_macros` generating only a warning, you must now update that code to avoid the semicolon or explicitly allow the lint if necessary.

Release Summary

This release stabilizes several new APIs, including strict integer arithmetic methods and various `Path`/`PathBuf` comparison traits, while also promoting Windows targets to Tier 1 and Tier 2 support. A significant language change is upgrading the `semicolon_in_expressions_from_macros` lint to deny.

Need More Details?

View the full release notes and all changes for Rust Language 1.91.0.

View Full Changelog