Avoid cloning Name when looking up function and class types (#14092)

This commit is contained in:
Micha Reiser 2024-11-04 15:52:59 +01:00 committed by GitHub
parent a7a78f939c
commit bc0586d922
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 27 additions and 4 deletions

View file

@ -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>);