Skip to content

New lint: generalize exit, todo, mem_forget, etc. #8031

Open
@ojeda

Description

@ojeda

What it does

The new lint(s) would be a generalization of other lints that check for usage of some functions, types, macros, etc.:

  • exit could be generalized to take a list of functions to check for (including those of the same project, not just the standard library).
  • todo could be generalized to take a list of macros too.
  • undocumented_unsafe_blocks could be generalized to other comments apart from // SAFETY: ... (for unsafe_code).
  • missing_safety_doc could be generalized to # Panics sections (even if it only catches a subset of cases).
  • mem_forget gives another idea for generalization: for each function in the list, optionally give a list of traits to check to (not) be implemented for their arguments.
  • It could also be generalized to take paths only or do the matching textually (possibly including regex support).

etc. It would be a continuation of other lints such as disallowed_methods and disallowed_types.

The new lint(s) would be useful for big projects that may want to avoid particular items coming from dependencies, or to discourage their usage in general (requiring an explicit allow), or to deprecate certain items (while keeping existing ones), etc.

Categories (optional)

  • Kind: restriction.

Drawbacks

None (since projects would be responsible for the lists).

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lintArea: New lints

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions