pub struct RecClauseV1 {
pub name: BindName,
pub params: Vec<Param>,
pub eq: DefEqTok,
pub value: ExprErasedV1,
}Expand description
One name param* = value clause of a val rec/let rec group —
upstream bind_value_nonrec (parser_v1.mly:459-465) as reached
from bind_value_rec (:455-458). 0.1 deltas from
crate::cst::ast::RecBinding: no : ty ascription and no
multi-clause | patbot* = value sugar exist in 0.1 at all
(bind_value_nonrec has neither a COLON ty nor a BAR
alternative — 0.0.6’s recdecargpart machinery has no 0.1
counterpart), so there are no ascription/leading_bar/extra
fields to mirror. params is upstream’s list(param_unit) (see
super::Param’s doc comment), reaching PatBot through the same
cross-root DAG edge cst::ast::RecBinding.params makes
(cst.rs:753-762); value goes through super::ExprErasedV1 (not
Box<Expr>) so this struct never joins Expr’s SCC — byte-for-byte
cst.rs’s own RecBinding.value: ExprErased discipline.
Fields§
§name: BindName§params: Vec<Param>§eq: DefEqTok§value: ExprErasedV1Trait Implementations§
Source§impl Clone for RecClauseV1
impl Clone for RecClauseV1
Source§fn clone(&self) -> RecClauseV1
fn clone(&self) -> RecClauseV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RecClauseV1
impl Debug for RecClauseV1
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for RecClauseV1
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for RecClauseV1
Source§type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
<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.