Files
ViperC/App/lib
TermiNexus c387926977 feat(gen,type): 支持无签名函数指针 t.Callable / t.Callable[] / t.Callable[[]]
三种写法统一解析为 i8*(与带完整签名的 t.Callable[[A,B], Ret] 同表示;函数值按 TPV 惯例 bitcast 为 i8* 存储):

- map_t_type 新增 Callable → Ptr(Int8):裸 t.Callable 此前落空导致 AnnAssign 注解类型解析失败。

- resolve_annotation_type 的 Subscript 分支:slice 为 None 时先放行 Callable(t.Callable[] 走空下标解析),其它类型仍 fail-fast 缺少 slice。

- 新增 _SubscriptAttrIsCallable 判据。

无签名形态不注册返回类型(try_extract_callable_ret 对非 Tuple slice 返回 None)⇒ 只适用于取地址/内联汇编操作数,不作编译器间接调用。
2026-09-27 12:25:52 +08:00
..