pub struct TypeBindsErasedV1(pub Box<TypeBindsV1>);Expand description
A TypeBindsV1 behind a stream-erasing parse. Unlike every other
eraser this one targets an OUTSIDE type: SigExpr::WithType /
Decl::Type (inside) must reach bind_type, whose
TypeBindSingleV1 re-enters the module through plain-derived
ast::TypeExpr fields — an inside→outside-plain-derive→inside-root
chain with no precedent in cst.rs’s discipline. Erasing at the
boundary keeps the re-entry cheap (one stream type, monomorphized
once), exactly like every other cross-boundary edge.
Tuple Fields§
§0: Box<TypeBindsV1>Trait Implementations§
Source§impl Clone for TypeBindsErasedV1
impl Clone for TypeBindsErasedV1
Source§fn clone(&self) -> TypeBindsErasedV1
fn clone(&self) -> TypeBindsErasedV1
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 TypeBindsErasedV1
impl Debug for TypeBindsErasedV1
Source§impl Deref for TypeBindsErasedV1
impl Deref for TypeBindsErasedV1
impl Deref for TypeBindsErasedV1
Source§impl Parse<WithSpan<Token, Span>> for TypeBindsErasedV1
impl Parse<WithSpan<Token, Span>> for TypeBindsErasedV1
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 TypeBindsErasedV1
impl PartialEq for TypeBindsErasedV1
impl StructuralPartialEq for TypeBindsErasedV1
Auto Trait Implementations§
impl Freeze for TypeBindsErasedV1
impl RefUnwindSafe for TypeBindsErasedV1
impl Send for TypeBindsErasedV1
impl Sync for TypeBindsErasedV1
impl Unpin for TypeBindsErasedV1
impl UnsafeUnpin for TypeBindsErasedV1
impl UnwindSafe for TypeBindsErasedV1
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