[−][src]Struct libslide::grammar::mem::RcExprPat
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]
Sp: Into<Span>,
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.
fn deref(&self) -> &Self::Target
[src]
impl Display for RcExprPat
[src]
impl Emit for RcExprPat
[src]
fn emit_pretty(&self, config: EmitConfig) -> String
[src]
fn emit_s_expression(&self, config: EmitConfig) -> String
[src]
fn emit_latex(&self, config: EmitConfig) -> String
[src]
fn emit(&self, form: EmitFormat, config: EmitConfig) -> String
[src]
fn emit_debug(&self, _config: EmitConfig) -> String
[src]
fn emit_wrapped_latex(&self, config: EmitConfig) -> String
[src]
impl Eq for RcExprPat
[src]
impl Grammar for RcExprPat
[src]
impl Hash for RcExprPat
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<'a> LintRule<'a, RcExprPat> for SimilarNamesLinter<'a>
[src]
impl MatchRule<RcExprPat> for PatternMatch<RcExprPat>
[src]
fn match_rule(
rule: RcExprPat,
target: RcExprPat
) -> Option<PatternMatch<RcExprPat>>
[src]
rule: RcExprPat,
target: RcExprPat
) -> Option<PatternMatch<RcExprPat>>
impl Ord for RcExprPat
[src]
fn cmp(&self, other: &Self) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl Parser<RcExprPat> for ExpressionPatternParser
[src]
type Expr = RcExprPat
fn input(&mut self) -> &mut PeekIter<Token>ⓘ
[src]
fn push_diag(&mut self, diagnostic: Diagnostic)
[src]
fn parse(&mut self) -> RcExprPat
[src]
fn parse_float(&mut self, f: f64, span: Span) -> Self::Expr
[src]
fn parse_variable(&mut self, name: String, span: Span) -> Self::Expr
[src]
fn parse_var_pattern(&mut self, name: String, span: Span) -> Self::Expr
[src]
fn parse_const_pattern(&mut self, name: String, span: Span) -> Self::Expr
[src]
fn parse_any_pattern(&mut self, name: String, span: Span) -> Self::Expr
[src]
fn has_stmt_break(&mut self) -> bool
[src]
fn parse_open_paren(&mut self, open: Token) -> Self::Expr
[src]
fn parse_open_bracket(&mut self, open: Token) -> Self::Expr
[src]
fn done(&mut self) -> bool
[src]
fn expr(&mut self) -> Self::Expr
[src]
fn peek(&mut self) -> &Token
[src]
fn next(&mut self) -> Token
[src]
fn add_sub_term(&mut self) -> Self::Expr
[src]
fn mul_divide_mod_term(&mut self) -> Self::Expr
[src]
fn exp_term(&mut self) -> Self::Expr
[src]
fn num_term(&mut self) -> Self::Expr
[src]
fn extra_tokens_diag(
&mut self,
additional_diags: impl Fn(Diagnostic, Span) -> Diagnostic
)
[src]
&mut self,
additional_diags: impl Fn(Diagnostic, Span) -> Diagnostic
)
impl PartialEq<RcExprPat> for RcExprPat
[src]
impl PartialOrd<RcExprPat> for RcExprPat
[src]
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl RcExpression for RcExprPat
[src]
type Inner = ExprPat
The type of expression held by Self.
fn is_const(&self) -> bool
[src]
fn is_var(&self) -> bool
[src]
fn paren(inner: RcExprPat, span: Span) -> Self
[src]
fn bracket(inner: RcExprPat, span: Span) -> Self
[src]
fn binary(expr: BinaryExpr<Self>, span: Span) -> Self
[src]
fn unary(expr: UnaryExpr<Self>, span: Span) -> Self
[src]
fn empty(span: Span) -> Self
[src]
fn span(&self) -> Span
[src]
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]
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,