enum TrackedFormal {
    NoDefault {
        local_idx: LocalIdx,
        pattern_entry: PatEntry,
    },
    WithDefault {
        local_idx: LocalIdx,
        finalise_request_idx: LocalIdx,
        default_expr: Expr,
        pattern_entry: PatEntry,
    },
}Expand description
When compiling functions with an argument attribute set destructuring pattern,
we need to do multiple passes over the declared formal arguments when setting
up their local bindings (similarly to let … in expressions and recursive
attribute sets. For this purpose, this struct is used to represent the two
kinds of formal arguments:
- TrackedFormal::NoDefaultis always required and causes an evaluation error if the corresponding attribute is missing in a function call.
- TrackedFormal::WithDefaultmay be missing in the passed attribute set— in which case a- default_exprwill be evaluated and placed in the formal argument’s local variable slot.
Variants§
Implementations§
Source§impl TrackedFormal
 
impl TrackedFormal
Auto Trait Implementations§
impl Freeze for TrackedFormal
impl !RefUnwindSafe for TrackedFormal
impl !Send for TrackedFormal
impl !Sync for TrackedFormal
impl Unpin for TrackedFormal
impl !UnwindSafe for TrackedFormal
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
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more