refactor(tpv): Y 类兜底改 fail-fast(vpi 声明返回/形参 + vpi 类型文本)

新增 GenApi.fatal_error:VpiReader/Converter 等模块级函数无 self.Gen,统一经此报错通道;GenApi._g_gen 为空时回退 Generator._g_gen(Phase 1 vpi 生成早于 BuildPipeline 注入 GenApi._g_gen)。

VpiReader._inject_function_declare/_inject_method_declare 共 4 处:有注解却解析不出类型 → fatal;无注解的 i32 返回/i8* 形参合法默认保留。Converter._PyiTypeStr 未知节点类型不再静默写 int。
This commit is contained in:
TermiNexus committed 2026-09-11 22:46:39 +08:00
1 parent db8220801c
commit 41c5908c5e
3 files changed
+53 -2

No files matched your search

+6 -2
View File
@@ -343,8 +343,12 @@ def _PyiTypeStr(buf: bytes, buf_size: sizet, pos: sizet,
pos = _PyiEmit(buf, buf_size, pos, ")")
return pos
# 未知类型,回退到 int
return _PyiEmit(buf, buf_size, pos, "int")
# [S4 fail-fast] 未知节点类型:不再静默回退 int
# 上面已覆盖 Name/Attribute/Subscript/BinOp/Constant/Tuple/Call;走到此处
# 说明 AST 损坏或出现了未支持的注解形态——静默写 "int" 会生成错误签名,
# 让下游按错误类型解析(真正的类型信息丢失)。
GenApi.fatal_error(annot, "vpi 类型注解节点类型未知", "TypeError")
return _PyiEmit(buf, buf_size, pos, "int") # 不可达(fatal_error 已退出)
# ============================================================