Skip to content

class_members

Resolve declared and effective class members, then finish class-definition analysis from the normalized declaration metadata.

Classes:

DeclarationClassMemberVisitorMixin

Bases: DeclarationClassMethodVisitorMixin

Methods:

visit

visit(node: ClassDefStmt) -> None
Source code in packages/irx/src/irx/analysis/handlers/_declarations/class_members.py
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
@SemanticAnalyzerCore.visit.dispatch
def visit(self, node: astx.ClassDefStmt) -> None:
    """
    title: Visit ClassDefStmt nodes.
    parameters:
      node:
        type: astx.ClassDefStmt
    """
    class_ = self.registry.register_class(node)
    self.bindings.bind_class(node.name, class_, node=node)
    with self.context.in_class(class_):
        class_ = self._resolve_class_definition(class_)
    with self.context.in_class(class_):
        for member in class_.declared_members:
            if member.kind is not ClassMemberKind.METHOD:
                continue
            self._analyze_class_method_body(class_, member)
    self._set_class(node, class_)
    self._set_type(node, None)