进行了优化,减少了上帝结构体的符号表占用

This commit is contained in:
2026-06-18 22:12:14 +08:00
parent d7b98cc9c5
commit 19f2787db0
32 changed files with 1245 additions and 1083 deletions

View File

@@ -80,7 +80,7 @@ class AnnAssignHandle(BaseHandle):
ClassName = CN
break
IsUnion = False
if ClassName and ClassName in self.Trans.SymbolTable:
if ClassName and self.Trans.SymbolTable.has(ClassName):
TypeInfo = self.Trans.SymbolTable[ClassName]
if TypeInfo.IsUnion:
IsUnion = True
@@ -161,7 +161,7 @@ class AnnAssignHandle(BaseHandle):
info = CTypeInfo()
info.IsDefine = True
info.DefineValue = Node.value.value
self.Trans.SymbolTable[VarName] = info
self.Trans.SymbolTable.insert(VarName, info)
Gen._record_var_signedness(VarName, TypeInfo.IsUInt)
return
if TypeInfo.IsStr or (isinstance(Node.annotation, ast.Name) and Node.annotation.id == 'str'):