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§
fn entry_fn(&self) -> Option<CrateItem>
sourcefn all_local_items(&self) -> CrateItems
fn all_local_items(&self) -> CrateItems
Retrieve all items of the local crate that have a MIR associated with them.
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
sourcefn local_crate(&self) -> Crate
fn local_crate(&self) -> Crate
Get information about the local crate.
sourcefn external_crates(&self) -> Vec<Crate>
fn external_crates(&self) -> Vec<Crate>
Retrieve a list of all external crates.
sourcefn find_crates(&self, name: &str) -> Vec<Crate>
fn find_crates(&self, name: &str) -> Vec<Crate>
Find a crate with the given name.
sourcefn name_of_def_id(&self, def_id: DefId) -> String
fn name_of_def_id(&self, def_id: DefId) -> String
Returns the name of given DefId
sourcefn span_to_string(&self, span: Span) -> String
fn span_to_string(&self, span: Span) -> String
Returns printable, human readable form of Span
sourcefn get_filename(&self, span: &Span) -> Filename
fn get_filename(&self, span: &Span) -> Filename
Return filename from given Span, for diagnostic purposes
sourcefn span_of_an_item(&self, def_id: DefId) -> Span
fn span_of_an_item(&self, def_id: DefId) -> Span
Span of an item
sourcefn instance_body(&self, instance: InstanceDef) -> Body
fn instance_body(&self, instance: InstanceDef) -> Body
Get the body of an Instance. FIXME: Monomorphize the body.
sourcefn instance_ty(&self, instance: InstanceDef) -> Ty
fn instance_ty(&self, instance: InstanceDef) -> Ty
Get the instance type with generic substitutions applied and lifetimes erased.
sourcefn instance_def_id(&self, instance: InstanceDef) -> DefId
fn instance_def_id(&self, instance: InstanceDef) -> DefId
Get the instance.
sourcefn instance_mangled_name(&self, instance: InstanceDef) -> String
fn instance_mangled_name(&self, instance: InstanceDef) -> String
Get the instance mangled name.
sourcefn mono_instance(&self, item: CrateItem) -> Instance
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.
sourcefn requires_monomorphization(&self, def_id: DefId) -> bool
fn requires_monomorphization(&self, def_id: DefId) -> bool
Item requires monomorphization.
sourcefn resolve_instance(&self, def: FnDef, args: &GenericArgs) -> Option<Instance>
fn resolve_instance(&self, def: FnDef, args: &GenericArgs) -> Option<Instance>
Resolve an instance from the given function definition and generic arguments.