diff --git a/crates/ruff/src/registry/rule_set.rs b/crates/ruff/src/registry/rule_set.rs index 65e799314fe7a..8c358fa469837 100644 --- a/crates/ruff/src/registry/rule_set.rs +++ b/crates/ruff/src/registry/rule_set.rs @@ -111,7 +111,7 @@ impl RuleSet { let mut i = 0; while i < self.0.len() { - self.0[i] ^= other.0[i]; + self.0[i] &= !other.0[i]; i += 1; } @@ -362,4 +362,15 @@ mod tests { let expected_rules: Vec<_> = Rule::iter().collect(); assert_eq!(all_rules, expected_rules); } + + #[test] + fn remove_not_existing_rule_from_set() { + let mut set = RuleSet::default(); + + set.remove(Rule::AmbiguousFunctionName); + + assert!(!set.contains(Rule::AmbiguousFunctionName)); + assert!(set.is_empty()); + assert_eq!(set.into_iter().collect::>(), vec![]); + } }