Skip to content

Commit a3fb2a0

Browse files
authored
Rollup merge of #135489 - RalfJung:TryFromSliceError, r=tgross35
remove pointless allowed_through_unstable_modules on TryFromSliceError This got added in #132482 but the PR does not explain why. `@lukas-code` do you still remember? Also Cc `@Noratrieb` as reviewer of that PR. If I understand the issue description correctly, all paths under which this type is exported are stable now: `core::array::TryFromSliceError` and `std::array::TryFromSliceError`. If that is the case, we shouldn't have the attribute; it's a terrible hack that should only be used when needed to maintain backward compatibility. Getting some historic information right is IMO *not* sufficient justification to risk accidentally exposing this type via more unstable paths today or in the future.
2 parents a7922db + 6103896 commit a3fb2a0

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

library/core/src/array/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ pub const fn from_mut<T>(s: &mut T) -> &mut [T; 1] {
156156

157157
/// The error type returned when a conversion from a slice to an array fails.
158158
#[stable(feature = "try_from", since = "1.34.0")]
159-
#[rustc_allowed_through_unstable_modules]
160159
#[derive(Debug, Copy, Clone)]
161160
pub struct TryFromSliceError(());
162161

src/doc/rustc-dev-guide/src/stability.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ Previously, due to a [rustc bug], stable items inside unstable modules were
3434
available to stable code in that location.
3535
As of <!-- date-check --> September 2024, items with [accidentally stabilized
3636
paths] are marked with the `#[rustc_allowed_through_unstable_modules]` attribute
37-
to prevent code dependent on those paths from breaking.
37+
to prevent code dependent on those paths from breaking. Do *not* add this attribute
38+
to any more items unless that is needed to avoid breaking changes.
3839

3940
The `unstable` attribute may also have the `soft` value, which makes it a
4041
future-incompatible deny-by-default lint instead of a hard error. This is used

0 commit comments

Comments
 (0)