fix(match): default case body 的 dbody 类型推断退化 list[int] 截断指针

dbody = dmc.children(普通赋值)触发 TPC 对跨模块属性访问
ast.MatchCase.children 的 RHS 类型推断,失败时静默退化为 list[int],
dbody.get() 被编译成 list[int].get(返回 i32),AST 节点指针被截断为
0x0000c1120bd0 → translate_stmt 读 vtable 崩溃(EnumTest RENUM match ASan)。

与 case body 循环(body_list 用带注解 AnnAssign,类型稳定正确)对照,
default 块改用带注解的 AnnAssign 中转(dbody2)保持
list[ast.AST | t.CPtr] 类型。三处同型修复(_handle_renum_match /
_handle_sequence_match / _handle_tuple_match)。
This commit is contained in:
TermiNexus committed 2026-08-21 08:46:45 +08:00
1 parent 426bff7daa
commit f0a70748d7
1 file changed
+1307 -1304
File diff suppressed because it is too large. Load diff