From 7e00eac94303370d4d01d39518f4a488a86f6b15 Mon Sep 17 00:00:00 2001 From: Yiping Kang Date: Wed, 25 Sep 2024 17:59:51 -0400 Subject: [PATCH] Remove node from seminfo to prevent possible maximum recursion upon pickling --- jac/jaclang/compiler/semtable.py | 8 ++++---- jac/jaclang/runtimelib/importer.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jac/jaclang/compiler/semtable.py b/jac/jaclang/compiler/semtable.py index cf2e874c93..77033e60a4 100644 --- a/jac/jaclang/compiler/semtable.py +++ b/jac/jaclang/compiler/semtable.py @@ -19,13 +19,13 @@ def __init__( self, node: ast.AstNode, name: str, - type: Optional[str] = None, + type_str: Optional[str] = None, semstr: str = "", ) -> None: """Initialize the class.""" - self.node = node + self.node_type = type(node) self.name = name - self.type = type + self.type = type_str self.semstr = semstr def __repr__(self) -> str: @@ -40,7 +40,7 @@ def get_children( self_scope = str(scope) + f".{self.name}({self.type})" _, children = sem_registry.lookup(scope=SemScope.get_scope_from_str(self_scope)) if filter and children and isinstance(children, list): - return [i for i in children if isinstance(i.node, filter)] + return [i for i in children if i.node_type == filter] return children if children and isinstance(children, list) else [] diff --git a/jac/jaclang/runtimelib/importer.py b/jac/jaclang/runtimelib/importer.py index e41c1c5782..1e91b25b2c 100644 --- a/jac/jaclang/runtimelib/importer.py +++ b/jac/jaclang/runtimelib/importer.py @@ -362,4 +362,4 @@ def run_import( lang=spec.language, ) self.result = import_return - return self.result \ No newline at end of file + return self.result