class_member_from_mro is it working?

This commit is contained in:
Jack O'Connor 2025-08-19 17:42:45 -07:00
parent 83e3e67cd7
commit a88517f13b
1 changed files with 36 additions and 0 deletions

View File

@ -657,6 +657,18 @@ impl<'db> ClassType<'db> {
singleton.class_member_inner(db, specialization, name, policy)
}
pub(super) fn class_member_from_mro(
self,
db: &'db dyn Db,
name: &str,
policy: MemberLookupPolicy,
mro_iter: impl Iterator<Item = ClassBase<'db>>,
) -> PlaceAndQualifiers<'db> {
// TODO: Is this correct?
let (singleton, _) = self.class_singleton(db);
singleton.class_member_from_mro(db, name, policy, mro_iter)
}
/// Returns the inferred type of the class member named `name`. Only bound members
/// or those marked as `ClassVars` are considered.
///
@ -1311,6 +1323,19 @@ impl<'db> ClassSingletonType<'db> {
self.class_member_from_mro(db, name, policy, self.iter_mro(db, specialization))
}
pub(super) fn class_member_from_mro(
self,
db: &'db dyn Db,
name: &str,
policy: MemberLookupPolicy,
mro_iter: impl Iterator<Item = ClassBase<'db>>,
) -> PlaceAndQualifiers<'db> {
match self {
Self::Literal(literal) => literal.class_member_from_mro(db, name, policy, mro_iter),
Self::NewType(new_type) => new_type.class_member_from_mro(db, name, policy, mro_iter),
}
}
pub(super) fn own_class_member(
self,
db: &'db dyn Db,
@ -3238,6 +3263,17 @@ impl<'db> NewTypeClass<'db> {
.class_member_inner(db, specialization, name, policy)
}
pub(super) fn class_member_from_mro(
self,
db: &'db dyn Db,
name: &str,
policy: MemberLookupPolicy,
mro_iter: impl Iterator<Item = ClassBase<'db>>,
) -> PlaceAndQualifiers<'db> {
self.parent(db)
.class_member_from_mro(db, name, policy, mro_iter)
}
pub(super) fn own_class_member(
self,
db: &'db dyn Db,