use if_chain::if_chain;
-use rustc_errors::Applicability;
use rustc::hir;
use rustc::hir::intravisit::{walk_expr, NestedVisitorMap, Visitor};
use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
use rustc::{declare_tool_lint, lint_array};
+use rustc_errors::Applicability;
use crate::utils::{
- get_trait_def_id, implements_trait, snippet_opt, span_lint_and_then, trait_ref_of_method,
- SpanlessEq,
+ get_trait_def_id, implements_trait, snippet_opt, span_lint_and_then, trait_ref_of_method, SpanlessEq,
};
use crate::utils::{higher, sugg};
use syntax::source_map::{ExpnFormat, Span};
use crate::consts::{constant, Constant};
+use crate::utils::sugg::Sugg;
use crate::utils::{
get_item_name, get_parent_expr, implements_trait, in_constant, in_macro, is_integer_literal, iter_input_pats,
last_path_segment, match_qpath, match_trait_method, paths, snippet, span_lint, span_lint_and_then, walk_ptrs_ty,
SpanlessEq,
};
-use crate::utils::sugg::Sugg;
declare_clippy_lint! {
/// **What it does:** Checks for function arguments and let bindings denoted as
use if_chain::if_chain;
-use rustc::{declare_tool_lint, lint_array};
use rustc::hir::def::Def;
use rustc::hir::*;
use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
+use rustc::{declare_tool_lint, lint_array};
use rustc_errors::Applicability;
use syntax::ptr::P;
-use crate::utils::{match_def_path, match_type, span_lint_and_then, SpanlessEq};
use crate::utils::paths::*;
use crate::utils::sugg::Sugg;
+use crate::utils::{match_def_path, match_type, span_lint_and_then, SpanlessEq};
declare_clippy_lint! {
/// **What it does:** Checks for expressions that could be replaced by the question mark operator.
/// This should not compile-fail with:
///
/// error[E0277]: the trait bound `T: Foo` is not satisfied
-///
// See rust-lang/rust-clippy#2760.
trait Foo {