pub struct PatNonVarErasedV1(pub Box<Pattern>);Expand description
An ast::Pattern that is not a bare variable — upstream 0.1’s own
pattern_non_var (parser_v1.mly:796), and the 0.1 twin of
crate::cst::PatNonVarErased, whose doc comment carries the whole
story.
0.1 blows up the same way and slightly harder: over a chain of
let vN = N in ending in a broken let, 5,755 serves at 3, 46,971 at 6,
376,699 at 9, 3,014,523 at 12, 24,117,115 at 15 — the same ×2.000 per
let, off a larger constant. [Expr::LetIn] subsumes every
bare-variable target here too (its params is greedy but no
Param begins with =), so refusing one costs nothing and
makes the two let alternatives disjoint.
Tuple Fields§
§0: Box<Pattern>Trait Implementations§
Source§impl Clone for PatNonVarErasedV1
impl Clone for PatNonVarErasedV1
Source§fn clone(&self) -> PatNonVarErasedV1
fn clone(&self) -> PatNonVarErasedV1
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 PatNonVarErasedV1
impl Debug for PatNonVarErasedV1
Source§impl Deref for PatNonVarErasedV1
impl Deref for PatNonVarErasedV1
impl Deref for PatNonVarErasedV1
Source§impl Parse<WithSpan<Token, Span>> for PatNonVarErasedV1
impl Parse<WithSpan<Token, Span>> for PatNonVarErasedV1
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 PatNonVarErasedV1
impl PartialEq for PatNonVarErasedV1
impl StructuralPartialEq for PatNonVarErasedV1
Auto Trait Implementations§
impl Freeze for PatNonVarErasedV1
impl RefUnwindSafe for PatNonVarErasedV1
impl Send for PatNonVarErasedV1
impl Sync for PatNonVarErasedV1
impl Unpin for PatNonVarErasedV1
impl UnsafeUnpin for PatNonVarErasedV1
impl UnwindSafe for PatNonVarErasedV1
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