pub struct AnalyzedFunction {
pub name: String,
pub air: Air,
pub num_locals: u32,
pub num_param_slots: u32,
pub param_modes: Vec<bool>,
pub param_slot_types: Vec<Type>,
pub is_destructor: bool,
}Expand description
Result of analyzing a function.
Fields§
§name: String§air: Air§num_locals: u32Number of local variable slots needed
num_param_slots: u32Number of ABI slots used by parameters. For scalar types (i32, bool), each parameter uses 1 slot. For struct types, each field uses 1 slot (flattened ABI).
param_modes: Vec<bool>Whether each parameter slot is passed as inout (by reference). Length matches num_param_slots - for struct params, all slots share the same mode as the original parameter.
param_slot_types: Vec<Type>Type of each parameter ABI slot, parallel to param_modes.
Preserved here so backends can declare correct function signatures
even when DCE has removed unused Param instructions from the body.
is_destructor: boolWhether this function is a destructor (drop fn).
Destructors must not auto-drop their self parameter, as the
destructor IS the drop logic for that value.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AnalyzedFunction
impl RefUnwindSafe for AnalyzedFunction
impl Send for AnalyzedFunction
impl Sync for AnalyzedFunction
impl Unpin for AnalyzedFunction
impl UnwindSafe for AnalyzedFunction
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