Skip to content

Commit 01f6ddf

Browse files
committed
Auto merge of #152450 - cuviper:stable-next, r=cuviper
[stable] prepare Rust 1.93.1 This includes the following backported fixes: - Don't try to recover keyword as non-keyword identifier #150590 - Fix `panicking_unwrap` FP on field access with implicit deref rust-lang/rust-clippy#16196 - Revert "Update wasm-related dependencies in CI" #152259 And these are just to avoid recent CI issues: - Remove rustdoc GUI flaky test #152116 - Remove the 4 failing tests from rustdoc-gui #152194 r? @rust-lang/release @rustbot ping relnotes-interest-group
2 parents 254b596 + 674ccdd commit 01f6ddf

File tree

17 files changed

+136
-583
lines changed

17 files changed

+136
-583
lines changed

RELEASES.md

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,49 @@
1-
Version 1.93 (2026-01-22)
1+
Version 1.93.1 (2026-02-12)
2+
===========================
3+
4+
<a id="1.93.1"></a>
5+
6+
- [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).
7+
- [Fix `clippy::panicking_unwrap` false-positive on field access with implicit deref](https://github.com/rust-lang/rust-clippy/pull/16196).
8+
- [Revert "Update wasm-related dependencies in CI"](https://github.com/rust-lang/rust/pull/152259), fixing file descriptor leaks on the `wasm32-wasip2` target.
9+
10+
Version 1.93.0 (2026-01-22)
211
==========================
312

4-
<a id="1.93-Language"></a>
13+
<a id="1.93.0-Language"></a>
514

615
Language
716
--------
8-
- [Add warn-by-default `function_casts_as_integer` lint](https://github.com/rust-lang/rust/pull/141470)
9-
- [Add future-incompatibility warning for `...` function parameters without a pattern outside of `extern` blocks](https://github.com/rust-lang/rust/pull/143619)
1017
- [Stabilize several s390x `vector`-related target features and the `is_s390x_feature_detected!` macro](https://github.com/rust-lang/rust/pull/145656)
1118
- [Stabilize declaration of C-style variadic functions for the `system` ABI](https://github.com/rust-lang/rust/pull/145954)
1219
- [Emit error when using some keyword as a `cfg` predicate](https://github.com/rust-lang/rust/pull/146978)
13-
- [Introduce future-compatibility warning for `repr(C)` enums whose discriminant values do not fit into a `c_int` or `c_uint`](https://github.com/rust-lang/rust/pull/147017)
14-
- [Introduce future-compatibility warning against ignoring `repr(C)` types as part of `repr(transparent)`](https://github.com/rust-lang/rust/pull/147185)
1520
- [Stabilize `asm_cfg`](https://github.com/rust-lang/rust/pull/147736)
16-
- [Upgrade the `deref_nullptr` lint from warn-by-default to deny-by-default](https://github.com/rust-lang/rust/pull/148122)
1721
- [During const-evaluation, support copying pointers byte-by-byte](https://github.com/rust-lang/rust/pull/148259)
18-
- [Add warn-by-default `const_item_interior_mutations` lint to warn against calls which mutate interior mutable `const` items](https://github.com/rust-lang/rust/pull/148407)
1922
- [LUB coercions now correctly handle function item types, and functions with differing safeties](https://github.com/rust-lang/rust/pull/148602)
2023
- [Allow `const` items that contain mutable references to `static` (which is *very* unsafe, but not *always* UB)](https://github.com/rust-lang/rust/pull/148746)
24+
- [Add warn-by-default `const_item_interior_mutations` lint to warn against calls which mutate interior mutable `const` items](https://github.com/rust-lang/rust/pull/148407)
25+
- [Add warn-by-default `function_casts_as_integer` lint](https://github.com/rust-lang/rust/pull/141470)
2126

2227

23-
<a id="1.93-Compiler"></a>
28+
<a id="1.93.0-Compiler"></a>
2429

2530
Compiler
2631
--------
2732
- [Stabilize `-Cjump-tables=bool`](https://github.com/rust-lang/rust/pull/145974). The flag was previously called `-Zno-jump-tables`.
28-
- [Promote `riscv64a23-unknown-linux-gnu` to Tier 2 (without host tools)](https://github.com/rust-lang/rust/pull/148435)
2933

30-
31-
<a id="1.93-Platform-Support"></a>
34+
<a id="1.93.0-Platform-Support"></a>
3235

3336
Platform Support
3437
----------------
3538

39+
- [Promote `riscv64a23-unknown-linux-gnu` to Tier 2 (without host tools)](https://github.com/rust-lang/rust/pull/148435)
3640

3741
Refer to Rust's [platform support page][platform-support-doc]
3842
for more information on Rust's tiered platform support.
3943

4044
[platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html
4145

42-
<a id="1.93-Libraries"></a>
46+
<a id="1.93.0-Libraries"></a>
4347

4448
Libraries
4549
---------
@@ -49,14 +53,14 @@ Libraries
4953
- [Don't require `T: RefUnwindSafe` for `vec::IntoIter<T>: UnwindSafe`](https://github.com/rust-lang/rust/pull/145665)
5054

5155

52-
<a id="1.93-Stabilized-APIs"></a>
56+
<a id="1.93.0-Stabilized-APIs"></a>
5357

5458
Stabilized APIs
5559
---------------
5660

57-
- [`<MaybeUninit<T>>::assume_init_drop`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.assume_init_drop)
58-
- [`<MaybeUninit<T>>::assume_init_ref`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.assume_init_ref)
59-
- [`<MaybeUninit<T>>::assume_init_mut`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.assume_init_mut)
61+
- [`<[MaybeUninit<T>]>::assume_init_drop`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_drop)
62+
- [`<[MaybeUninit<T>]>::assume_init_ref`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_ref)
63+
- [`<[MaybeUninit<T>]>::assume_init_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_mut)
6064
- [`<[MaybeUninit<T>]>::write_copy_of_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.write_copy_of_slice)
6165
- [`<[MaybeUninit<T>]>::write_clone_of_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.write_clone_of_slice)
6266
- [`String::into_raw_parts`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_raw_parts)
@@ -67,9 +71,9 @@ Stabilized APIs
6771
- [`<uN>::unchecked_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unchecked_shl)
6872
- [`<uN>::unchecked_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unchecked_shr)
6973
- [`<[T]>::as_array`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_array)
70-
- [`<[T]>::as_array_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_mut_array)
74+
- [`<[T]>::as_mut_array`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_mut_array)
7175
- [`<*const [T]>::as_array`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_array)
72-
- [`<*mut [T]>::as_array_mut`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_mut_array)
76+
- [`<*mut [T]>::as_mut_array`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_mut_array)
7377
- [`VecDeque::pop_front_if`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.pop_front_if)
7478
- [`VecDeque::pop_back_if`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.pop_back_if)
7579
- [`Duration::from_nanos_u128`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_nanos_u128)
@@ -79,15 +83,15 @@ Stabilized APIs
7983
- [`std::fmt::FromFn`](https://doc.rust-lang.org/stable/std/fmt/struct.FromFn.html)
8084

8185

82-
<a id="1.93-Cargo"></a>
86+
<a id="1.93.0-Cargo"></a>
8387

8488
Cargo
8589
-----
8690
- [Enable CARGO_CFG_DEBUG_ASSERTIONS in build scripts based on profile](https://github.com/rust-lang/cargo/pull/16160/)
8791
- [In `cargo tree`, support long forms for `--format` variables](https://github.com/rust-lang/cargo/pull/16204/)
8892
- [Add `--workspace` to `cargo clean`](https://github.com/rust-lang/cargo/pull/16263/)
8993

90-
<a id="1.93-Rustdoc"></a>
94+
<a id="1.93.0-Rustdoc"></a>
9195

9296
Rustdoc
9397
-----
@@ -97,7 +101,7 @@ Rustdoc
97101
- [Validate usage of crate-level doc attributes](https://github.com/rust-lang/rust/pull/149197). This means if any of `html_favicon_url`, `html_logo_url`, `html_playground_url`, `issue_tracker_base_url`, or `html_no_source` either has a missing value, an unexpected value, or a value of the wrong type, rustdoc will emit the deny-by-default lint `rustdoc::invalid_doc_attributes`.
98102

99103

100-
<a id="1.93-Compatibility-Notes"></a>
104+
<a id="1.93.0-Compatibility-Notes"></a>
101105

102106
Compatibility Notes
103107
-------------------
@@ -108,6 +112,10 @@ Compatibility Notes
108112
- Cargo now sets the `CARGO_CFG_DEBUG_ASSERTIONS` environment variable in more situations. This will cause crates depending on `static-init` versions 1.0.1 to 1.0.3 to fail compilation with "failed to resolve: use of unresolved module or unlinked crate `parking_lot`". See [the linked issue](https://github.com/rust-lang/rust/issues/150646#issuecomment-3718964342) for details.
109113
- [User written types in the `offset_of!` macro are now checked to be well formed.](https://github.com/rust-lang/rust/issues/150465/)
110114
- `cargo publish` no longer emits `.crate` files as a final artifact for user access when the `build.build-dir` config is unset
115+
- [Upgrade the `deref_nullptr` lint from warn-by-default to deny-by-default](https://github.com/rust-lang/rust/pull/148122)
116+
- [Add future-incompatibility warning for `...` function parameters without a pattern outside of `extern` blocks](https://github.com/rust-lang/rust/pull/143619)
117+
- [Introduce future-compatibility warning for `repr(C)` enums whose discriminant values do not fit into a `c_int` or `c_uint`](https://github.com/rust-lang/rust/pull/147017)
118+
- [Introduce future-compatibility warning against ignoring `repr(C)` types as part of `repr(transparent)`](https://github.com/rust-lang/rust/pull/147185)
111119

112120

113121
Version 1.92.0 (2025-12-11)

compiler/rustc_parse/src/parser/item.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,7 @@ impl<'a> Parser<'a> {
393393
let insert_span = ident_span.shrink_to_lo();
394394

395395
let ident = if self.token.is_ident()
396+
&& self.token.is_non_reserved_ident()
396397
&& (!is_const || self.look_ahead(1, |t| *t == token::OpenParen))
397398
&& self.look_ahead(1, |t| {
398399
matches!(t.kind, token::Lt | token::OpenBrace | token::OpenParen)

src/ci/docker/host-x86_64/dist-various-2/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ RUN /tmp/build-fuchsia-toolchain.sh
8585
COPY host-x86_64/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
8686
RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
8787

88-
RUN curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-29/wasi-sdk-29.0-x86_64-linux.tar.gz | \
88+
RUN curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-x86_64-linux.tar.gz | \
8989
tar -xz
90-
ENV WASI_SDK_PATH=/tmp/wasi-sdk-29.0-x86_64-linux
90+
ENV WASI_SDK_PATH=/tmp/wasi-sdk-27.0-x86_64-linux
9191

9292
COPY scripts/freebsd-toolchain.sh /tmp/
9393
RUN /tmp/freebsd-toolchain.sh i686

src/ci/docker/host-x86_64/pr-check-2/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2121
mingw-w64 \
2222
&& rm -rf /var/lib/apt/lists/*
2323

24-
RUN curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-29/wasi-sdk-29.0-x86_64-linux.tar.gz | \
24+
RUN curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-x86_64-linux.tar.gz | \
2525
tar -xz
26-
ENV WASI_SDK_PATH=/wasi-sdk-29.0-x86_64-linux
26+
ENV WASI_SDK_PATH=/wasi-sdk-27.0-x86_64-linux
2727

2828
ENV RUST_CONFIGURE_ARGS="--set rust.validate-mir-opts=3"
2929

src/ci/docker/host-x86_64/test-various/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ WORKDIR /
4141
COPY scripts/sccache.sh /scripts/
4242
RUN sh /scripts/sccache.sh
4343

44-
RUN curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-29/wasi-sdk-29.0-x86_64-linux.tar.gz | \
44+
RUN curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-x86_64-linux.tar.gz | \
4545
tar -xz
46-
ENV WASI_SDK_PATH=/wasi-sdk-29.0-x86_64-linux
46+
ENV WASI_SDK_PATH=/wasi-sdk-27.0-x86_64-linux
4747

4848
ENV RUST_CONFIGURE_ARGS \
4949
--musl-root-x86_64=/usr/local/x86_64-linux-musl \
@@ -56,9 +56,9 @@ ENV RUST_CONFIGURE_ARGS \
5656
ENV NO_DEBUG_ASSERTIONS=1
5757
ENV NO_OVERFLOW_CHECKS=1
5858

59-
RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v38.0.4/wasmtime-v38.0.4-x86_64-linux.tar.xz | \
59+
RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.0/wasmtime-v19.0.0-x86_64-linux.tar.xz | \
6060
tar -xJ
61-
ENV PATH "$PATH:/wasmtime-v38.0.4-x86_64-linux"
61+
ENV PATH "$PATH:/wasmtime-v19.0.0-x86_64-linux"
6262

6363
ENV WASM_WASIP_TARGET=wasm32-wasip1
6464
ENV WASM_WASIP_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $WASM_WASIP_TARGET \

src/tools/clippy/clippy_lints/src/unwrap.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,14 +180,19 @@ impl Local {
180180
field_indices,
181181
..
182182
} => {
183+
let field_projections = place
184+
.projections
185+
.iter()
186+
.filter(|proj| matches!(proj.kind, ProjectionKind::Field(_, _)))
187+
.collect::<Vec<_>>();
183188
is_potentially_local_place(*local_id, place)
184189
// If there were projections other than field projections, err on the side of caution and say that they
185190
// _might_ be mutating something.
186191
//
187192
// The reason we use `<=` and not `==` is that a mutation of `struct` or `struct.field1` should count as
188193
// mutation of the child fields such as `struct.field1.field2`
189-
&& place.projections.len() <= field_indices.len()
190-
&& iter::zip(&place.projections, field_indices.iter().copied().rev()).all(|(proj, field_idx)| {
194+
&& field_projections.len() <= field_indices.len()
195+
&& iter::zip(&field_projections, field_indices.iter().copied().rev()).all(|(proj, field_idx)| {
191196
match proj.kind {
192197
ProjectionKind::Field(f_idx, _) => f_idx == field_idx,
193198
// If this is a projection we don't expect, it _might_ be mutating something

src/tools/clippy/tests/ui/checked_unwrap/simple_conditionals.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,3 +472,22 @@ fn issue15321() {
472472
//~^ unnecessary_unwrap
473473
}
474474
}
475+
476+
mod issue16188 {
477+
struct Foo {
478+
value: Option<i32>,
479+
}
480+
481+
impl Foo {
482+
pub fn bar(&mut self) {
483+
let print_value = |v: i32| {
484+
println!("{}", v);
485+
};
486+
487+
if self.value.is_none() {
488+
self.value = Some(10);
489+
print_value(self.value.unwrap());
490+
}
491+
}
492+
}
493+
}

src/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.93.0
1+
1.93.1

tests/rustdoc-gui/globals.goml

Lines changed: 0 additions & 20 deletions
This file was deleted.

tests/rustdoc-gui/headers-color.goml

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)