Skip to content

Properly handle feature-gated lints #72694

Closed

Description

@LeSeulArtichaut

At the moment, the unsafe_op_in_unsafe_fn lint is the only feature-gated lint. However, feature-gate checks are hard-coded for this lint. If more feature gated lints are be added in the future, having proper handling for feature-gated lint will be useful.

Here is a suggested implementation plan:

  • Add a feature_gate field of type Option<Symbol> for the rustc_session::lint::Lint struct, which has a Some value if the lint is feature-gated, None otherwise.
  • Tweak the rustc_session::declare_lint! macro to allow specifying the feature gate when applicable, akin to future_incompatible.
  • When registering lints on the command line or for attributes, check if they are feature gated, and report errors accordingly. Basically, re-writing check_gated_link should be enough.
  • As rustdoc allows all lints as if they were passed on the command line, prevent rustdoc from allowing feature gated lints.

This issue has been assigned to @OddCoincidence via this comment.

Activity

  1. added
    A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.
    C-cleanupCategory: PRs that clean code up or issues documenting cleanup.
    on May 28, 2020
  2. added
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on May 28, 2020
  3. nikomatsakis commented on May 28, 2020

    @nikomatsakis
    Contributor

    This implementation plan looks good to me -- if you think @LeSeulArtichaut that you'd like to mentor the issue, maybe tag it with E-easy and E-mentor! I'd probably extend the description above with

    • some links into the code to help people find the functions in question
    • a reference to your existing hard-coded support for unsafe_op_in_unsafe_fn lint, which I think is basically the model that we want to follow.
  4. added
    E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
    E-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.
    on May 28, 2020
  5. removed their assignment
    on May 28, 2020
  6. rajatppn commented on May 28, 2020

    @rajatppn

    Hi, I would like to take this up if possible. I'm new to contributing to rust

  7. LeSeulArtichaut commented on May 28, 2020

    @LeSeulArtichaut
    ContributorAuthor

    @rajatppn That's great! I edited the original post to give you links to the code you'll need to edit. I'd recommand that you base your work on #71862 so that you can immediately make changes for unsafe_op_in_unsafe_fn and use that as a test.

  8. LeSeulArtichaut commented on May 29, 2020

    @LeSeulArtichaut
    ContributorAuthor

    Also, to show that you're working on an issue, you can send @rustbot claim, which will assign the issue to you.

  9. OddCoincidence commented on May 30, 2020

    @OddCoincidence
    Contributor

    @rajatppn Are you still working on this? If not, I'd like to claim it.

  10. carsonmyers commented on Jun 3, 2020

    @carsonmyers

    I'm also interested, looking for a first ticket

  11. LeSeulArtichaut commented on Jun 4, 2020

    @LeSeulArtichaut
    ContributorAuthor

    I'll assign this to @OddCoincidence (who opened a PR) for triage purposes.
    @rustbot assign @OddCoincidence

    @carsonmyers Good luck on finding a first issue! If you don't find anything, you can probably go in the Rust Zulip instance and ask for issues, @DPC will probably happily to find you one 😄

  12. self-assigned this
    on Jun 4, 2020
  13. added 3 commits that reference this issue on Jun 6, 2020
    43202b4
    d3cf890
    1ff0ba0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.C-cleanupCategory: PRs that clean code up or issues documenting cleanup.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.E-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.T-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