diff --git a/src/bin/ruff.rs b/src/bin/ruff.rs index b74360f97f..5ed99d7ec0 100644 --- a/src/bin/ruff.rs +++ b/src/bin/ruff.rs @@ -116,7 +116,7 @@ fn inner_main() -> Result { let paths: Vec<&Path> = cli.files.iter().map(PathBuf::as_path).collect(); let mut settings = Settings::from_paths(paths)?; if !cli.select.is_empty() { - settings.select(&cli.select); + settings.select(cli.select); } if !cli.ignore.is_empty() { settings.ignore(&cli.ignore); diff --git a/src/settings.rs b/src/settings.rs index e207451630..9c2d2acc1f 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -55,11 +55,16 @@ impl Settings { }) } - pub fn select(&mut self, codes: &[CheckCode]) { - self.select.retain(|code| codes.contains(code)); + pub fn select(&mut self, codes: Vec) { + self.select.clear(); + for code in codes { + self.select.insert(code); + } } pub fn ignore(&mut self, codes: &[CheckCode]) { - self.select.retain(|code| !codes.contains(code)); + for code in codes { + self.select.remove(code); + } } }