mirror of https://github.com/astral-sh/ruff
[ty] Avoid caching trivial is-redundant-with calls (#21989)
This commit is contained in:
parent
4e1cf5747a
commit
1df6544ad8
|
|
@ -1987,10 +1987,23 @@ impl<'db> Type<'db> {
|
||||||
/// Return `true` if it would be redundant to add `self` to a union that already contains `other`.
|
/// Return `true` if it would be redundant to add `self` to a union that already contains `other`.
|
||||||
///
|
///
|
||||||
/// See [`TypeRelation::Redundancy`] for more details.
|
/// See [`TypeRelation::Redundancy`] for more details.
|
||||||
#[salsa::tracked(cycle_initial=is_redundant_with_cycle_initial, heap_size=ruff_memory_usage::heap_size)]
|
|
||||||
pub(crate) fn is_redundant_with(self, db: &'db dyn Db, other: Type<'db>) -> bool {
|
pub(crate) fn is_redundant_with(self, db: &'db dyn Db, other: Type<'db>) -> bool {
|
||||||
self.has_relation_to(db, other, InferableTypeVars::None, TypeRelation::Redundancy)
|
#[salsa::tracked(cycle_initial=is_redundant_with_cycle_initial, heap_size=ruff_memory_usage::heap_size)]
|
||||||
.is_always_satisfied(db)
|
fn is_redundant_with_impl<'db>(
|
||||||
|
db: &'db dyn Db,
|
||||||
|
self_ty: Type<'db>,
|
||||||
|
other: Type<'db>,
|
||||||
|
) -> bool {
|
||||||
|
self_ty
|
||||||
|
.has_relation_to(db, other, InferableTypeVars::None, TypeRelation::Redundancy)
|
||||||
|
.is_always_satisfied(db)
|
||||||
|
}
|
||||||
|
|
||||||
|
if self == other {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
is_redundant_with_impl(db, self, other)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn has_relation_to(
|
fn has_relation_to(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue