Trait stable_mir::Context

source ·
pub trait Context {
Show 27 methods // Required methods fn entry_fn(&self) -> Option<CrateItem>; fn all_local_items(&self) -> CrateItems; fn mir_body(&self, item: DefId) -> Body; fn all_trait_decls(&self) -> TraitDecls; fn trait_decl(&self, trait_def: &TraitDef) -> TraitDecl; fn all_trait_impls(&self) -> ImplTraitDecls; fn trait_impl(&self, trait_impl: &ImplDef) -> ImplTrait; fn generics_of(&self, def_id: DefId) -> Generics; fn predicates_of(&self, def_id: DefId) -> GenericPredicates; fn explicit_predicates_of(&self, def_id: DefId) -> GenericPredicates; fn local_crate(&self) -> Crate; fn external_crates(&self) -> Vec<Crate>; fn find_crates(&self, name: &str) -> Vec<Crate>; fn name_of_def_id(&self, def_id: DefId) -> String; fn span_to_string(&self, span: Span) -> String; fn get_filename(&self, span: &Span) -> Filename; fn get_lines(&self, span: &Span) -> LineInfo; fn def_kind(&self, def_id: DefId) -> DefKind; fn span_of_an_item(&self, def_id: DefId) -> Span; fn ty_kind(&self, ty: Ty) -> TyKind; fn instance_body(&self, instance: InstanceDef) -> Body; fn instance_ty(&self, instance: InstanceDef) -> Ty; fn instance_def_id(&self, instance: InstanceDef) -> DefId; fn instance_mangled_name(&self, instance: InstanceDef) -> String; fn mono_instance(&self, item: CrateItem) -> Instance; fn requires_monomorphization(&self, def_id: DefId) -> bool; fn resolve_instance( &self, def: FnDef, args: &GenericArgs ) -> Option<Instance>;
}

Required Methods§

source

fn entry_fn(&self) -> Option<CrateItem>

source

fn all_local_items(&self) -> CrateItems

Retrieve all items of the local crate that have a MIR associated with them.

source

fn mir_body(&self, item: DefId) -> Body

source

fn all_trait_decls(&self) -> TraitDecls

source

fn trait_decl(&self, trait_def: &TraitDef) -> TraitDecl

source

fn all_trait_impls(&self) -> ImplTraitDecls

source

fn trait_impl(&self, trait_impl: &ImplDef) -> ImplTrait

source

fn generics_of(&self, def_id: DefId) -> Generics

source

fn predicates_of(&self, def_id: DefId) -> GenericPredicates

source

fn explicit_predicates_of(&self, def_id: DefId) -> GenericPredicates

source

fn local_crate(&self) -> Crate

Get information about the local crate.

source

fn external_crates(&self) -> Vec<Crate>

Retrieve a list of all external crates.

source

fn find_crates(&self, name: &str) -> Vec<Crate>

Find a crate with the given name.

source

fn name_of_def_id(&self, def_id: DefId) -> String

Returns the name of given DefId

source

fn span_to_string(&self, span: Span) -> String

Returns printable, human readable form of Span

source

fn get_filename(&self, span: &Span) -> Filename

Return filename from given Span, for diagnostic purposes

source

fn get_lines(&self, span: &Span) -> LineInfo

Return lines corresponding to this Span

source

fn def_kind(&self, def_id: DefId) -> DefKind

Returns the kind of given DefId

source

fn span_of_an_item(&self, def_id: DefId) -> Span

Span of an item

source

fn ty_kind(&self, ty: Ty) -> TyKind

Obtain the representation of a type.

source

fn instance_body(&self, instance: InstanceDef) -> Body

Get the body of an Instance. FIXME: Monomorphize the body.

source

fn instance_ty(&self, instance: InstanceDef) -> Ty

Get the instance type with generic substitutions applied and lifetimes erased.

source

fn instance_def_id(&self, instance: InstanceDef) -> DefId

Get the instance.

source

fn instance_mangled_name(&self, instance: InstanceDef) -> String

Get the instance mangled name.

source

fn mono_instance(&self, item: CrateItem) -> Instance

Convert a non-generic crate item into an instance. This function will panic if the item is generic.

source

fn requires_monomorphization(&self, def_id: DefId) -> bool

Item requires monomorphization.

source

fn resolve_instance(&self, def: FnDef, args: &GenericArgs) -> Option<Instance>

Resolve an instance from the given function definition and generic arguments.

Implementors§