pub struct ScopeStore { /* private fields */ }Expand description
Store for all scopes; root is at index 0.
Implementations§
Source§impl ScopeStore
impl ScopeStore
pub fn new() -> Self
pub fn root_id(&self) -> ScopeId
pub fn get(&self, id: ScopeId) -> Option<&Scope>
pub fn get_mut(&mut self, id: ScopeId) -> Option<&mut Scope>
pub fn push(&mut self, kind: ScopeKind, parent: ScopeId) -> ScopeId
Sourcepub fn add_root_global(&mut self, name: String)
pub fn add_root_global(&mut self, name: String)
Add a global name to the root (main) scope. Used when seeding from signature files.
Sourcepub fn add_root_global_with_type(&mut self, name: String, ty: Type)
pub fn add_root_global_with_type(&mut self, name: String, ty: Type)
Add a global name with type to the root scope. Used when seeding from .sig.
Sourcepub fn add_root_function(
&mut self,
name: String,
min_arity: usize,
max_arity: usize,
span: Span,
)
pub fn add_root_function( &mut self, name: String, min_arity: usize, max_arity: usize, span: Span, )
Add a function to the root (main) scope. Used when seeding from signature files.
Pass Span::new(0, 0) when no source span is available. Optional params (type?) give min_arity < max_arity.
Sourcepub fn add_root_function_with_types(
&mut self,
name: String,
min_arity: usize,
max_arity: usize,
span: Span,
param_types: Option<Vec<Type>>,
return_type: Option<Type>,
)
pub fn add_root_function_with_types( &mut self, name: String, min_arity: usize, max_arity: usize, span: Span, param_types: Option<Vec<Type>>, return_type: Option<Type>, )
Add a function with param/return types to the root scope. Used when seeding from .sig.
Sourcepub fn set_root_function_meta(&mut self, name: String, meta: SigMeta)
pub fn set_root_function_meta(&mut self, name: String, meta: SigMeta)
Set doc and complexity for a root function (from .sig /// and @complexity).
Sourcepub fn set_root_global_meta(&mut self, name: String, meta: SigMeta)
pub fn set_root_global_meta(&mut self, name: String, meta: SigMeta)
Set doc and complexity for a root global (from .sig).
Sourcepub fn get_root_function_meta(&self, name: &str) -> Option<&SigMeta>
pub fn get_root_function_meta(&self, name: &str) -> Option<&SigMeta>
Get doc and complexity for a root function, if any.
Sourcepub fn get_root_global_meta(&self, name: &str) -> Option<&SigMeta>
pub fn get_root_global_meta(&self, name: &str) -> Option<&SigMeta>
Get doc and complexity for a root global, if any.
Sourcepub fn add_root_class(&mut self, name: String, span: Span)
pub fn add_root_class(&mut self, name: String, span: Span)
Add a class name to the root (main) scope. Used for built-ins (e.g. Class).
Pass Span::new(0, 0) when no source span is available.
Sourcepub fn add_class_field(
&mut self,
class_name: &str,
field_name: String,
ty: Type,
visibility: MemberVisibility,
)
pub fn add_class_field( &mut self, class_name: &str, field_name: String, ty: Type, visibility: MemberVisibility, )
Register a class field for member type lookup (this.field_name). Visibility defaults to Public.
Sourcepub fn add_class_method(
&mut self,
class_name: &str,
method_name: String,
param_types: Vec<Type>,
return_type: Type,
visibility: MemberVisibility,
)
pub fn add_class_method( &mut self, class_name: &str, method_name: String, param_types: Vec<Type>, return_type: Type, visibility: MemberVisibility, )
Register a class method for member type lookup (this.method_name returns function type). Visibility defaults to Public.
Sourcepub fn add_class_static_field(
&mut self,
class_name: &str,
field_name: String,
ty: Type,
visibility: MemberVisibility,
)
pub fn add_class_static_field( &mut self, class_name: &str, field_name: String, ty: Type, visibility: MemberVisibility, )
Register a static field (ClassName.staticField).
Sourcepub fn add_class_static_method(
&mut self,
class_name: &str,
method_name: String,
param_types: Vec<Type>,
return_type: Type,
visibility: MemberVisibility,
)
pub fn add_class_static_method( &mut self, class_name: &str, method_name: String, param_types: Vec<Type>, return_type: Type, visibility: MemberVisibility, )
Register a static method (ClassName.staticMethod).
Sourcepub fn get_class_member_type(
&self,
class_name: &str,
member_name: &str,
) -> Option<Type>
pub fn get_class_member_type( &self, class_name: &str, member_name: &str, ) -> Option<Type>
Type of a member (field or method) on a class instance. Returns None if unknown.
Sourcepub fn get_class_static_member_type(
&self,
class_name: &str,
member_name: &str,
) -> Option<Type>
pub fn get_class_static_member_type( &self, class_name: &str, member_name: &str, ) -> Option<Type>
Type of a static member (ClassName.staticField or ClassName.staticMethod). Returns None if unknown.
Sourcepub fn get_class_members(&self, class_name: &str) -> Option<&ClassMembers>
pub fn get_class_members(&self, class_name: &str) -> Option<&ClassMembers>
Class members (instance and static fields/methods) for completion and member access.
Sourcepub fn get_function_type_as_value(
&self,
current: ScopeId,
name: &str,
) -> Option<Type>
pub fn get_function_type_as_value( &self, current: ScopeId, name: &str, ) -> Option<Type>
Get the type of a function when used as a value, searching from current scope up to root.
Sourcepub fn root_has_class(&self, name: &str) -> bool
pub fn root_has_class(&self, name: &str) -> bool
True if the root (main) scope has a class with this name (for fallback type inference).