From 50db55fd08a6c877610ed9983ce38e3bd93ad45c Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Mon, 17 Aug 2026 07:38:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(handles):=20HandlesClassDef=206=20=E4=B8=AA?= =?UTF-8?q?=20=5Fis=5F*=20=E5=A7=94=E6=89=98=E8=A1=A5=20trans=20=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 默认参数并透传。 --- App/lib/core/Handles/HandlesClassDef.vp | 30 +++++++++++++++---------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/App/lib/core/Handles/HandlesClassDef.vp b/App/lib/core/Handles/HandlesClassDef.vp index 2b93577..cf2a4a7 100644 --- a/App/lib/core/Handles/HandlesClassDef.vp +++ b/App/lib/core/Handles/HandlesClassDef.vp @@ -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