fix(struct): PARENT_MAX 16→64 修复 Generator 43 父类字段截断

拆分重构使 Generator 父类增至 43 个,PARENT_MAX=16 使 _collect_parents/
set_parent_names 只收前 16 个父类 → StmtGenMixin(#40) 等字段丢失 → 结构体
缺 DiagStmtCount → __init__ 写 self.DiagStmtCount "属性写入失败"。FIELD_MAX
128→256 防字段静默截断;MRO_MAX 16→64 保证父类方法解析可达。两处常量
(HandlesStruct/StructGenMixin)同步提升。
This commit is contained in:
TermiNexus committed 2026-08-19 05:11:51 +08:00
1 parent 46170c20ef
commit cf9207f171
2 files changed
+15 -10

No files matched your search

+6 -4
View File
@@ -35,13 +35,15 @@ import lib.core.Handles.HandlesStruct as HandlesStruct
# 常量(与 HandlesStruct 保持一致)
# ============================================================
STRUCT_MAX: t.CDefine = 512
# 字段槽位上限制(与 HandlesStruct 保持一致;Generator 12 Mixin 展平 ~97 字段,
# 字段槽位上限制(与 HandlesStruct 保持一致;Generator 43 Mixin 展平 ~120 字段,
# 2026-08-16 追加78:64 截断导致第 9+ 父类字段(StmtGenMixin.DiagStmtCount 等)
# 丢失 → __init__ 写 self.DiagStmtCount "属性写入失败")
FIELD_MAX: t.CDefine = 128
FIELD_MAX: t.CDefine = 256
FIELD_NAME_MAX: t.CDefine = 64
PARENT_MAX: t.CDefine = 16
MRO_MAX: t.CDefine = 16
# 多继承(MRO)支持:单类最大父类数 / MRO 链最大长度(Generator 43 父类;
# PARENT_MAX=16 时第 17+ 父类字段丢失 → __init__ 写 self.DiagStmtCount 失败)
PARENT_MAX: t.CDefine = 64
MRO_MAX: t.CDefine = 64
# ============================================================
+9 -6
View File
@@ -28,13 +28,16 @@ import lib.core.VLogger as VLogger
# ============================================================
STRUCT_MAX: t.CDefine = 512
# 字段槽位上限制(Generator 12 Mixin 展平 ~97 字段;2026-08-16 追加78:64
# 截断导致第 9+ 父类字段丢失 → __init__ 写 self.DiagStmtCount "属性写入失败")
FIELD_MAX: t.CDefine = 128
# 字段槽位上限制(Generator 43 Mixin 展平 ~120 字段;2026-08-16 追加78:64
# 截断导致第 9+ 父类字段丢失 → __init__ 写 self.DiagStmtCount "属性写入失败"。
# 拆分重构使 Generator 父类数增至 43,FIELD_MAX 提至 256 防静默截断)
FIELD_MAX: t.CDefine = 256
FIELD_NAME_MAX: t.CDefine = 64
# 多继承(MRO)支持:单类最大父类数 / MRO 链最大长度(Generator 12 父类)
PARENT_MAX: t.CDefine = 16
MRO_MAX: t.CDefine = 16
# 多继承(MRO)支持:单类最大父类数 / MRO 链最大长度(Generator 43 父类;
# PARENT_MAX=16 时 _collect_parents/set_parent_names 只收前 16 个 → 第 17+
# 父类字段丢失 → __init__ 写 self.DiagStmtCount "属性写入失败" 根因)
PARENT_MAX: t.CDefine = 64
MRO_MAX: t.CDefine = 64
# ============================================================