trait UnusedDelimLint {
    const DELIM_STR: &'static str;
    const LINT_EXPR_IN_PATTERN_MATCHING_CTX: bool;

    // Required methods
    fn lint(&self) -> &'static Lint;
    fn check_unused_delims_expr(
        &self,
        cx: &EarlyContext<'_>,
        value: &Expr,
        ctx: UnusedDelimsCtx,
        followed_by_block: bool,
        left_pos: Option<BytePos>,
        right_pos: Option<BytePos>,
        is_kw: bool
    );

    // Provided methods
    fn is_expr_delims_necessary(
        inner: &Expr,
        followed_by_block: bool,
        followed_by_else: bool
    ) -> bool { ... }
    fn emit_unused_delims_expr(
        &self,
        cx: &EarlyContext<'_>,
        value: &Expr,
        ctx: UnusedDelimsCtx,
        left_pos: Option<BytePos>,
        right_pos: Option<BytePos>,
        is_kw: bool
    ) { ... }
    fn emit_unused_delims(
        &self,
        cx: &EarlyContext<'_>,
        value_span: Span,
        spans: Option<(Span, Span)>,
        msg: &str,
        keep_space: (bool, bool),
        is_kw: bool
    ) { ... }
    fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &Expr) { ... }
    fn check_stmt(&mut self, cx: &EarlyContext<'_>, s: &Stmt) { ... }
    fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { ... }
}
Expand description

Used by both UnusedParens and UnusedBraces to prevent code duplication.

Required Associated Constants§

source

const DELIM_STR: &'static str

source

const LINT_EXPR_IN_PATTERN_MATCHING_CTX: bool

Due to ref pattern, there can be a difference between using { expr } and expr in pattern-matching contexts. This means that we should only lint unused_parens and not unused_braces in this case.

let mut a = 7;
let ref b = { a }; // We actually borrow a copy of `a` here.
a += 1; // By mutating `a` we invalidate any borrows of `a`.
assert_eq!(b + 1, a); // `b` does not borrow `a`, so we can still use it here.

Required Methods§

source

fn lint(&self) -> &'static Lint

source

fn check_unused_delims_expr( &self, cx: &EarlyContext<'_>, value: &Expr, ctx: UnusedDelimsCtx, followed_by_block: bool, left_pos: Option<BytePos>, right_pos: Option<BytePos>, is_kw: bool )

Provided Methods§

source

fn is_expr_delims_necessary( inner: &Expr, followed_by_block: bool, followed_by_else: bool ) -> bool

source

fn emit_unused_delims_expr( &self, cx: &EarlyContext<'_>, value: &Expr, ctx: UnusedDelimsCtx, left_pos: Option<BytePos>, right_pos: Option<BytePos>, is_kw: bool )

source

fn emit_unused_delims( &self, cx: &EarlyContext<'_>, value_span: Span, spans: Option<(Span, Span)>, msg: &str, keep_space: (bool, bool), is_kw: bool )

source

fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &Expr)

source

fn check_stmt(&mut self, cx: &EarlyContext<'_>, s: &Stmt)

source

fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item)

Object Safety§

This trait is not object safe.

Implementors§