mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-30 05:44:56 +00:00
Added ignoring deprecated rules for --select=ALL (#10497)
Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
parent
9e8a45f343
commit
c46ae3a3cf
1 changed files with 17 additions and 9 deletions
|
@ -5,8 +5,8 @@ use serde::{Deserialize, Serialize};
|
||||||
use strum::IntoEnumIterator;
|
use strum::IntoEnumIterator;
|
||||||
use strum_macros::EnumIter;
|
use strum_macros::EnumIter;
|
||||||
|
|
||||||
use crate::codes::RuleCodePrefix;
|
|
||||||
use crate::codes::RuleIter;
|
use crate::codes::RuleIter;
|
||||||
|
use crate::codes::{RuleCodePrefix, RuleGroup};
|
||||||
use crate::registry::{Linter, Rule, RuleNamespace};
|
use crate::registry::{Linter, Rule, RuleNamespace};
|
||||||
use crate::rule_redirects::get_redirect;
|
use crate::rule_redirects::get_redirect;
|
||||||
use crate::settings::types::PreviewMode;
|
use crate::settings::types::PreviewMode;
|
||||||
|
@ -205,15 +205,23 @@ impl RuleSelector {
|
||||||
pub fn rules<'a>(&'a self, preview: &PreviewOptions) -> impl Iterator<Item = Rule> + 'a {
|
pub fn rules<'a>(&'a self, preview: &PreviewOptions) -> impl Iterator<Item = Rule> + 'a {
|
||||||
let preview_enabled = preview.mode.is_enabled();
|
let preview_enabled = preview.mode.is_enabled();
|
||||||
let preview_require_explicit = preview.require_explicit;
|
let preview_require_explicit = preview.require_explicit;
|
||||||
|
|
||||||
self.all_rules().filter(move |rule| {
|
self.all_rules().filter(move |rule| {
|
||||||
// Always include stable rules
|
match rule.group() {
|
||||||
rule.is_stable()
|
// Always include stable rules
|
||||||
// Enabling preview includes all preview rules unless explicit selection is turned on
|
RuleGroup::Stable => true,
|
||||||
|| (rule.is_preview() && preview_enabled && (self.is_exact() || !preview_require_explicit))
|
// Enabling preview includes all preview rules unless explicit selection is turned on
|
||||||
// Deprecated rules are excluded in preview mode unless explicitly selected
|
RuleGroup::Preview => {
|
||||||
|| (rule.is_deprecated() && (!preview_enabled || self.is_exact()))
|
preview_enabled && (self.is_exact() || !preview_require_explicit)
|
||||||
// Removed rules are included if explicitly selected but will error downstream
|
}
|
||||||
|| (rule.is_removed() && self.is_exact())
|
// Deprecated rules are excluded in preview mode and with 'All' option unless explicitly selected
|
||||||
|
RuleGroup::Deprecated => {
|
||||||
|
(!preview_enabled || self.is_exact())
|
||||||
|
&& !matches!(self, RuleSelector::All { .. })
|
||||||
|
}
|
||||||
|
// Removed rules are included if explicitly selected but will error downstream
|
||||||
|
RuleGroup::Removed => self.is_exact(),
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue