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§
Sourcefn into_scope(self, db: &'db dyn Db) -> Scope<'db, 'db>
fn into_scope(self, db: &'db dyn Db) -> Scope<'db, 'db>
Convert this scope item into a scope for the items declared within it.
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§
Sourcefn iter_super_scopes(
self,
db: &'db dyn Db,
) -> impl Iterator<Item = ScopeItem<'db>>
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.
Sourcefn transitive_generic_parameters(self, db: &'db dyn Db) -> Vec<SymVariable<'db>>
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.
Sourcefn expected_generic_parameters(self, db: &'db dyn Db) -> usize
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.
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.