migrate: noop_method_call.rs

This commit is contained in:
Rejyr 2022-09-05 12:42:58 -04:00
parent 6fb3a38f9b
commit 56fc66d196
2 changed files with 19 additions and 7 deletions

View File

@ -6,6 +6,16 @@
use crate::LateContext; use crate::LateContext;
#[derive(LintDiagnostic)]
#[diag(lint_noop_method_call)]
#[note]
pub struct NoopMethodCallDiag<'a> {
pub method: Symbol,
pub receiver_ty: Ty<'a>,
#[label]
pub label: Span,
}
#[derive(LintDiagnostic)] #[derive(LintDiagnostic)]
#[diag(lint_pass_by_value)] #[diag(lint_pass_by_value)]
pub struct PassByValueDiag { pub struct PassByValueDiag {

View File

@ -1,7 +1,10 @@
#![deny(rustc::untranslatable_diagnostic)]
#![deny(rustc::diagnostic_outside_of_impl)]
use crate::context::LintContext; use crate::context::LintContext;
use crate::lints::NoopMethodCallDiag;
use crate::rustc_middle::ty::TypeVisitable;
use crate::LateContext; use crate::LateContext;
use crate::LateLintPass; use crate::LateLintPass;
use rustc_errors::fluent;
use rustc_hir::def::DefKind; use rustc_hir::def::DefKind;
use rustc_hir::{Expr, ExprKind}; use rustc_hir::{Expr, ExprKind};
use rustc_middle::ty; use rustc_middle::ty;
@ -85,11 +88,10 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
} }
let expr_span = expr.span; let expr_span = expr.span;
let span = expr_span.with_lo(receiver.span.hi()); let span = expr_span.with_lo(receiver.span.hi());
cx.struct_span_lint(NOOP_METHOD_CALL, span, fluent::lint_noop_method_call, |lint| { cx.emit_spanned_lint(
lint.set_arg("method", call.ident.name) NOOP_METHOD_CALL,
.set_arg("receiver_ty", receiver_ty) span,
.span_label(span, fluent::label) NoopMethodCallDiag { method: call.ident.name, receiver_ty, label: span },
.note(fluent::note) );
});
} }
} }