pub enum BuildError {
Show 20 variants
FourStateOperator {
op: &'static str,
},
FourStateLiteral {
text: String,
},
VirtualInterfaceRand {
name: String,
},
NonIntegral {
what: String,
},
ForeignObjectAccess {
what: String,
},
NotRand {
name: String,
},
Unsupported {
construct: String,
task: &'static str,
},
OutOfRangeSelect {
what: String,
},
Missing {
what: String,
},
RandcTooWide {
name: String,
width: u32,
max: u32,
},
BadSolveOperand {
what: String,
},
BadDist {
what: String,
},
BadUnique {
what: String,
},
RealConstraint {
what: String,
},
BadArray {
what: String,
},
BadFunction {
function: String,
what: String,
},
BadSoft {
what: String,
},
MissingExternBody {
name: String,
},
Order(OrderError),
Ir(IrError),
}Expand description
Why a constraint could not be turned into IR.
Variants§
FourStateOperator
A 4-state operator (===, !==, ==?, !=?): LRM 18.3.
FourStateLiteral
A literal or constant with an X/Z bit: LRM 18.3.
VirtualInterfaceRand
A rand variable of virtual-interface type (plan section 1.5).
NonIntegral
A value that is not an integral bit-vector (real, string, class handle, unpacked aggregate, …).
ForeignObjectAccess
A reference through another object (other.field) that the joint
solver of plan task C17 does not cover.
NotRand
declare_rand on a symbol that is not rand.
Unsupported
A construct this task (or the current plan position) does not build.
OutOfRangeSelect
A constant select index outside the declared range.
Missing
An sv-lang node lacked an accessor the builder needs.
RandcTooWide
A randc variable wider than the permutation engine supports (LRM
18.4.2 allows the limit as long as it is at least 8 bits).
BadSolveOperand
A solve ... before operand that LRM 18.5.9 does not allow (not a
rand variable of the class, or a randc one).
BadDist
A dist (or value range) the LRM does not allow, or one this
implementation cannot weight exactly.
BadUnique
A unique group the LRM does not allow (a randc member, members of
different types, something that is not a variable; 18.5.4).
RealConstraint
A constraint on a real/shortreal variable the real-domain solver
cannot take (see super::real_domain), or a real rand declaration
the LRM does not allow.
BadArray
An array constraint the LRM does not allow or that has no meaning (an associative array’s size or elements, a random index; 18.4, 18.5.7).
BadFunction
A function called from a constraint that cannot be evaluated before the solve (18.5.11): a side effect, a construct outside the supported subset, a read of a random variable that is not an argument.
BadSoft
A soft constraint or disable soft the LRM does not allow or that
this implementation cannot relax exactly (18.5.13).
MissingExternBody
An extern constraint name; prototype with no external constraint
block anywhere in its scope (18.5.1).
Order(OrderError)
The solve ... before constraints have no order (a cycle).
Ir(IrError)
The built tree failed Expr::validate (a builder bug).
Trait Implementations§
Source§impl Clone for BuildError
impl Clone for BuildError
Source§impl Debug for BuildError
impl Debug for BuildError
Source§impl Display for BuildError
impl Display for BuildError
impl Eq for BuildError
Source§impl Error for BuildError
impl Error for BuildError
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 From<IrError> for BuildError
impl From<IrError> for BuildError
Source§impl From<OrderError> for BuildError
impl From<OrderError> for BuildError
Source§fn from(e: OrderError) -> Self
fn from(e: OrderError) -> Self
Source§impl PartialEq for BuildError
impl PartialEq for BuildError
impl StructuralPartialEq for BuildError
Auto Trait Implementations§
impl Freeze for BuildError
impl RefUnwindSafe for BuildError
impl Send for BuildError
impl Sync for BuildError
impl Unpin for BuildError
impl UnsafeUnpin for BuildError
impl UnwindSafe for BuildError
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.