Skip to content

Track stability of path components #15702

Description

@brson

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

Activity

  1. aturon commented on Jul 16, 2014

    @aturon
    Contributor
  2. aturon commented on Jul 16, 2014

    @aturon
    Contributor

    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.

  3. lifthrasiir commented on Nov 18, 2014

    @lifthrasiir
    Contributor

    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.

  4. pnkfelix commented on Nov 20, 2014

    @pnkfelix
    Contributor

    P-high, not 1.0.

    (This is highly desired, but it is not going to block a release.)

  5. brson commented on Jan 6, 2015

    @brson
    ContributorAuthor

    Renominating because the ability to correctly detect the stability level of user code has a high impact on the guarantees we can provide.

  6. pnkfelix commented on Jan 8, 2015

    @pnkfelix
    Contributor

    Assigning 1.0 milestone (it is considered polish, rather than a deep backwards compat issue).

  7. added this to the 1.0 milestone on Jan 8, 2015
  8. aturon commented on Feb 12, 2015

    @aturon
    Contributor

    @alexcrichton did your patch address this? For some reason it seemed it would be harder, but I don't really know.

  9. alexcrichton commented on Feb 14, 2015

    @alexcrichton
    Member

    Unfortunately no, my patch didn't address this. For any path we still only track the stability of the last component.

  10. 30 remaining items

  11. added a commit that references this issue on Feb 28, 2023
  12. added 2 commits that reference this issue on Feb 28, 2023
  13. BoxyUwU commented on May 7, 2023

    @BoxyUwU
    Member

    can this be closed since #95956 landed?

  14. RalfJung commented on May 8, 2023

    @RalfJung
    Member

    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?

  15. tmandry commented on Jun 28, 2023

    @tmandry
    Member

    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?

  16. RalfJung commented on Jun 28, 2023

    @RalfJung
    Member

    std::intrinsics::transmute is usable on stable, which was never intended. Are there any plans to fix that?

  17. thomcc commented on Jun 28, 2023

    @thomcc
    Member

    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)

  18. tmandry commented on Jul 5, 2023

    @tmandry
    Member

    Thanks for the pointers – I've opened #113387 to track this.

  19. added 2 commits that reference this issue on Mar 23, 2024
  20. added a commit that references this issue on Mar 26, 2024
  21. added a commit that references this issue on Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-maybe-future-editionSomething we may consider for a future edition.A-stabilityArea: `#[stable]`, `#[unstable]` etc.C-bugCategory: This is a bug.P-lowLow priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions