fix(gen): fatal_error 后补 return 样板,修复属性访问/写入掉出末尾

translate_attribute 与 get_attribute_ptr 的 match 末 arm(case _)调
fatal_error 后无 return None → 块未 terminated → 该 arm 被 match 收尾
误判掉出 → br end_bb → merge 可达 → 方法收尾 fail-fast '流程掉出末尾'
(返回类型 Value*)。补显式 return None(块设计约定:fatal_error 后也
必须保证块 terminated)。
This commit is contained in:
TermiNexus committed 2026-08-19 04:58:12 +08:00
1 parent d766eaf656
commit 6d627d67cf
1 file changed
+6 -1
+6 -1
View File
@@ -874,6 +874,9 @@ class ExprGenAttr(ExprGenBase.ExprGenBase):
at,
f"属性访问失败: .{attr_nm_ap} (base=非指针类型,无法做属性访问 sha1={sha1_ap}:{ln_ap})",
"TypeError")
# fatal_error 后补显式 return 样板:match 末 arm 块必须 terminated,
# 否则掉出末尾被函数收尾 fail-fast 误判(块设计约定)
return None
# ============================================================
# 获取属性访问的字段指针(不加载值,用于赋值)
# 对于 Name 类型的 obj,直接使用 alloca 指针(不 load 结构体)
@@ -1143,4 +1146,6 @@ class ExprGenAttr(ExprGenBase.ExprGenBase):
HandlesType.fatal_error(
at,
f"属性写入失败: .{attr_nm_gp} (base=非指针类型,无法做属性写入 sha1={sha1_gp}:{ln_gp})",
"TypeError")
"TypeError")
# fatal_error 后补显式 return 样板:match 末 arm 块必须 terminated
return None