fix: switch 语句补 case 块作用域与函数预声明

This commit is contained in:
2026-09-17 19:09:22 +00:00
parent f73f5b8005
commit 3de3b639d9
6 changed files with 199 additions and 47 deletions
+2 -1
View File
@@ -81,7 +81,8 @@ pub struct CompileCtx {
/// (形参 ∪ 函数作用域树内词法声明名):抑制集内名字退化为纯块作用域;预声明期定稿,实例化与声明点写回两侧同查。
pub(crate) block_fn_suppressed: HashSet<String>,
/// 块入口已物化声明登记表(按块层级压/弹):块直接子与标签直接子体
/// 的函数声明在块入口物化闭包后,按 名 → 声明节点 arena 指针 登记。
/// 的函数声明在块入口物化闭包后,按 名 → 声明节点 arena 指针 登记(同名
/// 重复声明只登记首个节点,任一直接子声明点都复用块槽取入口当前值)。
/// 声明点据此三分:同节点命中(本声明已入口物化)→ 复用块槽保闭包
/// 同一;仅同名命中(支臂声明与直接子同名共享块槽)→ 闭包落 fresh
/// 寄存器只写回外层 var、块槽不动;均未命中 → 执行期自物化入块槽。