pub enum MemLowerError {
UnmappedValue(Value),
UnsupportedType(String),
SsaOverflow,
}Expand description
Errors produced by the memory-family lowering.
Variants§
UnmappedValue(Value)
The Cranelift base-pointer value referenced by a load/store
has no corresponding LoweredValueId in
MemLowerContext::value_map. The caller must populate the
value map before invoking this family — typically by lowering
the producer instruction first or by seeding entry-block params.
UnsupportedType(String)
The Cranelift type on a load result or store operand could
not be mapped to a LoweredType (e.g. an unsupported vector
shape). The mnemonic of the offending Cranelift type is
captured for triage.
SsaOverflow
The SSA value-id counter overflowed u32::MAX (a single function
exceeded ~4 billion lowered values).
jit LOW fix (finding 7): fresh_id previously used wrapping_add,
which silently wrapped the counter back to 0 on overflow — aliasing
new SSA values onto already-used ids and miscompiling the function.
It now uses checked_add(1) and surfaces this structured error
instead, matching the lower_arith family’s fail-closed posture.
Trait Implementations§
Source§impl Debug for MemLowerError
impl Debug for MemLowerError
Source§impl Display for MemLowerError
impl Display for MemLowerError
impl Eq for MemLowerError
Source§impl Error for MemLowerError
impl Error for MemLowerError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for MemLowerError
impl PartialEq for MemLowerError
Source§fn eq(&self, other: &MemLowerError) -> bool
fn eq(&self, other: &MemLowerError) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for MemLowerError
Auto Trait Implementations§
impl Freeze for MemLowerError
impl RefUnwindSafe for MemLowerError
impl Send for MemLowerError
impl Sync for MemLowerError
impl Unpin for MemLowerError
impl UnsafeUnpin for MemLowerError
impl UnwindSafe for MemLowerError
Blanket Implementations§
impl<T> AnyError for T
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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
key and return true if they are equal.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§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more