pub struct SymbolTable<'src> { /* private fields */ }Expand description
Collected symbols and imports from a PHP source file.
Implementations§
Source§impl<'src> SymbolTable<'src>
impl<'src> SymbolTable<'src>
Sourcepub fn build<'arena>(program: &Program<'arena, 'src>) -> Self
pub fn build<'arena>(program: &Program<'arena, 'src>) -> Self
Walk the program AST and extract all declarations.
Sourcepub fn symbols_of_kind(
&self,
kind: SymbolKind,
) -> impl Iterator<Item = &Symbol<'src>>
pub fn symbols_of_kind( &self, kind: SymbolKind, ) -> impl Iterator<Item = &Symbol<'src>>
Iterate symbols of a specific kind.
Sourcepub fn find_by_fqn(&self, fqn: &str) -> Option<&Symbol<'src>>
pub fn find_by_fqn(&self, fqn: &str) -> Option<&Symbol<'src>>
Find a symbol by its fully qualified name.
Sourcepub fn symbols_at(&self, offset: u32) -> Vec<&Symbol<'src>>
pub fn symbols_at(&self, offset: u32) -> Vec<&Symbol<'src>>
Find all symbols at a given byte offset (i.e. whose span contains the offset).
Sourcepub fn resolve_name(&self, name: &str) -> Option<&str>
pub fn resolve_name(&self, name: &str) -> Option<&str>
Resolve a simple (unqualified) name using the imports and current namespace.
Returns the FQN if found, None otherwise.
Sourcepub fn interfaces(&self) -> impl Iterator<Item = &Symbol<'src>>
pub fn interfaces(&self) -> impl Iterator<Item = &Symbol<'src>>
Convenience: all interfaces.
Sourcepub fn members_of<'a>(
&'a self,
parent_fqn: &'a str,
) -> impl Iterator<Item = &'a Symbol<'src>>
pub fn members_of<'a>( &'a self, parent_fqn: &'a str, ) -> impl Iterator<Item = &'a Symbol<'src>>
Get all members (methods, properties, class constants, enum cases) of a given parent FQN.
Auto Trait Implementations§
impl<'src> Freeze for SymbolTable<'src>
impl<'src> RefUnwindSafe for SymbolTable<'src>
impl<'src> Send for SymbolTable<'src>
impl<'src> Sync for SymbolTable<'src>
impl<'src> Unpin for SymbolTable<'src>
impl<'src> UnsafeUnpin for SymbolTable<'src>
impl<'src> UnwindSafe for SymbolTable<'src>
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
Mutably borrows from an owned value. Read more