fix(gen): 补回拆分时丢失的 6 个常量(枚举/泛型/vtable/元数据)
- ENUM_MEMBER_MAX_LOCAL/RENUM_CLASS_MAX/RENUM_VARIANT_PER_CLASS/RENUM_ALIAS_MAX 补回 ClassGenEnum (未定义名在常量上下文折叠为 0 → 枚举成员收集被静默禁用 → register_enum 永不调用 → EnumTable 恒空 → `OpKind.Add` 裸名 NameError,includes/ast/base.vp L241 根因) - SPEC_CACHE_MAX 补回 ClassGenGeneric(原 HandlesClassDef 定义) - VTBL_METHOD_MAX 补回 ClassGenVTable - META_MAX/META_KEY_LEN 补回 ClassGenBase
This commit is contained in:
1 parent
89995dffde
commit
426bff7daa
4 files changed
+19
No files matched your search
@@ -37,6 +37,9 @@ BUILTIN_EH_VALUE_ERROR: t.CDefine = 1
|
||||
BUILTIN_EH_RUNTIME_ERROR: t.CDefine = 3
|
||||
BUILTIN_EH_EXCEPTION: t.CDefine = 99
|
||||
EH_USER_CODE_START: t.CDefine = 100
|
||||
# 方法元数据表容量(原 HandlesClassDef.META_MAX/META_KEY_LEN,阶段 D 拆分遗漏)
|
||||
META_MAX: t.CDefine = 512
|
||||
META_KEY_LEN: t.CDefine = 128
|
||||
|
||||
|
||||
# ============================================================
|
||||
|
||||
@@ -16,6 +16,18 @@ import lib.core.CompilerFactory as CompilerFactory
|
||||
|
||||
import lib.core.Gen.ClassGenBase as ClassGenBase
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 本地常量副本(原 HandlesEnum.vp / HandlesClassDef.vp 定义,去除 Handles
|
||||
# 层拆分时随文件删除而丢失——未定义名在常量上下文被 TPV 折叠为 0,曾导致
|
||||
# 枚举成员收集被静默跳过、register_enum 永不调用 → 所有 CEnum 注册失败 →
|
||||
# `OpKind.Add` 裸名 NameError(includes/ast/base.vp L241 根因))
|
||||
# ============================================================
|
||||
ENUM_MEMBER_MAX_LOCAL: t.CDefine = 128 # 与 StmtGenDeclMixin.ENUM_MEMBER_MAX 一致
|
||||
RENUM_CLASS_MAX: t.CDefine = 64
|
||||
RENUM_VARIANT_PER_CLASS: t.CDefine = 32
|
||||
RENUM_ALIAS_MAX: t.CDefine = 512
|
||||
|
||||
# ============================================================
|
||||
# ClassGenEnum - ClassGenMixin 拆分(阶段 D):enum/union/renum 定义与变体表
|
||||
#
|
||||
|
||||
@@ -25,6 +25,8 @@ GENERIC_SPEC_MAX_DEPTH: t.CDefine = 64
|
||||
# 泛型模板表容量上限(与 GenericClassNames 等 pool 表可容纳的模板数对齐;
|
||||
# 原 ClassGenMixin 顶层常量,阶段 D 拆分时遗漏,补回)
|
||||
GENERIC_TEMPLATE_MAX: t.CDefine = 512
|
||||
# 泛型特化缓存表容量(原 HandlesClassDef.SPEC_CACHE_MAX,阶段 D 拆分遗漏)
|
||||
SPEC_CACHE_MAX: t.CDefine = 512
|
||||
|
||||
# ============================================================
|
||||
# ClassGenGeneric - ClassGenMixin 拆分(阶段 D):泛型模板注册/特化/克隆
|
||||
|
||||
@@ -20,6 +20,8 @@ import lib.core.Handles.ExprCallTable as ExprCallTable
|
||||
|
||||
# 方法元数据 flag:TLS(@t.TLS 装饰器,对齐 ClassGenBase 本地常量;本地副本避免跨模块 CDefine 查找)
|
||||
META_TLS: t.CDefine = 32
|
||||
# 虚表方法数上限(原 HandlesClassDef.VTBL_METHOD_MAX,阶段 D 拆分遗漏)
|
||||
VTBL_METHOD_MAX: t.CDefine = 32
|
||||
|
||||
# ============================================================
|
||||
# ClassGenVTable - ClassGenMixin 拆分(阶段 D):vtable 收集/生成/方法翻译
|
||||
|
||||
Reference in new issue
Block a user