Struct cranelift_isle::sema::TermEnv
source · [−]pub struct TermEnv {
pub terms: Vec<Term>,
pub term_map: StableMap<Sym, TermId>,
pub rules: Vec<Rule>,
pub converters: StableMap<(TypeId, TypeId), TermId>,
}
Expand description
The term environment.
This is sort of a typed and reorganized AST that more directly reflects ISLE semantics than the input ISLE source code (where as the AST is the opposite).
Fields
terms: Vec<Term>
Arena of interned terms defined in this ISLE program.
This is indexed by TermId
.
term_map: StableMap<Sym, TermId>
A map from am interned Term
’s name to its TermId
.
rules: Vec<Rule>
Arena of interned rules defined in this ISLE program.
This is indexed by RuleId
.
converters: StableMap<(TypeId, TypeId), TermId>
Map from (inner_ty, outer_ty) pairs to term IDs, giving the defined implicit type-converter terms we can try to use to fit types together.
Implementations
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for TermEnv
impl Send for TermEnv
impl Sync for TermEnv
impl Unpin for TermEnv
impl UnwindSafe for TermEnv
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more