Repository navigation
Track stability of path components #15702
Description
Activity
cc #8962
cc #8967 as well.
We will also need to think carefully about the user experience for the lint for mostly-stable libraries. We may want opt-out at the crate level, or a way of coalescing warnings.
Nominating for 1.0. This is an important feature that possibly affects several libraries over the course of stabilization after 1.0 (I've already hit this twice with rust-encoding, see above). Also note that this doesn't have a simple workaround with an exception of function.
P-high, not 1.0.
(This is highly desired, but it is not going to block a release.)
Renominating because the ability to correctly detect the stability level of user code has a high impact on the guarantees we can provide.
Assigning 1.0 milestone (it is considered polish, rather than a deep backwards compat issue).
@alexcrichton did your patch address this? For some reason it seemed it would be harder, but I don't really know.
Unfortunately no, my patch didn't address this. For any path we still only track the stability of the last component.
30 remaining items
can this be closed since #95956 landed?
Looks like it, yeah.
We do have some items with
allowed_through_unstable_modules. Is there any plan to clean that up, e.g. deprecate these items or have them considered proper unstable in a future edition?- added a commit that references this issue
on May 31, 2023 Closing as done – please reopen if you disagree.
We do have some items with
allowed_through_unstable_modules. Is there any plan to clean that up, e.g. deprecate these items or have them considered proper unstable in a future edition?I'm not sure I understand this – my understanding is that the item is intended to be reachable through some other stable path, which should be fine? What needs cleaning up in that case?
std::intrinsics::transmuteis usable on stable, which was never intended. Are there any plans to fix that?I think it would be a breaking change to "fix"
intrinsics::transmute, unless done via some edition-based cleverness. (I've seen it get used just via rust-analyzer auto-import, so it's not even people being overly clever/cheeky)Thanks for the pointers – I've opened #113387 to track this.
The current stability check only checks a few uses: functions and methods. There is much more needed for the coverage to be complete. In particular, every path contains multiple components which should all be checked. Simply checking paths would improve the accuracy of the analysis greatly.
This requires modifying resolve to record the def_id's of path components, not just the entire path.
cc @aturon