pub struct Scope {
pub kind: ScopeKind,
pub parent: Option<ScopeId>,
/* private fields */
}Expand description
Single scope: variables and optional main-only data.
Fields§
§kind: ScopeKind§parent: Option<ScopeId>Implementations§
Source§impl Scope
impl Scope
pub fn new_main() -> Scope
pub fn new_child(kind: ScopeKind, parent: ScopeId) -> Scope
pub fn add_variable(&mut self, info: VariableInfo)
pub fn has_variable(&self, name: &str) -> bool
Sourcepub fn variable_names(&self) -> Vec<String>
pub fn variable_names(&self) -> Vec<String>
Variable names in this scope (for LSP completion).
Sourcepub fn global_names(&self) -> Option<Vec<String>>
pub fn global_names(&self) -> Option<Vec<String>>
Global names in this scope (main scope only; for LSP completion).
Sourcepub fn function_names(&self) -> Option<Vec<String>>
pub fn function_names(&self) -> Option<Vec<String>>
Function names in this scope (main scope only; for LSP completion).
Sourcepub fn class_names(&self) -> Option<Vec<String>>
pub fn class_names(&self) -> Option<Vec<String>>
Class names in this scope (main scope only; for LSP completion).
Sourcepub fn add_global(&mut self, name: String)
pub fn add_global(&mut self, name: String)
Add a global name (main scope only).
Sourcepub fn add_function(
&mut self,
name: String,
min_arity: usize,
max_arity: usize,
span: Span,
)
pub fn add_function( &mut self, name: String, min_arity: usize, max_arity: usize, span: Span, )
Add a user function (main scope only). Supports overloads and default params via (min_arity, max_arity).
Sourcepub fn add_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_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 user function with optional param/return types (main scope only).
Sourcepub fn add_class(&mut self, name: String, span: Span)
pub fn add_class(&mut self, name: String, span: Span)
Add a class name (main scope only). Keeps first declaration; span is for duplicate reporting. A non-empty span (e.g. from the document) overwrites an empty one (e.g. from builtins/signatures) so that LSP rename/definition use the real location.
pub fn has_global(&self, name: &str) -> bool
Sourcepub fn function_accepts_arity(&self, name: &str, arity: usize) -> bool
pub fn function_accepts_arity(&self, name: &str, arity: usize) -> bool
True if this scope has a function with the given name that accepts the given arity.
Sourcepub fn get_function_span(&self, name: &str) -> Option<Span>
pub fn get_function_span(&self, name: &str) -> Option<Span>
Span of the first overload for a function name (for go-to-def).
Sourcepub fn get_function_span_for_arity_range(
&self,
name: &str,
min_arity: usize,
max_arity: usize,
) -> Option<Span>
pub fn get_function_span_for_arity_range( &self, name: &str, min_arity: usize, max_arity: usize, ) -> Option<Span>
Span of an existing overload with the same (min_arity, max_arity), if any (for duplicate same-signature).
Sourcepub fn get_function_arity(&self, name: &str) -> Option<usize>
pub fn get_function_arity(&self, name: &str) -> Option<usize>
Legacy: single arity (for resolve symbol). Returns first range’s max if any.
Sourcepub fn get_function_type(
&self,
name: &str,
arity: usize,
) -> Option<(Vec<Type>, Type)>
pub fn get_function_type( &self, name: &str, arity: usize, ) -> Option<(Vec<Type>, Type)>
Get param types and return type for a function call that passes arity arguments, if known.
Sourcepub fn get_function_type_as_value(&self, name: &str) -> Option<Type>
pub fn get_function_type_as_value(&self, name: &str) -> Option<Type>
Get the type of a function when used as a value (e.g. foo without calling).
For a single overload with optional params (min_arity < max_arity), returns a union of
function types per arity, e.g. getMP(entity?) -> integer gives
Function< => integer> | Function<integer => integer>.
Sourcepub fn add_global_with_type(&mut self, name: String, ty: Type)
pub fn add_global_with_type(&mut self, name: String, ty: Type)
Add a global name with type (main scope only). Used when seeding from .sig.
Sourcepub fn get_global_type(&self, name: &str) -> Option<Type>
pub fn get_global_type(&self, name: &str) -> Option<Type>
Get the type of a global, if known (from .sig).
pub fn has_class(&self, name: &str) -> bool
Sourcepub fn get_class_first_span(&self, name: &str) -> Option<Span>
pub fn get_class_first_span(&self, name: &str) -> Option<Span>
First declaration span for a class in this scope (for duplicate diagnostic).
pub fn get_variable(&self, name: &str) -> Option<&VariableInfo>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Scope
impl RefUnwindSafe for Scope
impl Send for Scope
impl Sync for Scope
impl Unpin for Scope
impl UnsafeUnpin for Scope
impl UnwindSafe for Scope
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more