Skip to main content

DeclEngine

Struct DeclEngine 

Source
pub struct DeclEngine { /* private fields */ }
Expand description

Used inside of type inference to store declarations.

Implementations§

Source§

impl DeclEngine

Source

pub fn clear_program(&mut self, program_id: &ProgramId)

Source§

impl DeclEngine

Source

pub fn clear_module(&mut self, source_id: &SourceId)

Source§

impl DeclEngine

Source

pub fn insert_dummy_func( &self, decl: TyFunctionDecl, ) -> DeclRef<DeclId<TyFunctionDecl>>

Inserts a trait-interface dummy function into the DeclEngine.

This is a bit of a maverick compared to the regular DeclEngineInsert::insert. It deliberately inserts a ty::TyFunctionDecl without an associated parsed declaration.

Dummy functions are placeholders created from trait interface methods (see ty::TyTraitFn::to_dummy_func). They allow the trait’s provided methods to refer to interface methods before an actual implementation exists. Their parsed origin is a TraitFn (i.e., a parsed trait function), not a FunctionDeclaration, so there is no FunctionDeclaration to associate them with.

This is the only semantically valid case of a ty::TyFunctionDecl having no corresponding parsed declaration. Everything else must go through DeclEngineInsert::insert or DeclEngineInsert::insert_modified, which guarantee (and, for insert_modified, assert) the presence of a parsed declaration.

Panics if the decl is not a trait-interface dummy function.

Source

pub fn get_function<I>(&self, index: &I) -> Arc<TyFunctionDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_trait<I>(&self, index: &I) -> Arc<TyTraitDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_traits_by_name(&self, trait_name: &Ident) -> Vec<TyTraitDecl>

Returns all the ty::TyTraitDecls whose name is the same as trait_name.

The method does a linear search over all the declared traits and is meant to be used only for diagnostic purposes.

Source

pub fn get_trait_fn<I>(&self, index: &I) -> Arc<TyTraitFn>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_impl_self_or_trait<I>(&self, index: &I) -> Arc<TyImplSelfOrTrait>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_struct<I>(&self, index: &I) -> Arc<TyStructDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_storage<I>(&self, index: &I) -> Arc<TyStorageDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine.

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_abi<I>(&self, index: &I) -> Arc<TyAbiDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_constant<I>(&self, index: &I) -> Arc<TyConstantDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_configurable<I>(&self, index: &I) -> Arc<TyConfigurableDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_const_generic<I>(&self, index: &I) -> Arc<TyConstGenericDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_type<I>(&self, index: &I) -> Arc<TyTraitType>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_enum<I>(&self, index: &I) -> Arc<TyEnumDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn get_type_alias<I>(&self, index: &I) -> Arc<TyTypeAliasDecl>

Friendly helper method for calling the get method from the implementation of DeclEngineGet for DeclEngine

Calling [DeclEngine][get] directly is equivalent to this method, but this method adds additional syntax that some users may find helpful.

Source

pub fn pretty_print(&self, engines: &Engines) -> String

Pretty print method for printing the DeclEngine. This method is manually implemented to avoid implementation overhead regarding using [DisplayWithEngines].

Source

pub fn metrics(&self) -> DeclEngineMetrics

Trait Implementations§

Source§

impl Clone for DeclEngine

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeclEngine

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DeclEngineGet<DeclId<TyAbiDecl>, TyAbiDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyAbiDecl>) -> Arc<TyAbiDecl>

Source§

