Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_db/src/helpers.rs')
| -rw-r--r-- | crates/ide_db/src/helpers.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/crates/ide_db/src/helpers.rs b/crates/ide_db/src/helpers.rs index aae1fba6e9..97aff0970a 100644 --- a/crates/ide_db/src/helpers.rs +++ b/crates/ide_db/src/helpers.rs @@ -282,3 +282,21 @@ pub fn for_each_break_expr( } } } + +/// Checks if the given lint is equal or is contained by the other lint which may or may not be a group. +pub fn lint_eq_or_in_group(lint: &str, lint_is: &str) -> bool { + if lint == lint_is { + return true; + } + + if let Some(group) = generated_lints::DEFAULT_LINT_GROUPS + .iter() + .chain(generated_lints::CLIPPY_LINT_GROUPS.iter()) + .chain(generated_lints::RUSTDOC_LINT_GROUPS.iter()) + .find(|&check| check.lint.label == lint_is) + { + group.children.contains(&lint) + } else { + false + } +} |