Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
ee58df4
there is a policy now
tshepang Feb 2, 2026
1c7e616
they are so many that it feels strange to list any
tshepang Feb 2, 2026
e9965b8
sembr src/crates-io.md
tshepang Feb 2, 2026
2626872
Add label for date reference triage
reddevilmidzy Feb 3, 2026
49d41d7
Add 'C-date-reference-triage' to exclude_labels
reddevilmidzy Feb 3, 2026
68156a3
Merge pull request #2763 from reddevilmidzy/date-ref
reddevilmidzy Feb 3, 2026
fb2be7b
Fix rustdoc links for BoundRegionKind/BoundTyKind
reddevilmidzy Feb 3, 2026
39a238c
Document feature gate checking
reddevilmidzy Jan 30, 2026
f3b9e8a
Clarify description of new solver banned features
reddevilmidzy Feb 3, 2026
33b2fcb
Rename `feature-gate-ck.md` to `feature-gate-check.md`
reddevilmidzy Feb 3, 2026
11ac5bd
Clarify and reorganize feature-gate-check doc
reddevilmidzy Feb 3, 2026
3b2fe8b
Merge pull request #2764 from reddevilmidzy/fix
tshepang Feb 3, 2026
0558adb
Merge pull request #2750 from reddevilmidzy/fgc
tshepang Feb 3, 2026
89771a7
Add cross-links between feature gate docs
reddevilmidzy Feb 3, 2026
a358a9e
Merge pull request #2765 from reddevilmidzy/connect
reddevilmidzy Feb 3, 2026
2184b44
Fix typo
ada4a Jan 31, 2026
3d437dc
Merge pull request #2755 from ada4a/patch-4
tshepang Feb 5, 2026
2495d07
Updated link to the Rust CI successful workflow runs page
reddevilmidzy Feb 5, 2026
f853236
Update CI documentation for branch names
reddevilmidzy Feb 5, 2026
3fd4ab4
Simplify redundant description
reddevilmidzy Feb 5, 2026
aaa2f43
Merge pull request #2766 from reddevilmidzy/auto-build
reddevilmidzy Feb 5, 2026
b8a53ca
typo
tshepang Feb 6, 2026
628bf9f
Merge pull request #2767 from rust-lang/tshepang-patch-1
tshepang Feb 6, 2026
0de7415
borrowck: suggest `&mut *x` for pattern reborrows
JohnTitor Feb 7, 2026
f693a1d
Update diagnostics documentation
JonathanBrouwer Feb 8, 2026
37a314b
Update translation documentation
JonathanBrouwer Feb 8, 2026
400a96e
Merge pull request #2768 from rust-lang/diags
BoxyUwU Feb 8, 2026
875c590
Update examples for diagnostics changes
JonathanBrouwer Feb 8, 2026
3f3d11c
Merge pull request #2769 from rust-lang/example_diagnostics
JonathanBrouwer Feb 8, 2026
0cf7b94
fix Nix setup description
jdonszelmann Nov 13, 2025
7362c41
Merge pull request #2770 from jdonszelmann/fix-nix
WaffleLapkin Feb 9, 2026
34ed986
improve build docs
ZuseZ4 Feb 9, 2026
4c9bb23
Merge pull request #2771 from rust-lang/offload-build-docs
BoxyUwU Feb 10, 2026
b23d308
Support structs in type info reflection
SpriteOvO Jan 14, 2026
870fd90
Add generics info for structs in type info
SpriteOvO Jan 19, 2026
e903788
Support enums in type info reflection
SpriteOvO Jan 20, 2026
98e0c34
Support unions in type info reflection
SpriteOvO Feb 5, 2026
b410cb0
Simplify the writing of tuple type info
SpriteOvO Feb 7, 2026
a575fe1
Erase type lifetime before writing type ID
SpriteOvO Feb 10, 2026
6ab6734
Move ADT related code to a sub module for type info
SpriteOvO Feb 10, 2026
e20a44d
Fix typos and capitalization across documentation
him2him2 Feb 10, 2026
47d49a0
Merge pull request #2772 from him2him2/fix-typos
BoxyUwU Feb 10, 2026
bdd8b21
Add reddevilmidzy to review group
reddevilmidzy Feb 11, 2026
79e7093
Merge pull request #2773 from reddevilmidzy/review
reddevilmidzy Feb 11, 2026
8b5a212
Fix doc links to rustc_lexer and rustc_middle
reddevilmidzy Feb 11, 2026
8b18989
Merge pull request #2774 from reddevilmidzy/fix
reddevilmidzy Feb 11, 2026
0f845df
Merge pull request #2761 from rust-lang/tshepang/date-check
tshepang Feb 11, 2026
4810270
Drop dump test for type info reflection
SpriteOvO Feb 11, 2026
2f3b952
Stabilize assert_matches
Voultapher Jan 23, 2026
41de246
Remove unused `fluent-syntax` dependency from tidy
JonathanBrouwer Feb 11, 2026
52919c7
allow `deprecated(since = "CURRENT_RUSTC_VERSION")`
cyrgani Feb 11, 2026
1cb71f9
Sync relnotes for stable 1.93.1
cuviper Feb 11, 2026
50d99fb
Rollup merge of #152505 - cuviper:relnotes-1.93.1, r=Urgau
Urgau Feb 11, 2026
0de4f5b
Rollup merge of #137487 - Voultapher:stabilize-assert-matches, r=Amanieu
Urgau Feb 11, 2026
050b48a
Rollup merge of #152281 - JohnTitor:sugg-mut-deref-borrows, r=estebank
Urgau Feb 11, 2026
c87a89e
Rollup merge of #151142 - SpriteOvO:type-info-adt, r=oli-obk
Urgau Feb 11, 2026
be697c5
Rollup merge of #152477 - tshepang:rdg-sync, r=tshepang
Urgau Feb 11, 2026
f8203c6
Rollup merge of #152488 - cyrgani:deprecation-staged-api, r=JonathanB…
Urgau Feb 11, 2026
452e85a
Rollup merge of #152491 - JonathanBrouwer:remove-fluent-from-tidy, r=…
Urgau Feb 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5561,7 +5561,6 @@ dependencies = [
"build_helper",
"cargo_metadata 0.21.0",
"clap",
"fluent-syntax",
"globset",
"ignore",
"miropt-test-tools",
Expand Down
9 changes: 9 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
Version 1.93.1 (2026-02-12)
===========================

<a id="1.93.1"></a>

- [Don't try to recover keyword as non-keyword identifier](https://github.com/rust-lang/rust/pull/150590), fixing an ICE that especially [affected rustfmt](https://github.com/rust-lang/rustfmt/issues/6739).
- [Fix `clippy::panicking_unwrap` false-positive on field access with implicit deref](https://github.com/rust-lang/rust-clippy/pull/16196).
- [Revert "Update wasm-related dependencies in CI"](https://github.com/rust-lang/rust/pull/152259), fixing file descriptor leaks on the `wasm32-wasip2` target.

Version 1.93.0 (2026-01-22)
==========================

Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_abi/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// tidy-alphabetical-start
#![cfg_attr(all(feature = "nightly", bootstrap), feature(assert_matches))]
#![cfg_attr(feature = "nightly", allow(internal_features))]
#![cfg_attr(feature = "nightly", feature(assert_matches))]
#![cfg_attr(feature = "nightly", feature(rustc_attrs))]
#![cfg_attr(feature = "nightly", feature(step_trait))]
// tidy-alphabetical-end
Expand Down
3 changes: 3 additions & 0 deletions compiler/rustc_attr_parsing/src/attributes/deprecation.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use rustc_hir::attrs::{DeprecatedSince, Deprecation};
use rustc_hir::{RustcVersion, VERSION_PLACEHOLDER};

use super::prelude::*;
use super::util::parse_version;
Expand Down Expand Up @@ -143,6 +144,8 @@ impl<S: Stage> SingleAttributeParser<S> for DeprecationParser {
DeprecatedSince::Future
} else if !is_rustc {
DeprecatedSince::NonStandard(since)
} else if since.as_str() == VERSION_PLACEHOLDER {
DeprecatedSince::RustcVersion(RustcVersion::CURRENT)
} else if let Some(version) = parse_version(since) {
DeprecatedSince::RustcVersion(version)
} else {
Expand Down
73 changes: 65 additions & 8 deletions compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -354,14 +354,71 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
self.infcx.tcx.sess.source_map().span_to_snippet(source_info.span)
{
if snippet.starts_with("&mut ") {
// We don't have access to the HIR to get accurate spans, but we can
// give a best effort structured suggestion.
err.span_suggestion_verbose(
source_info.span.with_hi(source_info.span.lo() + BytePos(5)),
"if there is only one mutable reborrow, remove the `&mut`",
"",
Applicability::MaybeIncorrect,
);
// In calls, `&mut &mut T` may be deref-coerced to `&mut T`, and
// removing the extra `&mut` is the most direct suggestion. But for
// pattern-matching expressions (`match`, `if let`, `while let`), that
// can easily turn into a move, so prefer suggesting an explicit
// reborrow via `&mut *x` instead.
let mut in_pat_scrutinee = false;
let mut is_deref_coerced = false;
if let Some(expr) = self.find_expr(source_info.span) {
let tcx = self.infcx.tcx;
let span = expr.span.source_callsite();
for (_, node) in tcx.hir_parent_iter(expr.hir_id) {
if let Node::Expr(parent_expr) = node {
match parent_expr.kind {
ExprKind::Match(scrutinee, ..)
if scrutinee
.span
.source_callsite()
.contains(span) =>
{
in_pat_scrutinee = true;
break;
}
ExprKind::Let(let_expr)
if let_expr
.init
.span
.source_callsite()
.contains(span) =>
{
in_pat_scrutinee = true;
break;
}
_ => {}
}
}
}

let typeck = tcx.typeck(expr.hir_id.owner.def_id);
is_deref_coerced =
typeck.expr_adjustments(expr).iter().any(|adj| {
matches!(adj.kind, ty::adjustment::Adjust::Deref(_))
});
}

if in_pat_scrutinee {
// Best-effort structured suggestion: insert `*` after `&mut `.
err.span_suggestion_verbose(
source_info
.span
.with_lo(source_info.span.lo() + BytePos(5))
.shrink_to_lo(),
"to reborrow the mutable reference, add `*`",
"*",
Applicability::MaybeIncorrect,
);
} else if is_deref_coerced {
// We don't have access to the HIR to get accurate spans, but we
// can give a best effort structured suggestion.
err.span_suggestion_verbose(
source_info.span.with_hi(source_info.span.lo() + BytePos(5)),
"if there is only one mutable reborrow, remove the `&mut`",
"",
Applicability::MaybeIncorrect,
);
}
} else {
// This can occur with things like `(&mut self).foo()`.
err.span_help(source_info.span, "try removing `&mut` here");
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_borrowck/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

// tidy-alphabetical-start
#![allow(internal_features)]
#![feature(assert_matches)]
#![cfg_attr(bootstrap, feature(assert_matches))]
#![feature(box_patterns)]
#![feature(default_field_values)]
#![feature(file_buffered)]
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_builtin_macros/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

// tidy-alphabetical-start
#![allow(internal_features)]
#![feature(assert_matches)]
#![cfg_attr(bootstrap, feature(assert_matches))]
#![feature(box_patterns)]
#![feature(decl_macro)]
#![feature(if_let_guard)]
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_llvm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
//! This API is completely unstable and subject to change.

// tidy-alphabetical-start
#![feature(assert_matches)]
#![cfg_attr(bootstrap, feature(assert_matches))]
#![feature(extern_types)]
#![feature(file_buffered)]
#![feature(if_let_guard)]
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_ssa/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// tidy-alphabetical-start
#![feature(assert_matches)]
#![cfg_attr(bootstrap, feature(assert_matches))]
#![feature(box_patterns)]
#![feature(file_buffered)]
#![feature(if_let_guard)]
Expand Down
Loading
Loading