pub struct SymbolRefDbForModule {
pub flags: FxHashMap<SymbolId, SymbolRefFlags>,
pub classic_data: IndexVec<SymbolId, SymbolRefDataClassic>,
/* private fields */
}Fields§
§flags: FxHashMap<SymbolId, SymbolRefFlags>§classic_data: IndexVec<SymbolId, SymbolRefDataClassic>Implementations§
Source§impl SymbolRefDbForModule
impl SymbolRefDbForModule
pub fn new( symbol_table: SymbolTable, owner_idx: ModuleIdx, top_level_scope_id: ScopeId, ) -> Self
pub fn create_facade_root_symbol_ref(&mut self, name: &str) -> SymbolRef
Sourcepub fn create_symbol(&mut self)
👎Deprecated: Use create_facade_root_symbol_ref instead
pub fn create_symbol(&mut self)
create_facade_root_symbol_ref insteadThis method is used to hide the SymbolTable::create_symbol method since
SymbolRefDbForModule impl Deref for SymbolTable.
Methods from Deref<Target = SymbolTable>§
pub fn names(&self) -> impl Iterator<Item = &str>
pub fn resolved_references(&self) -> impl Iterator<Item = &Vec<'_, ReferenceId>>
Sourcepub fn symbol_ids(&self) -> impl Iterator<Item = SymbolId>
pub fn symbol_ids(&self) -> impl Iterator<Item = SymbolId>
Iterate over all symbol IDs in this table.
Use ScopeTree::iter_bindings_in to only iterate over symbols declared in a specific
scope.
§Example
use oxc_semantic::Semantic;
let semantic: Semantic<'_> = parse_and_analyze("./foo.js");
let classes = semantic
.scopes()
.symbol_ids()
.filter(|&symbol_id| {
let flags = semantic.symbols().get_flags(symbol_id);
flags.is_class()
})
.collect::<Vec<_>>();Sourcepub fn get_name(&self, symbol_id: SymbolId) -> &str
pub fn get_name(&self, symbol_id: SymbolId) -> &str
Get the identifier name a symbol is bound to.
Sourcepub fn set_name(&mut self, symbol_id: SymbolId, name: &str) -> &str
pub fn set_name(&mut self, symbol_id: SymbolId, name: &str) -> &str
Rename a symbol.
Returns the old name.
Sourcepub fn get_flags(&self, symbol_id: SymbolId) -> SymbolFlags
pub fn get_flags(&self, symbol_id: SymbolId) -> SymbolFlags
Get the SymbolFlags for a symbol, which describe how the symbol is declared.
To find how a symbol is used, use SymbolTable::get_resolved_references.
Sourcepub fn get_flags_mut(&mut self, symbol_id: SymbolId) -> &mut SymbolFlags
pub fn get_flags_mut(&mut self, symbol_id: SymbolId) -> &mut SymbolFlags
Get a mutable reference to a symbol’s flags.
pub fn get_redeclarations(&self, symbol_id: SymbolId) -> &[Span]
pub fn union_flag(&mut self, symbol_id: SymbolId, includes: SymbolFlags)
pub fn set_scope_id(&mut self, symbol_id: SymbolId, scope_id: ScopeId)
pub fn get_scope_id(&self, symbol_id: SymbolId) -> ScopeId
Sourcepub fn get_declaration(&self, symbol_id: SymbolId) -> NodeId
pub fn get_declaration(&self, symbol_id: SymbolId) -> NodeId
Get the ID of the AST node declaring a symbol.
This node will be a VariableDeclaration, Function, or some other AST node
that has a BindingIdentifier or a BindingPattern. It will not point to the
binding pattern or identifier node itself.
pub fn create_symbol( &mut self, span: Span, name: &str, flags: SymbolFlags, scope_id: ScopeId, node_id: NodeId, ) -> SymbolId
pub fn add_redeclaration(&mut self, symbol_id: SymbolId, span: Span)
pub fn create_reference(&mut self, reference: Reference) -> ReferenceId
Sourcepub fn get_reference(&self, reference_id: ReferenceId) -> &Reference
pub fn get_reference(&self, reference_id: ReferenceId) -> &Reference
Get a resolved or unresolved reference.
ReferenceIds can be found in IdentifierReference and similar nodes.
pub fn get_reference_mut(&mut self, reference_id: ReferenceId) -> &mut Reference
Sourcepub fn has_binding(&self, reference_id: ReferenceId) -> bool
pub fn has_binding(&self, reference_id: ReferenceId) -> bool
Returns true if the corresponding Reference is resolved to a symbol.
When false, this could either be a reference to a global value or an identifier that does
not exist.
Sourcepub fn get_resolved_reference_ids(
&self,
symbol_id: SymbolId,
) -> &Vec<'_, ReferenceId>
pub fn get_resolved_reference_ids( &self, symbol_id: SymbolId, ) -> &Vec<'_, ReferenceId>
Find Reference ids resolved to a symbol.
If you want direct access to a symbol’s References, use
SymbolTable::get_resolved_references.
Sourcepub fn get_resolved_references(
&self,
symbol_id: SymbolId,
) -> impl DoubleEndedIterator
pub fn get_resolved_references( &self, symbol_id: SymbolId, ) -> impl DoubleEndedIterator
Find References resolved to a symbol.
Sourcepub fn symbol_is_mutated(&self, symbol_id: SymbolId) -> bool
pub fn symbol_is_mutated(&self, symbol_id: SymbolId) -> bool
Get whether a symbol is mutated (i.e. assigned to).
If symbol is const, always returns false.
Otherwise, returns true if the symbol is assigned to somewhere in AST.
Sourcepub fn add_resolved_reference(
&mut self,
symbol_id: SymbolId,
reference_id: ReferenceId,
)
pub fn add_resolved_reference( &mut self, symbol_id: SymbolId, reference_id: ReferenceId, )
Add a reference to a symbol.
Sourcepub fn delete_resolved_reference(
&mut self,
symbol_id: SymbolId,
reference_id: ReferenceId,
)
pub fn delete_resolved_reference( &mut self, symbol_id: SymbolId, reference_id: ReferenceId, )
Delete a reference to a symbol.
§Panics
Panics if provided reference_id is not a resolved reference for symbol_id.
pub fn reserve( &mut self, additional_symbols: usize, additional_references: usize, )
Trait Implementations§
Source§impl Debug for SymbolRefDbForModule
impl Debug for SymbolRefDbForModule
Source§impl Deref for SymbolRefDbForModule
impl Deref for SymbolRefDbForModule
Source§impl DerefMut for SymbolRefDbForModule
impl DerefMut for SymbolRefDbForModule
Source§impl GetLocalDb for SymbolRefDbForModule
impl GetLocalDb for SymbolRefDbForModule
fn local_db(&self, owner: ModuleIdx) -> &SymbolRefDbForModule
Auto Trait Implementations§
impl Freeze for SymbolRefDbForModule
impl !RefUnwindSafe for SymbolRefDbForModule
impl Send for SymbolRefDbForModule
impl Sync for SymbolRefDbForModule
impl Unpin for SymbolRefDbForModule
impl !UnwindSafe for SymbolRefDbForModule
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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 moreSource§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Source§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Source§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);