-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
A-lintArea: New lintsArea: New lints
Description
What it does
The new lint(s) would be a generalization of other lints that check for usage of some functions, types, macros, etc.:
-
exitcould be generalized to take a list of functions to check for (including those of the same project, not just the standard library).- Handled now by
disallowed_methods.
- Handled now by
-
todocould be generalized to take a list of macros too.- Handled now by
disallowed_macros.
- Handled now by
-
undocumented_unsafe_blockscould be generalized to other comments apart from// SAFETY: ...(forunsafe_code).// PANIC: ...forpanic,unwrap_used...// CAST: ...foras_conversions(and related ones).- Partially related to
lint_reasons'sreason = "...", Cc @xFrednet.
-
missing_safety_doccould be generalized to# Panicssections (even if it only catches a subset of cases). mem_forgetgives 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
Labels
A-lintArea: New lintsArea: New lints