fn map<R>( &self, index: &DeclId<TyAbiDecl>, f: impl FnOnce(&TyAbiDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyConfigurableDecl>, TyConfigurableDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyConfigurableDecl>) -> Arc<TyConfigurableDecl>

Source§

fn map<R>( &self, index: &DeclId<TyConfigurableDecl>, f: impl FnOnce(&TyConfigurableDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyConstGenericDecl>, TyConstGenericDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyConstGenericDecl>) -> Arc<TyConstGenericDecl>

Source§

fn map<R>( &self, index: &DeclId<TyConstGenericDecl>, f: impl FnOnce(&TyConstGenericDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyConstantDecl>, TyConstantDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyConstantDecl>) -> Arc<TyConstantDecl>

Source§

fn map<R>( &self, index: &DeclId<TyConstantDecl>, f: impl FnOnce(&TyConstantDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyEnumDecl>, TyEnumDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyEnumDecl>) -> Arc<TyEnumDecl>

Source§

fn map<R>( &self, index: &DeclId<TyEnumDecl>, f: impl FnOnce(&TyEnumDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyFunctionDecl>, TyFunctionDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyFunctionDecl>) -> Arc<TyFunctionDecl>

Source§

fn map<R>( &self, index: &DeclId<TyFunctionDecl>, f: impl FnOnce(&TyFunctionDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyImplSelfOrTrait>, TyImplSelfOrTrait> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyImplSelfOrTrait>) -> Arc<TyImplSelfOrTrait>

Source§

fn map<R>( &self, index: &DeclId<TyImplSelfOrTrait>, f: impl FnOnce(&TyImplSelfOrTrait) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyStorageDecl>, TyStorageDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyStorageDecl>) -> Arc<TyStorageDecl>

Source§

fn map<R>( &self, index: &DeclId<TyStorageDecl>, f: impl FnOnce(&TyStorageDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyStructDecl>, TyStructDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyStructDecl>) -> Arc<TyStructDecl>

Source§

fn map<R>( &self, index: &DeclId<TyStructDecl>, f: impl FnOnce(&TyStructDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyTraitDecl>, TyTraitDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyTraitDecl>) -> Arc<TyTraitDecl>

Source§

fn map<R>( &self, index: &DeclId<TyTraitDecl>, f: impl FnOnce(&TyTraitDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyTraitFn>, TyTraitFn> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyTraitFn>) -> Arc<TyTraitFn>

Source§

fn map<R>( &self, index: &DeclId<TyTraitFn>, f: impl FnOnce(&TyTraitFn) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyTraitType>, TyTraitType> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyTraitType>) -> Arc<TyTraitType>

Source§

fn map<R>( &self, index: &DeclId<TyTraitType>, f: impl FnOnce(&TyTraitType) -> R, ) -> R

Source§

impl DeclEngineGet<DeclId<TyTypeAliasDecl>, TyTypeAliasDecl> for DeclEngine

Source§

fn get(&self, index: &DeclId<TyTypeAliasDecl>) -> Arc<TyTypeAliasDecl>

Source§

fn map<R>( &self, index: &DeclId<TyTypeAliasDecl>, f: impl FnOnce(&TyTypeAliasDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyAbiDecl>>, TyAbiDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyAbiDecl>>) -> Arc<TyAbiDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyAbiDecl>>, f: impl FnOnce(&TyAbiDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyConfigurableDecl>>, TyConfigurableDecl> for DeclEngine

Source§

impl DeclEngineGet<DeclRef<DeclId<TyConstGenericDecl>>, TyConstGenericDecl> for DeclEngine

Source§

impl DeclEngineGet<DeclRef<DeclId<TyConstantDecl>>, TyConstantDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyConstantDecl>>) -> Arc<TyConstantDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyConstantDecl>>, f: impl FnOnce(&TyConstantDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyEnumDecl>>, TyEnumDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyEnumDecl>>) -> Arc<TyEnumDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyEnumDecl>>, f: impl FnOnce(&TyEnumDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyFunctionDecl>>, TyFunctionDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyFunctionDecl>>) -> Arc<TyFunctionDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyFunctionDecl>>, f: impl FnOnce(&TyFunctionDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyImplSelfOrTrait>>, TyImplSelfOrTrait> for DeclEngine

Source§

fn get( &self, index: &DeclRef<DeclId<TyImplSelfOrTrait>>, ) -> Arc<TyImplSelfOrTrait>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyImplSelfOrTrait>>, f: impl FnOnce(&TyImplSelfOrTrait) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyStorageDecl>>, TyStorageDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyStorageDecl>>) -> Arc<TyStorageDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyStorageDecl>>, f: impl FnOnce(&TyStorageDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyStructDecl>>, TyStructDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyStructDecl>>) -> Arc<TyStructDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyStructDecl>>, f: impl FnOnce(&TyStructDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyTraitDecl>>, TyTraitDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyTraitDecl>>) -> Arc<TyTraitDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyTraitDecl>>, f: impl FnOnce(&TyTraitDecl) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyTraitFn>>, TyTraitFn> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyTraitFn>>) -> Arc<TyTraitFn>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyTraitFn>>, f: impl FnOnce(&TyTraitFn) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyTraitType>>, TyTraitType> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyTraitType>>) -> Arc<TyTraitType>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyTraitType>>, f: impl FnOnce(&TyTraitType) -> R, ) -> R

Source§

impl DeclEngineGet<DeclRef<DeclId<TyTypeAliasDecl>>, TyTypeAliasDecl> for DeclEngine

Source§

fn get(&self, index: &DeclRef<DeclId<TyTypeAliasDecl>>) -> Arc<TyTypeAliasDecl>

Source§

fn map<R>( &self, index: &DeclRef<DeclId<TyTypeAliasDecl>>, f: impl FnOnce(&TyTypeAliasDecl) -> R, ) -> R

Source§

impl DeclEngineGetParsedDecl<TyAbiDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyConfigurableDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyConstGenericDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyConstantDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyEnumDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyFunctionDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyImplSelfOrTrait> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyStorageDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyStructDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyTraitDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyTraitFn> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyTraitType> for DeclEngine

Source§

impl DeclEngineGetParsedDecl<TyTypeAliasDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyAbiDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyConfigurableDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyConstGenericDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyConstantDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyEnumDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyFunctionDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyImplSelfOrTrait> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyStorageDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyStructDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyTraitDecl> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyTraitFn> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyTraitType> for DeclEngine

Source§

impl DeclEngineGetParsedDeclId<TyTypeAliasDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyAbiDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyConfigurableDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyConstantDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyEnumDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyFunctionDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyImplSelfOrTrait> for DeclEngine

Source§

impl DeclEngineIndex<TyStorageDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyStructDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyTraitDecl> for DeclEngine

Source§

impl DeclEngineIndex<TyTraitFn> for DeclEngine

Source§

impl DeclEngineIndex<TyTraitType> for DeclEngine

Source§

impl DeclEngineIndex<TyTypeAliasDecl> for DeclEngine

Source§

impl DeclEngineInsert<TyAbiDecl> for DeclEngine

Source§

fn insert( &self, decl: TyAbiDecl, parsed_decl_id: ParsedDeclId<<TyAbiDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyAbiDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyAbiDecl, original_decl: DeclId<TyAbiDecl>, ) -> DeclRef<DeclId<TyAbiDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyConfigurableDecl> for DeclEngine

Source§

fn insert( &self, decl: TyConfigurableDecl, parsed_decl_id: ParsedDeclId<<TyConfigurableDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyConfigurableDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyConfigurableDecl, original_decl: DeclId<TyConfigurableDecl>, ) -> DeclRef<DeclId<TyConfigurableDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyConstGenericDecl> for DeclEngine

Source§

fn insert( &self, decl: TyConstGenericDecl, parsed_decl_id: ParsedDeclId<<TyConstGenericDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyConstGenericDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyConstGenericDecl, original_decl: DeclId<TyConstGenericDecl>, ) -> DeclRef<DeclId<TyConstGenericDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyConstantDecl> for DeclEngine

Source§

fn insert( &self, decl: TyConstantDecl, parsed_decl_id: ParsedDeclId<<TyConstantDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyConstantDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyConstantDecl, original_decl: DeclId<TyConstantDecl>, ) -> DeclRef<DeclId<TyConstantDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyEnumDecl> for DeclEngine

Source§

fn insert( &self, decl: TyEnumDecl, parsed_decl_id: ParsedDeclId<<TyEnumDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyEnumDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyEnumDecl, original_decl: DeclId<TyEnumDecl>, ) -> DeclRef<DeclId<TyEnumDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyFunctionDecl> for DeclEngine

ty::TyFunctionDecl is intentionally not implemented via the decl_engine_insert! macro. Unlike all other typed declarations, functions have one legitimate case of not having a corresponding parsed declaration: the trait-interface dummy functions inserted via DeclEngine::insert_dummy_func. insert_modified must therefore tolerate a missing parsed declaration, but only for such dummy functions.

Source§

fn insert( &self, decl: TyFunctionDecl, parsed_decl_id: ParsedDeclId<<TyFunctionDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyFunctionDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyFunctionDecl, original_decl: DeclId<TyFunctionDecl>, ) -> DeclRef<DeclId<TyFunctionDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyImplSelfOrTrait> for DeclEngine

Source§

fn insert( &self, decl: TyImplSelfOrTrait, parsed_decl_id: ParsedDeclId<<TyImplSelfOrTrait as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyImplSelfOrTrait>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyImplSelfOrTrait, original_decl: DeclId<TyImplSelfOrTrait>, ) -> DeclRef<DeclId<TyImplSelfOrTrait>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyStorageDecl> for DeclEngine

Source§

fn insert( &self, decl: TyStorageDecl, parsed_decl_id: ParsedDeclId<<TyStorageDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyStorageDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyStorageDecl, original_decl: DeclId<TyStorageDecl>, ) -> DeclRef<DeclId<TyStorageDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyStructDecl> for DeclEngine

Source§

fn insert( &self, decl: TyStructDecl, parsed_decl_id: ParsedDeclId<<TyStructDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyStructDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyStructDecl, original_decl: DeclId<TyStructDecl>, ) -> DeclRef<DeclId<TyStructDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyTraitDecl> for DeclEngine

Source§

fn insert( &self, decl: TyTraitDecl, parsed_decl_id: ParsedDeclId<<TyTraitDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyTraitDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyTraitDecl, original_decl: DeclId<TyTraitDecl>, ) -> DeclRef<DeclId<TyTraitDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyTraitFn> for DeclEngine

Source§

fn insert( &self, decl: TyTraitFn, parsed_decl_id: ParsedDeclId<<TyTraitFn as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyTraitFn>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyTraitFn, original_decl: DeclId<TyTraitFn>, ) -> DeclRef<DeclId<TyTraitFn>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyTraitType> for DeclEngine

Source§

fn insert( &self, decl: TyTraitType, parsed_decl_id: ParsedDeclId<<TyTraitType as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyTraitType>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyTraitType, original_decl: DeclId<TyTraitType>, ) -> DeclRef<DeclId<TyTraitType>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineInsert<TyTypeAliasDecl> for DeclEngine

Source§

fn insert( &self, decl: TyTypeAliasDecl, parsed_decl_id: ParsedDeclId<<TyTypeAliasDecl as TyDeclParsedType>::ParsedType>, ) -> DeclRef<DeclId<TyTypeAliasDecl>>

Inserts a typed declaration decl that corresponds to the parsed declaration parsed_decl_it into the DeclEngine for the first time. Read more
Source§

fn insert_modified( &self, modified_decl: TyTypeAliasDecl, original_decl: DeclId<TyTypeAliasDecl>, ) -> DeclRef<DeclId<TyTypeAliasDecl>>

Inserts a typed declaration modified_decl that represents a modified version of an original_decl. E.g., during monomorphization, we get an original typed declaration from the DeclEngine, modify it, and insert the modified_decl into the DeclEngine. Read more
Source§

impl DeclEngineReplace<TyAbiDecl> for DeclEngine

Source§

fn replace(&self, index: DeclId<TyAbiDecl>, decl: TyAbiDecl)

Source§

impl DeclEngineReplace<TyConfigurableDecl> for DeclEngine

Source§

impl DeclEngineReplace<TyConstantDecl> for DeclEngine

Source§

impl DeclEngineReplace<TyEnumDecl> for DeclEngine

Source§

fn replace(&self, index: DeclId<TyEnumDecl>, decl: TyEnumDecl)

Source§

impl DeclEngineReplace<TyFunctionDecl> for DeclEngine

Source§

impl DeclEngineReplace<TyImplSelfOrTrait> for DeclEngine

Source§

impl DeclEngineReplace<TyStorageDecl> for DeclEngine

Source§

impl DeclEngineReplace<TyStructDecl> for DeclEngine

Source§

impl DeclEngineReplace<TyTraitDecl> for DeclEngine

Source§

fn replace(&self, index: DeclId<TyTraitDecl>, decl: TyTraitDecl)

Source§

impl DeclEngineReplace<TyTraitFn> for DeclEngine

Source§

fn replace(&self, index: DeclId<TyTraitFn>, decl: TyTraitFn)

Source§

impl DeclEngineReplace<TyTraitType> for DeclEngine

Source§

fn replace(&self, index: DeclId<TyTraitType>, decl: TyTraitType)

Source§

impl DeclEngineReplace<TyTypeAliasDecl> for DeclEngine

Source§

impl Default for DeclEngine

Source§

fn default() -> DeclEngine

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyDebug for T
where T: Any + Debug,

Source§

fn as_any_ref(&self) -> &(dyn Any + 'static)

Returns a reference to the underlying type as Any.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> StorageAsMut for T

Source§

fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>
where Type: Mappable,

Source§

fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>
where Type: Mappable,

Source§

impl<T> StorageAsRef for T

Source§

fn storage<Type>(&self) -> StorageRef<'_, Self, Type>
where Type: Mappable,

Source§

fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>
where Type: Mappable,

Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more