diff --git a/crates/ruff_linter/Cargo.toml b/crates/ruff_linter/Cargo.toml index ab75f5a2be..e1827d83ea 100644 --- a/crates/ruff_linter/Cargo.toml +++ b/crates/ruff_linter/Cargo.toml @@ -17,7 +17,7 @@ ruff_cache = { workspace = true } ruff_diagnostics = { workspace = true, features = ["serde"] } ruff_notebook = { workspace = true } ruff_macros = { workspace = true } -ruff_python_ast = { workspace = true, features = ["serde"] } +ruff_python_ast = { workspace = true, features = ["serde", "cache"] } ruff_python_codegen = { workspace = true } ruff_python_index = { workspace = true } ruff_python_literal = { workspace = true } @@ -79,7 +79,7 @@ colored = { workspace = true, features = ["no-color"] } [features] default = [] -schemars = ["dep:schemars"] +schemars = ["dep:schemars", "ruff_python_ast/schemars"] # Enables rules for internal integration tests test-rules = [] diff --git a/crates/ruff_python_ast/Cargo.toml b/crates/ruff_python_ast/Cargo.toml index bd41c71b67..401f56975c 100644 --- a/crates/ruff_python_ast/Cargo.toml +++ b/crates/ruff_python_ast/Cargo.toml @@ -30,7 +30,9 @@ serde = { workspace = true, optional = true } compact_str = { workspace = true } [features] -serde = ["dep:serde", "ruff_text_size/serde", "dep:ruff_cache", "compact_str/serde", "dep:ruff_macros", "dep:schemars"] +schemars = ["dep:schemars"] +cache = ["dep:ruff_cache", "dep:ruff_macros"] +serde = ["dep:serde", "ruff_text_size/serde", "dep:ruff_cache", "compact_str/serde"] [lints] workspace = true diff --git a/crates/ruff_python_ast/src/name.rs b/crates/ruff_python_ast/src/name.rs index 6c008da1a2..744ab7d055 100644 --- a/crates/ruff_python_ast/src/name.rs +++ b/crates/ruff_python_ast/src/name.rs @@ -6,10 +6,8 @@ use std::ops::Deref; use crate::{nodes, Expr}; #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] -#[cfg_attr( - feature = "serde", - derive(serde::Serialize, serde::Deserialize, ruff_macros::CacheKey) -)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "cache", derive(ruff_macros::CacheKey))] pub struct Name(compact_str::CompactString); impl Name { @@ -179,7 +177,7 @@ impl PartialEq for &String { } } -#[cfg(feature = "serde")] +#[cfg(feature = "schemars")] impl schemars::JsonSchema for Name { fn is_referenceable() -> bool { String::is_referenceable()