Skip to content

Commit dd155d3

Browse files
committed
Improve scope management
1 parent 52be600 commit dd155d3

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

monic/expressions/interpreter.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2642,7 +2642,13 @@ def visit_ClassDef(self, node: ast.ClassDef) -> None:
26422642
# Evaluate base classes
26432643
bases = tuple(self.visit(base) for base in node.bases)
26442644

2645-
namespace: dict[str, t.Any] = {}
2645+
# Create the class namespace
2646+
if saved_env is not None:
2647+
namespace: dict[str, t.Any] = {
2648+
**saved_env,
2649+
}
2650+
else:
2651+
namespace = {}
26462652

26472653
# Add custom super to the class namespace (will be updated after
26482654
# class creation)
@@ -2665,9 +2671,6 @@ def visit_ClassDef(self, node: ast.ClassDef) -> None:
26652671
# Register the class in the current scope
26662672
self._set_name_value(node.name, class_obj)
26672673

2668-
# Also register the class in the global environment
2669-
self.global_env[node.name] = class_obj
2670-
26712674
# Also register the class in the outer scope if we're in a method
26722675
# or if we have a saved environment
26732676
if saved_env is not None:

0 commit comments

Comments
 (0)