pub enum ResolvedLeafOp<'a> {
FieldAccess {
object: &'a Spanned<ResolvedExpr>,
field_name: &'a str,
},
MapGet {
map: &'a Spanned<ResolvedExpr>,
key: &'a Spanned<ResolvedExpr>,
},
MapSet {
map: &'a Spanned<ResolvedExpr>,
key: &'a Spanned<ResolvedExpr>,
value: &'a Spanned<ResolvedExpr>,
},
VectorNew {
size: &'a Spanned<ResolvedExpr>,
fill: &'a Spanned<ResolvedExpr>,
},
VectorSetOrDefaultSameVector {
vector: &'a Spanned<ResolvedExpr>,
index: &'a Spanned<ResolvedExpr>,
value: &'a Spanned<ResolvedExpr>,
},
VectorGetOrDefaultLiteral {
vector: &'a Spanned<ResolvedExpr>,
index: &'a Spanned<ResolvedExpr>,
default_literal: &'a Literal,
},
IntModOrDefaultLiteral {
a: &'a Spanned<ResolvedExpr>,
b: &'a Spanned<ResolvedExpr>,
default_literal: &'a Literal,
},
IntDivOrDefaultLiteral {
a: &'a Spanned<ResolvedExpr>,
b: &'a Spanned<ResolvedExpr>,
default_literal: &'a Literal,
},
ListIndexGet {
list: &'a Spanned<ResolvedExpr>,
index: &'a Spanned<ResolvedExpr>,
},
NoneValue,
VariantConstructor {
qualified_type_name: String,
variant_name: String,
},
StaticRef(String),
}Expand description
Mirror of crate::ir::LeafOp keyed against ResolvedExpr.
Each variant’s fields are deliberately preserved (even when the
VM compiler currently consumes the leaf by walking the original
ResolvedExpr instead of these borrows) — keeps the shape
documentation aligned with crate::ir::LeafOp for cross-reading
and leaves room for future consumers that prefer the typed
borrows over re-walking. Suppress the dead-code lint at the type
level rather than per-field so the docs stay flat.
Variants§
FieldAccess
MapGet
MapSet
Fields
§
map: &'a Spanned<ResolvedExpr>§
key: &'a Spanned<ResolvedExpr>§
value: &'a Spanned<ResolvedExpr>VectorNew
VectorSetOrDefaultSameVector
Fields
§
vector: &'a Spanned<ResolvedExpr>§
index: &'a Spanned<ResolvedExpr>§
value: &'a Spanned<ResolvedExpr>VectorGetOrDefaultLiteral
IntModOrDefaultLiteral
IntDivOrDefaultLiteral
ListIndexGet
NoneValue
VariantConstructor
StaticRef(String)
Auto Trait Implementations§
impl<'a> Freeze for ResolvedLeafOp<'a>
impl<'a> RefUnwindSafe for ResolvedLeafOp<'a>
impl<'a> Send for ResolvedLeafOp<'a>
impl<'a> Sync for ResolvedLeafOp<'a>
impl<'a> Unpin for ResolvedLeafOp<'a>
impl<'a> UnsafeUnpin for ResolvedLeafOp<'a>
impl<'a> UnwindSafe for ResolvedLeafOp<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more