pub enum RelAttrError {
RelAbsConflict {
field: &'static str,
},
Expr(ShapeExprError),
SymbolicGap {
field: &'static str,
},
Negative {
field: &'static str,
value: i64,
},
AxisLastUnsupported {
tag: OpTag,
},
NoChildOperand,
FrameNotExpressible {
field: &'static str,
frame: Vec<i64>,
missing_ctor: u8,
},
}Expand description
A shape-relative attr resolution failure — a typed decline, never a panic.
The emit-integration caller (T3) surfaces any of these as a decompose
fixpoint (return id, G2); the registration-validation caller rejects the
region. The field names the CONCRETE sibling the rel field resolves into
("target_shape", "slice_start", "slice_len", "axis", "dims").
Variants§
RelAbsConflict
A rel field and its concrete sibling are BOTH set — ambiguous authoring (rel XOR abs per field), refused rather than given a silent precedence.
Expr(ShapeExprError)
The underlying shape-expression evaluation declined (bind out of range,
axis out of range, divide-by-zero, Param with no param threading, …).
SymbolicGap
The expression evaluated over a SYMBOLIC bind extent → a surfaced gap (§6.20-0004): a rel attr cannot resolve concrete at emit time.
Negative
The expression produced a negative value where a non-negative extent/offset is required.
AxisLastUnsupported
axis_last on a tag with no axis carrier (e.g. Add) — meaningless,
refused (build-time validation, never silently ignored).
NoChildOperand
axis_last with no child operand — no rank to resolve LAST against.
FrameNotExpressible
The region’s Bind-space broadcast frame is assembled by per-axis max
across ≥2 binds (a[N,1] ⊗ b[1,M] → [N,M]), so NO single operand carries
it — and SameAs { operand }, the §6.20 EXPRESSION kind’s only
whole-shape constructor, therefore cannot express it. Accepting the
SameAs would SILENTLY resolve a BroadcastTo target to a PARTIAL frame
([N,1] or [1,M]) and emit the wrong graph, so it is refused instead
(Baracuda’s §6.20 finding). A Dims-class gap: missing_ctor is the
reserved wire tag of the constructor that WOULD express it
(fuel_kernel_seam_types::shape_expr::TAG_DIMS = 0x0B, a §6.20-0002
extension-registry entrant — proposal filed KISS #80). frame is the
computed per-axis-max frame, for telemetry.
Trait Implementations§
Source§impl Clone for RelAttrError
impl Clone for RelAttrError
Source§impl Debug for RelAttrError
impl Debug for RelAttrError
impl Eq for RelAttrError
Source§impl PartialEq for RelAttrError
impl PartialEq for RelAttrError
impl StructuralPartialEq for RelAttrError
Auto Trait Implementations§
impl Freeze for RelAttrError
impl RefUnwindSafe for RelAttrError
impl Send for RelAttrError
impl Sync for RelAttrError
impl Unpin for RelAttrError
impl UnsafeUnpin for RelAttrError
impl UnwindSafe for RelAttrError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.