mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-27 12:29:28 +00:00
Avoid cloning Name
when looking up function and class types (#14092)
This commit is contained in:
parent
a7a78f939c
commit
bc0586d922
5 changed files with 27 additions and 4 deletions
|
@ -26,13 +26,20 @@ is-macro = { workspace = true }
|
|||
itertools = { workspace = true }
|
||||
memchr = { workspace = true }
|
||||
rustc-hash = { workspace = true }
|
||||
salsa = { workspace = true, optional = true }
|
||||
schemars = { workspace = true, optional = true }
|
||||
serde = { workspace = true, optional = true }
|
||||
|
||||
[features]
|
||||
schemars = ["dep:schemars"]
|
||||
cache = ["dep:ruff_cache", "dep:ruff_macros"]
|
||||
serde = ["dep:serde", "ruff_text_size/serde", "dep:ruff_cache", "compact_str/serde"]
|
||||
serde = [
|
||||
"dep:serde",
|
||||
"ruff_text_size/serde",
|
||||
"dep:ruff_cache",
|
||||
"compact_str/serde",
|
||||
]
|
||||
salsa = ["dep:salsa"]
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
|
|
@ -205,6 +205,21 @@ impl schemars::JsonSchema for Name {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "salsa")]
|
||||
impl salsa::plumbing::interned::Lookup<Name> for &str {
|
||||
fn hash<H: Hasher>(&self, h: &mut H) {
|
||||
std::hash::Hash::hash(self, h);
|
||||
}
|
||||
|
||||
fn eq(&self, data: &Name) -> bool {
|
||||
self == data
|
||||
}
|
||||
|
||||
fn into_owned(self) -> Name {
|
||||
Name::new(self)
|
||||
}
|
||||
}
|
||||
|
||||
/// A representation of a qualified name, like `typing.List`.
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct QualifiedName<'a>(SegmentsVec<'a>);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue