[][src]Struct libslide::grammar::mem::RcExprPat

pub struct RcExprPat {
    expr: Arc<ExprPat>,
    pub span: Span,
}

An reference-counted version of an expression.

NB: counted expressions are equivalent if they point to the same underlying expression, even though two counted expressions may have different spans.

Fields

expr: Arc<ExprPat>

The underlying expression.

span: Span

The original span of this expression from an input source code. Even though the expression may be shared, this span is distinct and serves as a backwards-mapping to where the expression originally came from.

Implementations

impl RcExprPat[src]

pub(crate) fn new<Sp>(expr: ExprPat, span: Sp) -> Self where
    Sp: Into<Span>, 
[src]

Creates a new reference-counted expression at a span.

Trait Implementations

impl AsRef<ExprPat> for RcExprPat[src]

impl Clone for RcExprPat[src]

impl Debug for RcExprPat[src]

impl Deref for RcExprPat[src]

type Target = Self::Inner

The resulting type after dereferencing.

impl Display for RcExprPat[src]

impl Emit for RcExprPat[src]

impl Eq for RcExprPat[src]

impl Grammar for RcExprPat[src]

impl Hash for RcExprPat[src]

impl<'a> LintRule<'a, RcExprPat> for SimilarNamesLinter<'a>[src]

impl MatchRule<RcExprPat> for PatternMatch<RcExprPat>[src]

impl Ord for RcExprPat[src]

impl Parser<RcExprPat> for ExpressionPatternParser[src]

type Expr = RcExprPat

impl PartialEq<RcExprPat> for RcExprPat[src]

impl PartialOrd<RcExprPat> for RcExprPat[src]

impl RcExpression for RcExprPat[src]

type Inner = ExprPat

The type of expression held by Self.

impl Transformer<RcExprPat, RcExpr> for PatternMatch<RcExpr>[src]

fn transform(&self, item: RcExprPat) -> RcExpr[src]

Transforms a pattern expression into an expression by replacing patterns with target expressions known by the PatternMatch.

This transformation can be used to apply a rule on an expression by transforming the RHS using patterns matched between the LHS of the rule and the target expression.

impl Transformer<RcExprPat, RcExprPat> for PatternMatch<RcExprPat>[src]

impl Transformer<RcExprPat, RcExprPat> for Rule[src]

fn transform(&self, target: RcExprPat) -> RcExprPat[src]

Bootstraps a rule with another (or possibly the same) rule.

Auto Trait Implementations

impl RefUnwindSafe for RcExprPat

impl Send for RcExprPat

impl Sync for RcExprPat

impl Unpin for RcExprPat

impl UnwindSafe for RcExprPat

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.