mirror of https://github.com/astral-sh/ruff
Fix bug where selection included deprecated rules during preview
This commit is contained in:
parent
204c000e20
commit
4a5d711a6e
|
|
@ -1235,16 +1235,9 @@ fn deprecated_indirect_redirect() {
|
||||||
.pass_stdin(r###"
|
.pass_stdin(r###"
|
||||||
x = eval(input("Enter a number: "))
|
x = eval(input("Enter a number: "))
|
||||||
"###), @r###"
|
"###), @r###"
|
||||||
success: false
|
success: true
|
||||||
exit_code: 1
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
-:2:5: PGH001 No builtin `eval()` allowed
|
|
||||||
|
|
|
||||||
2 | x = eval(input("Enter a number: "))
|
|
||||||
| ^^^^ PGH001
|
|
||||||
|
|
|
||||||
|
|
||||||
Found 1 error.
|
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
"###);
|
"###);
|
||||||
|
|
@ -1325,16 +1318,9 @@ fn deprecated_indirect_redirect_preview_enabled() {
|
||||||
.pass_stdin(r###"
|
.pass_stdin(r###"
|
||||||
x = eval(input("Enter a number: "))
|
x = eval(input("Enter a number: "))
|
||||||
"###), @r###"
|
"###), @r###"
|
||||||
success: false
|
success: true
|
||||||
exit_code: 1
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
-:2:5: PGH001 No builtin `eval()` allowed
|
|
||||||
|
|
|
||||||
2 | x = eval(input("Enter a number: "))
|
|
||||||
| ^^^^ PGH001
|
|
||||||
|
|
|
||||||
|
|
||||||
Found 1 error.
|
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
"###);
|
"###);
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,7 @@ impl Visitor<'_> for SelectorVisitor {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RuleSelector {
|
impl RuleSelector {
|
||||||
/// Return all matching rules, regardless of whether they're in preview.
|
/// Return all matching rules, regardless of rule group filters like preview and deprecated.
|
||||||
pub fn all_rules(&self) -> impl Iterator<Item = Rule> + '_ {
|
pub fn all_rules(&self) -> impl Iterator<Item = Rule> + '_ {
|
||||||
match self {
|
match self {
|
||||||
RuleSelector::All => RuleSelectorIter::All(Rule::iter()),
|
RuleSelector::All => RuleSelectorIter::All(Rule::iter()),
|
||||||
|
|
@ -233,7 +233,7 @@ impl RuleSelector {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns rules matching the selector, taking into account preview options enabled.
|
/// Returns rules matching the selector, taking into account rule groups like preview and deprecated.
|
||||||
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;
|
||||||
|
|
@ -245,7 +245,7 @@ impl RuleSelector {
|
||||||
|| ((self.is_exact() || matches!(self, RuleSelector::Nursery { .. })) && rule.is_nursery())
|
|| ((self.is_exact() || matches!(self, RuleSelector::Nursery { .. })) && rule.is_nursery())
|
||||||
// Enabling preview includes all preview or nursery rules unless explicit selection
|
// Enabling preview includes all preview or nursery rules unless explicit selection
|
||||||
// is turned on
|
// is turned on
|
||||||
|| (preview_enabled && (self.is_exact() || !preview_require_explicit))
|
|| ((rule.is_preview() || rule.is_nursery()) && preview_enabled && (self.is_exact() || !preview_require_explicit))
|
||||||
// Deprecated rules are excluded in preview mode unless explicitly selected
|
// Deprecated rules are excluded in preview mode unless explicitly selected
|
||||||
|| (rule.is_deprecated() && (!preview_enabled || self.is_exact()))
|
|| (rule.is_deprecated() && (!preview_enabled || self.is_exact()))
|
||||||
// Removed rules are included if explicitly selected but will error downstream
|
// Removed rules are included if explicitly selected but will error downstream
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue