pub enum ElabError {
UnsupportedConstruct {
hier_path: String,
detail: String,
},
Frontend(String),
MergeInvariantViolated {
canonical_hier_path: String,
other_hier_path: String,
member_index: usize,
detail: String,
},
}Expand description
An elaboration failure. netlist::elaborate never panics on malformed or
unsupported-but-syntactically-valid input; it returns one of these
instead.
Variants§
UnsupportedConstruct
A construct this pass does not (yet) lower — e.g. a checker/
primitive instantiation, a generate block, or any other symbol kind
this DFS’s member-kind match does not recognize as either “a child
instance” or “a known-benign non-instantiating member”. hier_path
is Symbol::hierarchical_path() of the offending symbol; detail
names the construct (its SymbolKind, Debug-formatted). Never a
silent skip: a construct this pass cannot account for must never
cause elaboration to quietly under-report the design’s hierarchy
(ARCHITECTURE §7 item 9).
Frontend(String)
A sv_lang/dataflow call itself returned an unexpected None/Err
where this pass’s own invariants say it should not have (e.g. an
Instance symbol with no instance_body()).
MergeInvariantViolated
Task 3 (NL-015): confirm_and_assign_symbol_keys’s defensive
member-for-member re-check disagreed with
Symbol::instance_body_has_same_type’s “same type” verdict for a
group merge_groups_within_bucket already decided to merge. Never a
panic and never a silently-corrupted merged Template — this is the
hard-fail NL-015 requires. member_index is the position (in
members() order) of the first disagreeing member.
Trait Implementations§
impl Eq for ElabError
Source§impl Error for ElabError
impl Error for ElabError
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()
impl StructuralPartialEq for ElabError
Auto Trait Implementations§
impl Freeze for ElabError
impl RefUnwindSafe for ElabError
impl Send for ElabError
impl Sync for ElabError
impl Unpin for ElabError
impl UnsafeUnpin for ElabError
impl UnwindSafe for ElabError
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.