-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Description
We sometimes have things that should be gated by multiple features. E.g. ScopedJoinHandle::is_running
is part of scoped_threads
, but also of thread_is_running
. In these cases we now just apply only one of the #[unstable]
attributes, and because of that sometimes accidentally stabilize something when only one of the features gets stabilized.
It'd be great if we could add multiple #[unstable]
attributes to a single item. Allowing multiple #[stable]
tags isn't a necessity. We could just remove the #[unstable]
tag if the feature gets stabilized and there are other #[unstable]
tags left. The most important part is that we don't forget about the other unstable tags and don't stabilize something by accident.
Another option would be multiple feature =
arguments to #[unstable]
.
Activity
compiler-errors commentedon Mar 15, 2022
@rustbot claim
dianne commentedon Sep 17, 2024
I'd like to try picking this back up. Since it's been a while, would the desired design still be the same? Keeping the behavior of the old PR, I think this would allow potentially multiple
#[unstable]
attributes per item, but at most one#[stable]
, with no mixing of#[stable]
and#[unstable]
(and likewise for#[rustc_const_unstable]
/#[rustc_const_stable]
).I'm assuming
#[rustc_default_body_unstable]
should also be able to depend on multiple features in the same way.dianne commentedon Oct 4, 2024
@rustbot claim
#[unstable]
features for library item #134319#[unstable]
features for library item #134319 as a duplicate of this issue