pub struct AnalyzedFunction {
pub name: String,
pub air: Air,
pub num_locals: u32,
pub num_param_slots: u32,
pub param_modes: Vec<AirParamMode>,
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<AirParamMode>Passing mode for each parameter slot (normal, inout, or borrow). 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§
Source§impl Clone for AnalyzedFunction
impl Clone for AnalyzedFunction
Source§fn clone(&self) -> AnalyzedFunction
fn clone(&self) -> AnalyzedFunction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AnalyzedFunction
impl Debug for AnalyzedFunction
Source§impl<'de> Deserialize<'de> for AnalyzedFunction
impl<'de> Deserialize<'de> for AnalyzedFunction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for AnalyzedFunction
impl RefUnwindSafe for AnalyzedFunction
impl Send for AnalyzedFunction
impl Sync for AnalyzedFunction
impl Unpin for AnalyzedFunction
impl UnsafeUnpin 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
§type Iter<'a> = Once<&'a T>
where
T: 'a
type Iter<'a> = Once<&'a T> where T: 'a
An iterator over the items within this container, by reference.
§fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
Check whether an item is contained within this sequence.
§fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
Convert an item of the sequence into a [
MaybeRef].