pub enum ParamBody {
Pat(PatBot),
Ascribed {
paren: ParenGroup<()>,
inner: AscribedInnerV1,
},
}Expand description
A param_unit’s trailing shape (parser_v1.mly:635-646): either a
plain patbot, or a ( pattern : typ ) ascribed pattern
(parser_v1.mly:641-645).
Variants§
Pat(PatBot)
Tried FIRST: ( x : int ) fails patbot’s own paren body at the
: (a patbot paren group expects only more patterns/,/))
and backtracks to Ascribed cleanly (ordered choice, no token
stolen).
Ascribed
( pattern : typ ) — a FULL pattern (not patbot) ascribed
with a full typ, both via erasers (same cycle-avoidance
discipline as every other satellite in this module).
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for ParamBodywhere
__SyanMacro_Atom: Spanned + Clone,
PatBot: Parse<__SyanMacro_Atom>,
ParenGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_paren_ParamBody_Ascribed_1383305089136131385: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for ParamBodywhere
__SyanMacro_Atom: Spanned + Clone,
PatBot: Parse<__SyanMacro_Atom>,
ParenGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_paren_ParamBody_Ascribed_1383305089136131385: Parse<__SyanMacro_Atom>,
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 ParamBody
Source§impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for ParamBodywhere
PatBot: Unparse<__SyanMacro_Atom>,
ParenGroup<()>: GroupUnparse<__SyanMacro_Atom>,
for<'syan_substruct_ref> __SyanSubstructOfRef_paren_ParamBody_Ascribed_1383305089136131385<'syan_substruct_ref>: Unparse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for ParamBodywhere
PatBot: Unparse<__SyanMacro_Atom>,
ParenGroup<()>: GroupUnparse<__SyanMacro_Atom>,
for<'syan_substruct_ref> __SyanSubstructOfRef_paren_ParamBody_Ascribed_1383305089136131385<'syan_substruct_ref>: Unparse<__SyanMacro_Atom>,
Auto Trait Implementations§
impl Freeze for ParamBody
impl RefUnwindSafe for ParamBody
impl Send for ParamBody
impl Sync for ParamBody
impl Unpin for ParamBody
impl UnsafeUnpin for ParamBody
impl UnwindSafe for ParamBody
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