Skip to main content

ScopeTreeNode

Trait ScopeTreeNode 

Source
pub trait ScopeTreeNode<'db>: Sized + Into<ScopeItem<'db>> {
    // Required methods
    fn into_scope(self, db: &'db dyn Db) -> Scope<'db, 'db>;
    fn direct_super_scope(self, db: &'db dyn Db) -> Option<ScopeItem<'db>>;
    fn direct_generic_parameters(
        self,
        db: &'db dyn Db,
    ) -> &'db Vec<SymVariable<'db>>;
    fn push_direct_ast_where_clauses(
        self,
        db: &'db dyn Db,
        out: &mut Vec<AstWhereClause<'db>>,
    );

    // Provided methods
    fn iter_super_scopes(
        self,
        db: &'db dyn Db,
    ) -> impl Iterator<Item = ScopeItem<'db>> { ... }
    fn transitive_generic_parameters(
        self,
        db: &'db dyn Db,
    ) -> Vec<SymVariable<'db>> { ... }
    fn expected_generic_parameters(self, db: &'db dyn Db) -> usize { ... }
    fn push_transitive_where_clauses(
        self,
        db: &'db dyn Db,
        out: &mut Vec<AstWhereClause<'db>>,
    ) { ... }
}

Required Methods§

Source

fn into_scope(self, db: &'db dyn Db) -> Scope<'db, 'db>

Convert this scope item into a scope for the items declared within it.

Source

fn direct_super_scope(self, db: &'db dyn Db) -> Option<ScopeItem<'db>>

Source

fn direct_generic_parameters( self, db: &'db dyn Db, ) -> &'db Vec<SymVariable<'db>>

Source

fn push_direct_ast_where_clauses( self, db: &'db dyn Db, out: &mut Vec<AstWhereClause<'db>>, )

Provided Methods§

Source

fn iter_super_scopes( self, db: &'db dyn Db, ) -> impl Iterator<Item = ScopeItem<'db>>

Iterator that starts from self and traverses up to all super scope items.

Source

fn transitive_generic_parameters(self, db: &'db dyn Db) -> Vec<SymVariable<'db>>

Compute the set of transitive generic parameters. The returned vector begins with the parameters from the outermost vector.

Source

fn expected_generic_parameters(self, db: &'db dyn Db) -> usize

Compute the set of transitive generic parameters. The returned vector begins with the parameters from the outermost vector.

Source

fn push_transitive_where_clauses( self, db: &'db dyn Db, out: &mut Vec<AstWhereClause<'db>>, )

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'db> ScopeTreeNode<'db> for AstModule<'db>

Source§

fn direct_super_scope(self, db: &'db dyn Db) -> Option<ScopeItem<'db>>

Source§

fn direct_generic_parameters( self, db: &'db dyn Db, ) -> &'db Vec<SymVariable<'db>>

Source§

fn into_scope(self, db: &'db dyn Db) -> Scope<'db, 'db>

Source§

fn push_direct_ast_where_clauses( self, db: &'db dyn Db, out: &mut Vec<AstWhereClause<'db>>, )

Implementors§

Source§

impl<'db> ScopeTreeNode<'db> for ScopeItem<'db>

Source§

impl<'db> ScopeTreeNode<'db> for SymAggregate<'db>

Source§

impl<'db> ScopeTreeNode<'db> for SymFunction<'db>

Source§

impl<'db> ScopeTreeNode<'db> for SymModule<'db>