Rename get_self_type, cleanup

This commit is contained in:
David Peter 2025-09-24 17:22:40 +02:00
parent 40ffa0c6da
commit 0b99dfdb90
3 changed files with 8 additions and 7 deletions

View file

@ -52,7 +52,7 @@ use crate::types::function::{
DataclassTransformerParams, FunctionSpans, FunctionType, KnownFunction, DataclassTransformerParams, FunctionSpans, FunctionType, KnownFunction,
}; };
use crate::types::generics::{ use crate::types::generics::{
GenericContext, PartialSpecialization, Specialization, bind_typevar, get_self_type, GenericContext, PartialSpecialization, Specialization, bind_typevar, typing_self,
walk_generic_context, walk_partial_specialization, walk_specialization, walk_generic_context, walk_partial_specialization, walk_specialization,
}; };
pub use crate::types::ide_support::{ pub use crate::types::ide_support::{
@ -5710,7 +5710,7 @@ impl<'db> Type<'db> {
], ],
}); });
}; };
let self_type = get_self_type(db, scope_id, typevar_binding_context, class); let self_type = typing_self(db, scope_id, typevar_binding_context, class);
Ok(self_type.map(Type::NonInferableTypeVar).unwrap_or(*self)) Ok(self_type.map(Type::NonInferableTypeVar).unwrap_or(*self))
} }
SpecialFormType::TypeAlias => Ok(Type::Dynamic(DynamicType::TodoTypeAlias)), SpecialFormType::TypeAlias => Ok(Type::Dynamic(DynamicType::TodoTypeAlias)),

View file

@ -103,7 +103,8 @@ pub(crate) fn bind_typevar<'db>(
}) })
} }
pub(crate) fn get_self_type<'db>( /// Create a `typing.Self` type variable for a given class.
pub(crate) fn typing_self<'db>(
db: &'db dyn Db, db: &'db dyn Db,
scope_id: ScopeId, scope_id: ScopeId,
typevar_binding_context: Option<Definition<'db>>, typevar_binding_context: Option<Definition<'db>>,
@ -112,11 +113,10 @@ pub(crate) fn get_self_type<'db>(
let module = parsed_module(db, scope_id.file(db)).load(db); let module = parsed_module(db, scope_id.file(db)).load(db);
let index = semantic_index(db, scope_id.file(db)); let index = semantic_index(db, scope_id.file(db));
let class_definition = class.definition(db);
let typevar = TypeVarInstance::new( let typevar = TypeVarInstance::new(
db, db,
ast::name::Name::new_static("Self"), ast::name::Name::new_static("Self"),
Some(class_definition), Some(class.definition(db)),
Some( Some(
TypeVarBoundOrConstraints::UpperBound(Type::instance( TypeVarBoundOrConstraints::UpperBound(Type::instance(
db, db,
@ -131,6 +131,7 @@ pub(crate) fn get_self_type<'db>(
None, None,
TypeVarKind::TypingSelf, TypeVarKind::TypingSelf,
); );
bind_typevar( bind_typevar(
db, db,
&module, &module,

View file

@ -22,7 +22,7 @@ use super::{
use crate::semantic_index::definition::Definition; use crate::semantic_index::definition::Definition;
use crate::types::constraints::{ConstraintSet, IteratorConstraintsExtension}; use crate::types::constraints::{ConstraintSet, IteratorConstraintsExtension};
use crate::types::function::FunctionType; use crate::types::function::FunctionType;
use crate::types::generics::{GenericContext, get_self_type, walk_generic_context}; use crate::types::generics::{GenericContext, typing_self, walk_generic_context};
use crate::types::infer::nearest_enclosing_class; use crate::types::infer::nearest_enclosing_class;
use crate::types::{ use crate::types::{
ApplyTypeMappingVisitor, BindingContext, BoundTypeVarInstance, ClassType, ApplyTypeMappingVisitor, BindingContext, BoundTypeVarInstance, ClassType,
@ -1296,7 +1296,7 @@ impl<'db> Parameters<'db> {
let index = semantic_index(db, scope_id.file(db)); let index = semantic_index(db, scope_id.file(db));
let class = nearest_enclosing_class(db, index, scope_id).unwrap(); let class = nearest_enclosing_class(db, index, scope_id).unwrap();
Type::NonInferableTypeVar( Type::NonInferableTypeVar(
get_self_type(db, scope_id, typevar_binding_context, class).unwrap(), typing_self(db, scope_id, typevar_binding_context, class).unwrap(),
) )
.apply_type_mapping( .apply_type_mapping(
db, db,