From d448281b33aad60ede9a4dbab0293ecdab6ef3d9 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Wed, 2 Nov 2022 22:10:01 -0400 Subject: [PATCH] Add plugin properties to settings cache key (#559) --- src/flake8_quotes/settings.rs | 4 ++-- src/pep8_naming/settings.rs | 2 +- src/settings/mod.rs | 7 ++++++- src/settings/types.rs | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/flake8_quotes/settings.rs b/src/flake8_quotes/settings.rs index f2a77af750..9263541268 100644 --- a/src/flake8_quotes/settings.rs +++ b/src/flake8_quotes/settings.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)] #[serde(deny_unknown_fields, rename_all = "kebab-case")] pub enum Quote { Single, @@ -18,7 +18,7 @@ pub struct Options { pub avoid_escape: Option, } -#[derive(Debug)] +#[derive(Debug, Hash)] pub struct Settings { pub inline_quotes: Quote, pub multiline_quotes: Quote, diff --git a/src/pep8_naming/settings.rs b/src/pep8_naming/settings.rs index 85ad182311..df16681ee5 100644 --- a/src/pep8_naming/settings.rs +++ b/src/pep8_naming/settings.rs @@ -29,7 +29,7 @@ pub struct Options { pub staticmethod_decorators: Option>, } -#[derive(Debug)] +#[derive(Debug, Hash)] pub struct Settings { pub ignore_names: Vec, pub classmethod_decorators: Vec, diff --git a/src/settings/mod.rs b/src/settings/mod.rs index c2c5999174..ec9ecaf591 100644 --- a/src/settings/mod.rs +++ b/src/settings/mod.rs @@ -84,14 +84,19 @@ impl Settings { impl Hash for Settings { fn hash(&self, state: &mut H) { - self.line_length.hash(state); + // Add base properties in alphabetical order. self.dummy_variable_rgx.as_str().hash(state); for value in self.enabled.iter() { value.hash(state); } + self.line_length.hash(state); for value in self.per_file_ignores.iter() { value.hash(state); } + self.target_version.hash(state); + // Add plugin properties in alphabetical order. + self.flake8_quotes.hash(state); + self.pep8_naming.hash(state); } } diff --git a/src/settings/types.rs b/src/settings/types.rs index e7472d146f..4d391744e6 100644 --- a/src/settings/types.rs +++ b/src/settings/types.rs @@ -11,7 +11,7 @@ use crate::checks::CheckCode; use crate::checks_gen::CheckCodePrefix; use crate::fs; -#[derive(Clone, Debug, PartialOrd, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Clone, Debug, PartialOrd, PartialEq, Eq, Serialize, Deserialize, Hash)] pub enum PythonVersion { Py33, Py34,