mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 11:11:11 +08:00
feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复)
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
use crate::symbol_table::SymbolTable;
|
||||
use crate::LabelScope;
|
||||
use oxide_ir::operand::LabelId;
|
||||
use oxide_parser::MethodDefinitionKind;
|
||||
|
||||
/// 跳转目标 / 标签语句解析状态。
|
||||
pub(crate) struct LabelCtx {
|
||||
@@ -41,6 +42,11 @@ pub(crate) struct ScopeCtx {
|
||||
pub(crate) symbols: SymbolTable,
|
||||
pub(crate) builtin_reg_map: Vec<(String, u32)>,
|
||||
pub(crate) private_name_map: Vec<(String, u32)>,
|
||||
/// 私有元素类型(name, kind,static 标志)。kind=None 表示字段;
|
||||
/// instance 字段的私有访问走 PrivateFieldFind 原型链查找,不加 brand 检查。
|
||||
pub(crate) private_element_kinds: Vec<(String, Option<MethodDefinitionKind>, bool)>,
|
||||
/// 当前类的私有 brand 私有名 id:私有方法/访问器访问时对实例做 brand 检查。
|
||||
pub(crate) private_brand_id: Option<u32>,
|
||||
pub(crate) next_private_name_id: u32,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user