[red-knot] Eliminate `None` in equality-comparison narrowing

This commit is contained in:
David Peter 2025-04-22 21:47:27 +02:00
parent 3872d57463
commit 242d9b163d
1 changed files with 5 additions and 0 deletions

View File

@ -446,6 +446,11 @@ impl<'db> NarrowingConstraintsBuilder<'db> {
}
}
ast::CmpOp::Eq if lhs_ty.is_literal_string() => Some(rhs_ty),
ast::CmpOp::Eq if !rhs_ty.is_none(self.db) => Some(
IntersectionBuilder::new(self.db)
.add_negative(Type::none(self.db))
.build(),
),
ast::CmpOp::In => self.evaluate_expr_in(lhs_ty, rhs_ty),
ast::CmpOp::NotIn => self
.evaluate_expr_in(lhs_ty, rhs_ty)