pub enum StackDecline {
Recursion,
IndirectCall,
ExternalCall,
CalleeUnbounded,
UnknownSpMove,
}Expand description
Why no finite stack bound exists. Deliberately NOT WcetDecline: the two
sets differ (see the module docs), and sharing the enum would silently tie
a stack refusal to a cycle-counting one.
Variants§
Recursion
A cycle in the direct call graph — no finite depth exists.
IndirectCall
call_indirect: the callee set is not statically known, so neither is
the depth below this point.
ExternalCall
A direct call to a function outside this module (an import). Its frame belongs to code synth did not emit.
CalleeUnbounded
A callee declined, and a decline propagates UP: a caller cannot be bounded by an unbounded subtree.
UnknownSpMove
An instruction moves SP in a way this walker cannot price. The give-up direction is a DECLINE, never a lower bound.
Implementations§
Trait Implementations§
Source§impl Clone for StackDecline
impl Clone for StackDecline
Source§impl Debug for StackDecline
impl Debug for StackDecline
Source§impl<'de> Deserialize<'de> for StackDecline
impl<'de> Deserialize<'de> for StackDecline
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
impl Eq for StackDecline
Source§impl PartialEq for StackDecline
impl PartialEq for StackDecline
Source§impl Serialize for StackDecline
impl Serialize for StackDecline
impl StructuralPartialEq for StackDecline
Auto Trait Implementations§
impl Freeze for StackDecline
impl RefUnwindSafe for StackDecline
impl Send for StackDecline
impl Sync for StackDecline
impl Unpin for StackDecline
impl UnsafeUnpin for StackDecline
impl UnwindSafe for StackDecline
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.