refactor(gen): P5 对象化迁移完成 - FuncGenMixin/ClassGenMixin 全量迁移+委托层; 泛型模板表迁入 gen 字段; stub 方法 ParamCount 不含 self(修复跨模块方法调用默认参数填充错位); 默认参数快照失败 fail-fast(防悬空 AST UAF); HandlesMatch 改委托 gen._lookup_renum_variant
This commit is contained in:
1 parent
0e4f00baf4
commit
ba3f22702e
10 files changed
+5413
-4504
No files matched your search
@@ -172,20 +172,14 @@ class MatchHandle(HandlesBase.Mixin):
|
||||
|
||||
# ============================================================
|
||||
# _find_renum_class_for_variant - 从变体名反查 REnum 类名
|
||||
#
|
||||
# P5-2 后 REnum 变体表迁入 gen 字段(RenumClassNames/RenumClassCount),
|
||||
# 模块级 _renum_class_* 已失效,统一委托到 gen._lookup_renum_variant。
|
||||
# ============================================================
|
||||
def _find_renum_class_for_variant(self, variant_name: str) -> str:
|
||||
if variant_name is None:
|
||||
return None
|
||||
i: int = 0
|
||||
while i < HandlesClassDef._renum_class_count:
|
||||
cls_nm: str = HandlesClassDef._renum_class_names[i]
|
||||
if cls_nm is not None:
|
||||
tag: int = HandlesClassDef._lookup_renum_variant_in_class(
|
||||
cls_nm, variant_name)
|
||||
if tag >= 0:
|
||||
return cls_nm
|
||||
i = i + 1
|
||||
return None
|
||||
return HandlesClassDef._lookup_renum_variant(variant_name)
|
||||
|
||||
# ============================================================
|
||||
# _has_no_break - 检测 case body 是否含 c.NoBreak() 调用
|
||||
|
||||
Reference in new issue
Block a user