use clippy_utils::consts::{constant_context, Constant};
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::consts::{constant_context, Constant};
use clippy_utils::diagnostics::span_lint_and_sugg;
impl<'tcx> LateLintPass<'tcx> for RepeatOnce {
fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'tcx Expr<'_>) {
if_chain! {
impl<'tcx> LateLintPass<'tcx> for RepeatOnce {
fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'tcx Expr<'_>) {
if_chain! {
- if let ExprKind::MethodCall(path, _, [receiver, count], _) = &expr.kind;
+ if let ExprKind::MethodCall(path, [receiver, count], _) = &expr.kind;
- if let Some(Constant::Int(1)) = constant_context(cx, cx.typeck_results()).expr(count);
- if !in_macro(receiver.span);
+ if constant_context(cx, cx.typeck_results()).expr(count) == Some(Constant::Int(1));
+ if !receiver.span.from_expansion();
format!("{}.to_vec()", snippet(cx, receiver.span, r#""...""#)),
Applicability::MachineApplicable,
);
format!("{}.to_vec()", snippet(cx, receiver.span, r#""...""#)),
Applicability::MachineApplicable,
);