diff --git a/App/lib/core/Gen/ClassGenBase.vp b/App/lib/core/Gen/ClassGenBase.vp index 78599bf..c1b524e 100644 --- a/App/lib/core/Gen/ClassGenBase.vp +++ b/App/lib/core/Gen/ClassGenBase.vp @@ -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 # ============================================================ diff --git a/App/lib/core/Gen/ClassGenEnum.vp b/App/lib/core/Gen/ClassGenEnum.vp index 2877a70..5cf28a5 100644 --- a/App/lib/core/Gen/ClassGenEnum.vp +++ b/App/lib/core/Gen/ClassGenEnum.vp @@ -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 定义与变体表 # diff --git a/App/lib/core/Gen/ClassGenGeneric.vp b/App/lib/core/Gen/ClassGenGeneric.vp index 3210b68..1a27410 100644 --- a/App/lib/core/Gen/ClassGenGeneric.vp +++ b/App/lib/core/Gen/ClassGenGeneric.vp @@ -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):泛型模板注册/特化/克隆 diff --git a/App/lib/core/Gen/ClassGenVTable.vp b/App/lib/core/Gen/ClassGenVTable.vp index 21f769c..c3f3150 100644 --- a/App/lib/core/Gen/ClassGenVTable.vp +++ b/App/lib/core/Gen/ClassGenVTable.vp @@ -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 收集/生成/方法翻译