Use Never instead of None for stores (#13984)

## Summary

See:
https://github.com/astral-sh/ruff/pull/13981#issuecomment-2445472433
This commit is contained in:
Charlie Marsh 2024-10-30 12:03:50 -04:00 committed by GitHub
parent 262c04f297
commit b1ce8a3949
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 22 deletions

View file

@ -1414,11 +1414,11 @@ impl<'db> TypeInferenceBuilder<'db> {
// Resolve the target type, assuming a load context.
let target_type = match &**target {
Expr::Name(name) => {
self.store_expression_type(target, Type::None);
self.store_expression_type(target, Type::Never);
self.infer_name_load(name)
}
Expr::Attribute(attr) => {
self.store_expression_type(target, Type::None);
self.store_expression_type(target, Type::Never);
self.infer_attribute_load(attr)
}
_ => self.infer_expression(target),
@ -2506,7 +2506,7 @@ impl<'db> TypeInferenceBuilder<'db> {
fn infer_name_expression(&mut self, name: &ast::ExprName) -> Type<'db> {
match name.ctx {
ExprContext::Load => self.infer_name_load(name),
ExprContext::Store | ExprContext::Del => Type::None,
ExprContext::Store | ExprContext::Del => Type::Never,
ExprContext::Invalid => Type::Unknown,
}
}
@ -2536,7 +2536,7 @@ impl<'db> TypeInferenceBuilder<'db> {
ExprContext::Load => self.infer_attribute_load(attribute),
ExprContext::Store | ExprContext::Del => {
self.infer_expression(value);
Type::None
Type::Never
}
ExprContext::Invalid => {
self.infer_expression(value);