pub struct KindV1 {
pub first: VarTok,
pub rest: Vec<KindArrowV1>,
}Expand description
kind (parser_v1.mly:672-677): kind_base (ARROW kind_base)*
flattened head+Vec — the same deferred-fold shape as
TypeProd/PatCons, keeping the type acyclic. kind_base is a
bare LOWER (:678-681, MKindName), so the whole kind grammar is
token-only. (kind_row, :682-683, arrives with row quantifiers,
not yet implemented.)
Fields§
§first: VarTok§rest: Vec<KindArrowV1>Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for KindV1
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for KindV1
Source§type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
type Error = ParseError<<__SyanMacro_Atom as Spanned>::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<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>(
__syan_stream: &mut __SyanMacro_S,
) -> Result<Self, Self::Error>
fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>( __syan_stream: &mut __SyanMacro_S, ) -> Result<Self, Self::Error>
Parse from a reborrowable stream. Read more
impl StructuralPartialEq for KindV1
Auto Trait Implementations§
impl Freeze for KindV1
impl RefUnwindSafe for KindV1
impl Send for KindV1
impl Sync for KindV1
impl Unpin for KindV1
impl UnsafeUnpin for KindV1
impl UnwindSafe for KindV1
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