[red-knot] Simplify object out of intersections (#15511)

This commit is contained in:
Alex Waygood 2025-01-15 20:06:48 +00:00 committed by GitHub
parent c9b99e4bee
commit 49557a9129
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 26 additions and 7 deletions

View file

@ -284,10 +284,16 @@ impl<'db> InnerIntersectionBuilder<'db> {
}
}
_ => {
let addition_is_bool_instance = new_positive
let known_instance = new_positive
.into_instance()
.and_then(|instance| instance.class.known(db))
.is_some_and(KnownClass::is_bool);
.and_then(|instance| instance.class.known(db));
if known_instance == Some(KnownClass::Object) {
// `object & T` -> `T`; it is always redundant to add `object` to an intersection
return;
}
let addition_is_bool_instance = known_instance == Some(KnownClass::Bool);
for (index, existing_positive) in self.positive.iter().enumerate() {
match existing_positive {