pub enum LoweringError {
UnsupportedOp(String),
UnsupportedBuiltin(String),
UnsupportedLoopBody(String),
StatePlaneUnlowered(String),
}Expand description
Why the whole-program fabric lowering refused a program. A TYPED failure surface: unsupported constructs
return Err(LoweringError) from the try_* entry points instead of panicking, so callers (and the
lowering_coverage_lock ratchet) can tell “this construct is not lowered yet” apart from a real bug. The
Display strings are byte-identical to the old panic! messages, so the panicking wrappers are unchanged.
Variants§
UnsupportedOp(String)
A CFG-block op with no fabric tile (a loop/channel/error op in a straight-line body, etc.).
UnsupportedBuiltin(String)
A builtin with no fabric unit wired (only floor/sqrt over the float lane today).
UnsupportedLoopBody(String)
A loop-fabric body op with no tile (a nested jump the if-converter cannot absorb, etc.).
StatePlaneUnlowered(String)
A Mem/Heap STATE-PLANE cell reached the register-only SEQUENCED datapath. The sequenced fabric is a
register-file arithmetic engine (multi-cycle divider + FPU + power tiles); Seq/string programs carry a
shared heap and run on the wpe engine (or the state-plane block form — the named follow-on). Detected up
front by try_emit_seq_program_verilog / try_emit_seq_datapath_verilog so a heap program is a
typed refusal, never a raw panic.
Trait Implementations§
Source§impl Clone for LoweringError
impl Clone for LoweringError
Source§fn clone(&self) -> LoweringError
fn clone(&self) -> LoweringError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LoweringError
impl Debug for LoweringError
Source§impl Display for LoweringError
impl Display for LoweringError
Source§impl Error for LoweringError
impl Error for LoweringError
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 LoweringError
impl PartialEq for LoweringError
impl Eq for LoweringError
impl StructuralPartialEq for LoweringError
Auto Trait Implementations§
impl Freeze for LoweringError
impl RefUnwindSafe for LoweringError
impl Send for LoweringError
impl Sync for LoweringError
impl Unpin for LoweringError
impl UnsafeUnpin for LoweringError
impl UnwindSafe for LoweringError
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§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>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.