TermiNexus
ea57986312
fix(gen): lambda 提升函数按 body 类型修正返回类型(原先恒 i32)
translate_lambda 第 4 步创建提升函数时只能先写 i32(body 尚未翻译);第 11 步原来把
body 值一律 coerce_to_type 到 i32,于是:
- body 返回指针 → 撞 CastError(implicit pointer-to-integer conversion is forbidden);
- body 返回浮点 → fptosi 成 i32(静默有损)。
现按 body 的实际类型修正 func.RetTy(mlirlite 公开字段;本步之后才发 ret,期间无人读
RetTy;调用点读到的已是修正后的签名):
- 指针 → RetTy = body 类型,直接 ret(不再强转);
- 浮点 → 同上(不再 fptosi);
- 整数/其它 → 保持既有 i32 语义(与"无注解嵌套 def 保持 i32"同口径,避免改动既有行为)。
与嵌套 def 的返回类型缺口同类(见上一提交)。
2026-10-10 10:44:07 +08:00
..
2026-10-07 00:03:58 +08:00
2026-10-10 10:44:07 +08:00
2026-10-05 13:38:22 +08:00
2026-10-05 13:38:22 +08:00
2026-10-09 19:32:54 +08:00
2026-10-07 00:03:58 +08:00
2026-10-07 00:03:58 +08:00
2026-10-07 00:03:58 +08:00