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:
1 parent
46170c20ef
commit
cf9207f171
2 files changed
+15
-10
No files matched your search
@@ -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
|
||||
|
||||
|
||||
# ============================================================
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
# ============================================================
|
||||
|
||||
Reference in new issue
Block a user