@@ -2604,16 +2604,18 @@ def bound_super_method(name, current_class=next_class):
26042604
26052605 return custom_super
26062606
2607- def _create_class_namespace (self , node : ast .ClassDef ) -> dict [str , t .Any ]:
2607+ def _create_class_namespace (
2608+ self , node : ast .ClassDef , namespace : dict [str , t .Any ]
2609+ ) -> dict [str , t .Any ]:
26082610 """Create and populate the class namespace.
26092611
26102612 Args:
26112613 node: ClassDef AST node
2614+ namespace: Class namespace
26122615
26132616 Returns:
26142617 The populated class namespace
26152618 """
2616- namespace : dict [str , t .Any ] = {}
26172619
26182620 # Save current environment
26192621 prev_env = self .local_env
@@ -2640,8 +2642,7 @@ def visit_ClassDef(self, node: ast.ClassDef) -> None:
26402642 # Evaluate base classes
26412643 bases = tuple (self .visit (base ) for base in node .bases )
26422644
2643- # Create and populate the class namespace
2644- namespace = self ._create_class_namespace (node )
2645+ namespace : dict [str , t .Any ] = {}
26452646
26462647 # Add custom super to the class namespace (will be updated after
26472648 # class creation)
@@ -2650,6 +2651,9 @@ def visit_ClassDef(self, node: ast.ClassDef) -> None:
26502651 # Set the module name for the class
26512652 namespace ["__module__" ] = "monic.expressions.__namespace__"
26522653
2654+ # Create and populate the class namespace
2655+ namespace = self ._create_class_namespace (node , namespace )
2656+
26532657 # Create the class object
26542658 class_obj = types .new_class (
26552659 node .name , bases , {}, lambda ns : ns .update (namespace )
0 commit comments