diff --git a/clippy_lints/Cargo.toml b/clippy_lints/Cargo.toml index b168f86f56aa8..15da5d6587803 100644 --- a/clippy_lints/Cargo.toml +++ b/clippy_lints/Cargo.toml @@ -33,6 +33,7 @@ unicode-normalization = "0.1" pulldown-cmark = "0.1" url = "1.7.0" if_chain = "0.1.3" +smallvec = { version = "0.6.5", features = ["union"] } [features] debugging = [] diff --git a/clippy_lints/src/copies.rs b/clippy_lints/src/copies.rs index 04a297e5e7e99..26669d8c4c2a9 100644 --- a/clippy_lints/src/copies.rs +++ b/clippy_lints/src/copies.rs @@ -6,7 +6,7 @@ use crate::rustc_data_structures::fx::FxHashMap; use std::collections::hash_map::Entry; use std::hash::BuildHasherDefault; use crate::syntax::symbol::LocalInternedString; -use crate::rustc_data_structures::small_vec::OneVector; +use smallvec::SmallVec; use crate::utils::{SpanlessEq, SpanlessHash}; use crate::utils::{get_parent_expr, in_macro, snippet, span_lint_and_then, span_note_and_lint}; @@ -235,9 +235,9 @@ fn lint_match_arms(cx: &LateContext<'_, '_>, expr: &Expr) { /// sequence of `if/else`. /// Eg. would return `([a, b], [c, d, e])` for the expression /// `if a { c } else if b { d } else { e }`. -fn if_sequence(mut expr: &Expr) -> (OneVector<&Expr>, OneVector<&Block>) { - let mut conds = OneVector::new(); - let mut blocks: OneVector<&Block> = OneVector::new(); +fn if_sequence(mut expr: &Expr) -> (SmallVec<[&Expr; 1]>, SmallVec<[&Block; 1]>) { + let mut conds = SmallVec::new(); + let mut blocks: SmallVec<[&Block; 1]> = SmallVec::new(); while let ExprKind::If(ref cond, ref then_expr, ref else_expr) = expr.node { conds.push(&**cond);