变量引用
语法
变量引用使用普通标识符表达。
语义
它从当前作用域查找绑定,并产生对应值或能力。
名字解析遵循从内到外的词法作用域规则;局部绑定优先于外层绑定,显式导入名再与顶层可见名字共同参与解析。
shadowing 在 level-1 中是允许的顺序行为,而不是默认错误。
Usage
let x = 1
{
let x = 2
write(x)
}
write(x)
注释:内层 x 会 shadow 外层 x;变量引用总是先命中最近的合法绑定。
边界
是否为 shadowing 提供 warning 属于实现诊断策略;但语义上,shadowing 本身是允许的。