pub struct TopStage {
pub persistent: Option<KwPersistent>,
pub tilde: ExactTildeTok,
}Expand description
A binding’s own stage qualifier: ~ (stage 0) or persistent ~
(persistent stage), the prefix SATySFi 0.1 writes between val and the
bound name (parser_v1.mly:417-421, UTBindValue(Stage0 | Persistent0, _); the absent prefix is Stage1, the document stage).
Spelled with tokens rather than a rustyfi_lang::types::Stage because
this crate is the syntax layer and knows nothing of the type layer;
elaborate.rs maps the pair to a Stage (top_let_stage).
persistent is a 0.1-only keyword (lexer.rs’s version-gated table), so
under 0.0.6 the Some(_) shape is unreachable through the persistent
spelling and reachable only as a bare let ~x = e — syntax upstream
0.0.6 does not have (its EXACT_TILDE is a splice operand prefix,
v0.0.6 parser.mly:797, or macro syntax, :608/:1199 — never a
binding qualifier). PARSING it under 0.0.6 is the usual additive-accept
latitude this shared cst takes; ELABORATING it is not — elaborate.rs’s
binding_stage refuses a stage qualifier on 0.0.6-authored input with a
version error, so no 0.0.6 file can quietly acquire a per-binding stage.
Fields§
§persistent: Option<KwPersistent>§tilde: ExactTildeTokTrait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for TopStagewhere
__SyanMacro_Atom: Spanned + Clone,
Option<KwPersistent>: Parse<__SyanMacro_Atom>,
ExactTildeTok: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for TopStagewhere
__SyanMacro_Atom: Spanned + Clone,
Option<KwPersistent>: Parse<__SyanMacro_Atom>,
ExactTildeTok: Parse<__SyanMacro_Atom>,
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.