pub struct FnAnalysis {
pub allocates: Option<bool>,
pub thin_kind: Option<ThinKind>,
pub body_shape: BodyShape,
pub local_count: Option<u16>,
pub mutual_tco_member: bool,
pub recursive: bool,
pub recursive_call_count: usize,
}Fields§
§allocates: Option<bool>Some(true) = proven to allocate under the supplied AllocPolicy;
Some(false) = proven not to; None = no policy was configured.
thin_kind: Option<ThinKind>§body_shape: BodyShape§local_count: Option<u16>§mutual_tco_member: booltrue if this fn participates in a mutual-TCO SCC (not a singleton
self-recursive fn — those are plain TCO and don’t need trampoline
codegen). Backends use this to gate trampoline emission.
recursive: booltrue if the fn calls itself directly or transitively. Used by
the type checker’s flow analysis, the proof exporters, and the
memo-eligibility check.
recursive_call_count: usizeNumber of recursive call sites in the fn body. 0 for non-recursive
fns. Memo eligibility requires >= 2 (single-call recursion is
linear and the memo overhead would dominate).
Trait Implementations§
Source§impl Clone for FnAnalysis
impl Clone for FnAnalysis
Source§fn clone(&self) -> FnAnalysis
fn clone(&self) -> FnAnalysis
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FnAnalysis
impl RefUnwindSafe for FnAnalysis
impl Send for FnAnalysis
impl Sync for FnAnalysis
impl Unpin for FnAnalysis
impl UnsafeUnpin for FnAnalysis
impl UnwindSafe for FnAnalysis
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