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:
1 parent
db8220801c
commit
41c5908c5e
3 files changed
+53
-2
No files matched your search
@@ -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 已退出)
|
||||
|
||||
|
||||
# ============================================================
|
||||
|
||||
Reference in new issue
Block a user