From c91edd5629dacb17e31685caf58ab7e07a8781d9 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sun, 18 Oct 2026 13:57:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(stub):=20.vpi=20=E4=BF=9D=E7=95=99=20typede?= =?UTF-8?q?f=20=E5=A3=B0=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit typedef 变量输出为 typedef NAME = 类型,避免生成 NAME: 类型 = 类型 导致加载端不再把 NAME 当类型别名。 --- lib/StubGen/Converter.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/StubGen/Converter.py b/lib/StubGen/Converter.py index d4b1ff5..d5a2e2e 100644 --- a/lib/StubGen/Converter.py +++ b/lib/StubGen/Converter.py @@ -581,9 +581,10 @@ class PythonToStubConverter: # 非宏变量:不加 State # 含有 typedef 的变量不加 extern,普通变量需要加 extern has_typedef: bool = 'CTypedef' in TypeStr or 'typedef' in Markers - if has_typedef and node.value is not None: - ValueTypeStr: str = PythonToStubConverter._GetTypeString(node.value) - lines.append(f'{VarName}: {TypeStr} = {ValueTypeStr}') + if has_typedef: + ValueNode: ast.AST | None = node.value if node.value is not None else node.annotation + ValueTypeStr: str = PythonToStubConverter._GetTypeString(ValueNode) + lines.append(f'typedef {VarName} = {ValueTypeStr}') elif 'extern' in Markers: lines.append(f'extern {VarName}: {TypeStr}') elif 'static' in Markers: