pub struct StructDeclV1(pub Box<Decl>);Expand description
One declaration inside a sig … end body (list(decl),
parser_v1.mly:591) — StructBindV1’s twin, hand-written Parse/
Unparse for the same E0275 reason. ast::Decl lives INSIDE the
#[recurse] module and SigExpr → SigBotV1 → StructDeclV1 → Decl → SigExpr is a runtime cycle; naming ast::Decl as a plain derived field
of ast::SigBotV1 would re-enter the module’s own SCC analysis. As an
opaque leaf it closes that cycle at RUNTIME while keeping both SCCs
singletons. NOTE: named after crate::cst::StructDecl (the mechanism),
even though it carries a sig-decl, not a struct binding.
Tuple Fields§
§0: Box<Decl>Trait Implementations§
Source§impl Clone for StructDeclV1
impl Clone for StructDeclV1
Source§fn clone(&self) -> StructDeclV1
fn clone(&self) -> StructDeclV1
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StructDeclV1
impl Debug for StructDeclV1
Source§impl Parse<WithSpan<Token, Span>> for StructDeclV1
impl Parse<WithSpan<Token, Span>> for StructDeclV1
Source§type Error = ParseError<Span>
type Error = ParseError<Span>
Every error must be convertible to the universal one, so a field’s failure can become the
enclosing type’s failure with no per-field where-predicate. Stating it HERE rather than at
each derived impl is what keeps it out of the obligation graph: a per-field
<FieldTy as Parse<Atom>>::Error: Into<…> predicate re-creates a projection cycle on a
recursive field (E0275), which decycle’s bound-peeling does not break.Source§fn parse_stream<S: ParseStream<Atom = Atom>>(
stream: &mut S,
) -> Result<Self, Self::Error>
fn parse_stream<S: ParseStream<Atom = Atom>>( stream: &mut S, ) -> Result<Self, Self::Error>
Parse from a reborrowable stream. Read more
Source§impl PartialEq for StructDeclV1
impl PartialEq for StructDeclV1
impl StructuralPartialEq for StructDeclV1
Auto Trait Implementations§
impl Freeze for StructDeclV1
impl RefUnwindSafe for StructDeclV1
impl Send for StructDeclV1
impl Sync for StructDeclV1
impl Unpin for StructDeclV1
impl UnsafeUnpin for StructDeclV1
impl UnwindSafe for StructDeclV1
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
Mutably borrows from an owned value. Read more