X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=clippy_lints%2Fsrc%2Fdouble_parens.rs;h=52a5e2a1a49d6c21ed94bb145e0683f2bf892acf;hb=e5a5b0a0774625eebbe7b29c67b49dc6431544d1;hp=3b476b81707fec6cfe3b5dbf7a9359641ff1d2d2;hpb=ece8b8e7d6a37caa809c1fc1c8c8dd6263ea11ff;p=rust.git diff --git a/clippy_lints/src/double_parens.rs b/clippy_lints/src/double_parens.rs index 3b476b81707..52a5e2a1a49 100644 --- a/clippy_lints/src/double_parens.rs +++ b/clippy_lints/src/double_parens.rs @@ -1,53 +1,39 @@ -// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -use crate::utils::{in_macro, span_lint}; +use crate::utils::span_lint; +use rustc::declare_lint_pass; use rustc::lint::{EarlyContext, EarlyLintPass, LintArray, LintPass}; -use rustc::{declare_tool_lint, lint_array}; +use rustc_session::declare_tool_lint; use syntax::ast::*; -/// **What it does:** Checks for unnecessary double parentheses. -/// -/// **Why is this bad?** This makes code harder to read and might indicate a -/// mistake. -/// -/// **Known problems:** None. -/// -/// **Example:** -/// ```rust -/// ((0)) -/// foo((0)) -/// ((1, 2)) -/// ``` declare_clippy_lint! { + /// **What it does:** Checks for unnecessary double parentheses. + /// + /// **Why is this bad?** This makes code harder to read and might indicate a + /// mistake. + /// + /// **Known problems:** None. + /// + /// **Example:** + /// ```rust + /// # fn foo(bar: usize) {} + /// ((0)); + /// foo((0)); + /// ((1, 2)); + /// ``` pub DOUBLE_PARENS, complexity, "Warn on unnecessary double parentheses" } -#[derive(Copy, Clone)] -pub struct DoubleParens; - -impl LintPass for DoubleParens { - fn get_lints(&self) -> LintArray { - lint_array!(DOUBLE_PARENS) - } -} +declare_lint_pass!(DoubleParens => [DOUBLE_PARENS]); impl EarlyLintPass for DoubleParens { fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { - if in_macro(expr.span) { + if expr.span.from_expansion() { return; } - match expr.node { - ExprKind::Paren(ref in_paren) => match in_paren.node { + match expr.kind { + ExprKind::Paren(ref in_paren) => match in_paren.kind { ExprKind::Paren(_) | ExprKind::Tup(_) => { span_lint( cx, @@ -61,7 +47,7 @@ fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { ExprKind::Call(_, ref params) => { if params.len() == 1 { let param = ¶ms[0]; - if let ExprKind::Paren(_) = param.node { + if let ExprKind::Paren(_) = param.kind { span_lint( cx, DOUBLE_PARENS, @@ -74,7 +60,7 @@ fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { ExprKind::MethodCall(_, ref params) => { if params.len() == 2 { let param = ¶ms[1]; - if let ExprKind::Paren(_) = param.node { + if let ExprKind::Paren(_) = param.kind { span_lint( cx, DOUBLE_PARENS,