fix(handles): HandlesClassDef 6 个 _is_* 委托补 trans 参数

ClassGenDef 调用 _is_enum_class/_is_union_class/_is_renum_class(cd, trans)
传 2 参,但委托定义只有 1 参(cd)→ TPC 报 '传入了 2 个参数,但函数
只需要 1 个参数'。统一补齐 _is_cenum_base/_is_enum_class/_is_cunion_base/
_is_union_class/_is_crenum_base/_is_renum_class 的 trans 默认参数并透传。
This commit is contained in:
TermiNexus committed 2026-08-17 07:38:09 +08:00
1 parent 54fa8b46c8
commit 50db55fd08
1 file changed
+18 -12
+18 -12
View File
@@ -64,24 +64,26 @@ RENUM_FIELD_PER_VARIANT: t.CDefine = 16
#
# 支持 Name(id='CEnum') 和 Attribute(value=Name('t'), attr='CEnum')
# ============================================================
def _is_cenum_base(base_node: ast.AST | t.CPtr) -> int:
def _is_cenum_base(base_node: ast.AST | t.CPtr,
trans: HT.Translator | t.CPtr = None) -> int:
"""检查 base 节点是否为 t.CEnum,返回 1=是 / 0=否(委托到 gen._is_cenum_base)"""
import lib.core.Gen.Generator as Generator
g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr))
if g is not None:
return g._is_cenum_base(base_node)
return g._is_cenum_base(base_node, trans)
return 0
# ============================================================
# _is_enum_class — 检查 ClassDef 是否继承自 t.CEnum
# ============================================================
def _is_enum_class(cd: ast.ClassDef | t.CPtr) -> int:
def _is_enum_class(cd: ast.ClassDef | t.CPtr,
trans: HT.Translator | t.CPtr = None) -> int:
"""检查 ClassDef 是否继承自 t.CEnum,返回 1=是 / 0=否(委托到 gen._is_enum_class)"""
import lib.core.Gen.Generator as Generator
g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr))
if g is not None:
return g._is_enum_class(cd)
return g._is_enum_class(cd, trans)
return 0
@@ -90,24 +92,26 @@ def _is_enum_class(cd: ast.ClassDef | t.CPtr) -> int:
#
# 支持 Name(id='CUnion') 和 Attribute(value=Name('t'), attr='CUnion')
# ============================================================
def _is_cunion_base(base_node: ast.AST | t.CPtr) -> int:
def _is_cunion_base(base_node: ast.AST | t.CPtr,
trans: HT.Translator | t.CPtr = None) -> int:
"""检查 base 节点是否为 t.CUnion,返回 1=是 / 0=否(委托到 gen._is_cunion_base)"""
import lib.core.Gen.Generator as Generator
g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr))
if g is not None:
return g._is_cunion_base(base_node)
return g._is_cunion_base(base_node, trans)
return 0
# ============================================================
# _is_union_class — 检查 ClassDef 是否继承自 t.CUnion
# ============================================================
def _is_union_class(cd: ast.ClassDef | t.CPtr) -> int:
def _is_union_class(cd: ast.ClassDef | t.CPtr,
trans: HT.Translator | t.CPtr = None) -> int:
"""检查 ClassDef 是否继承自 t.CUnion,返回 1=是 / 0=否(委托到 gen._is_union_class)"""
import lib.core.Gen.Generator as Generator
g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr))
if g is not None:
return g._is_union_class(cd)
return g._is_union_class(cd, trans)
return 0
@@ -116,24 +120,26 @@ def _is_union_class(cd: ast.ClassDef | t.CPtr) -> int:
#
# 支持 Name(id='REnum') 和 Attribute(value=Name('t'), attr='REnum')
# ============================================================
def _is_crenum_base(base_node: ast.AST | t.CPtr) -> int:
def _is_crenum_base(base_node: ast.AST | t.CPtr,
trans: HT.Translator | t.CPtr = None) -> int:
"""检查 base 节点是否为 t.REnum,返回 1=是 / 0=否(委托到 gen._is_crenum_base)"""
import lib.core.Gen.Generator as Generator
g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr))
if g is not None:
return g._is_crenum_base(base_node)
return g._is_crenum_base(base_node, trans)
return 0
# ============================================================
# _is_renum_class — 检查 ClassDef 是否继承自 t.REnum
# ============================================================
def _is_renum_class(cd: ast.ClassDef | t.CPtr) -> int:
def _is_renum_class(cd: ast.ClassDef | t.CPtr,
trans: HT.Translator | t.CPtr = None) -> int:
"""检查 ClassDef 是否继承自 t.REnum,返回 1=是 / 0=否(委托到 gen._is_renum_class)"""
import lib.core.Gen.Generator as Generator
g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr))
if g is not None:
return g._is_renum_class(cd)
return g._is_renum_class(cd, trans)
return 0