TermiNexus
d0ffb094c2
feat(lifetime): §13 NLL——默认生命期的 new heap 证明帧内封闭时降级为帧对象
StructGenMixin: 新增 NllFrameConfined 及遍历器(_NllStmts/_NllExprUnsafe/_NllMentions/_NllInSet/_NllAdd/_NllCalleeEscMask)+
has_param_escapes(区分"有记录=权威不逃逸"与"无记录=判不定");别名集只增不减故单遍即可,if/while/for 全走、
不进嵌套 def/class;认不出的语句"不提及别名才放行";取址/实参位逃逸/return/长命目标一律按外泄拒绝。
CallGenCtor._new_is_nll_demotable:只降级"堆且未显式指定生命期"的 new;AssignGenMixin.propagate_life
判据成立则 life=FRAME(于是调用点同命裁剪放过 g(l,h)),_slife_note_assign 接 target_name、判据成立按托管堆
对象登记 → 复用 slife 的作用域出口释放(手动 free/del 也会被既有检查挡住)。
三条函数体翻译入口记录 NllCurFunc(谓词要遍历当前函数体),与 traceback 推帧同一处。
注:谓词按 §13.2 保守优先,判不定一律维持 HEAP;本提交未编译验证。
2026-10-09 20:49:21 +08:00
..
2026-10-09 20:40:30 +08:00
2026-10-09 20:40:30 +08:00
2026-10-07 15:16:52 +08:00
2026-10-09 20:49:21 +08:00
2026-10-07 19:10:05 +08:00
2026-10-07 19:59:52 +08:00
2026-10-07 15:16:52 +08:00
2026-10-07 19:59:52 +08:00
2026-10-09 20:40:30 +08:00
2026-10-08 16:38:35 +08:00
2026-10-07 20:15:40 +08:00
2026-10-05 17:38:28 +08:00