Do not use hir_ty_to_ty

This commit is contained in:
Esteban Küber 2022-12-23 16:40:22 -08:00
parent 12fd9011b8
commit ea7de0d485
3 changed files with 10 additions and 17 deletions

View File

@ -3447,7 +3447,6 @@ dependencies = [
"rustc_errors", "rustc_errors",
"rustc_graphviz", "rustc_graphviz",
"rustc_hir", "rustc_hir",
"rustc_hir_analysis",
"rustc_index", "rustc_index",
"rustc_infer", "rustc_infer",
"rustc_lexer", "rustc_lexer",

View File

@ -15,7 +15,6 @@ rustc_data_structures = { path = "../rustc_data_structures" }
rustc_errors = { path = "../rustc_errors" } rustc_errors = { path = "../rustc_errors" }
rustc_graphviz = { path = "../rustc_graphviz" } rustc_graphviz = { path = "../rustc_graphviz" }
rustc_hir = { path = "../rustc_hir" } rustc_hir = { path = "../rustc_hir" }
rustc_hir_analysis = { path = "../rustc_hir_analysis" }
rustc_index = { path = "../rustc_index" } rustc_index = { path = "../rustc_index" }
rustc_infer = { path = "../rustc_infer" } rustc_infer = { path = "../rustc_infer" }
rustc_lexer = { path = "../rustc_lexer" } rustc_lexer = { path = "../rustc_lexer" }

View File

@ -6,7 +6,6 @@ use rustc_errors::{Applicability, Diagnostic};
use rustc_hir as hir; use rustc_hir as hir;
use rustc_hir::def::{CtorKind, Namespace}; use rustc_hir::def::{CtorKind, Namespace};
use rustc_hir::GeneratorKind; use rustc_hir::GeneratorKind;
use rustc_hir_analysis::hir_ty_to_ty;
use rustc_infer::infer::TyCtxtInferExt; use rustc_infer::infer::TyCtxtInferExt;
use rustc_middle::mir::tcx::PlaceTy; use rustc_middle::mir::tcx::PlaceTy;
use rustc_middle::mir::{ use rustc_middle::mir::{
@ -1137,7 +1136,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
&& Some(def.did()) == self.infcx.tcx.lang_items().pin_type() && Some(def.did()) == self.infcx.tcx.lang_items().pin_type()
&& let ty::Ref(_, _, hir::Mutability::Mut) = substs.type_at(0).kind() && let ty::Ref(_, _, hir::Mutability::Mut) = substs.type_at(0).kind()
// FIXME: this is a hack because we can't call `can_eq` // FIXME: this is a hack because we can't call `can_eq`
&& ty.to_string() == && ty.to_string() ==
tcx.fn_sig(method_did).input(0).skip_binder().to_string() tcx.fn_sig(method_did).input(0).skip_binder().to_string()
{ {
err.span_suggestion_verbose( err.span_suggestion_verbose(
@ -1155,22 +1154,18 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
if let Some(def_id) = impl_def_id.as_local() if let Some(def_id) = impl_def_id.as_local()
&& let hir_id = tcx.hir().local_def_id_to_hir_id(def_id) && let hir_id = tcx.hir().local_def_id_to_hir_id(def_id)
&& let hir::Node::Item(hir::Item { && let hir::Node::Item(hir::Item {
kind: hir::ItemKind::Impl(hir::Impl { kind: hir::ItemKind::Impl(_),
self_ty,
..
}),
.. ..
}) = tcx.hir().get(hir_id) }) = tcx.hir().get(hir_id)
&& tcx.type_of(impl_def_id) == ty
{ {
if ty == hir_ty_to_ty(tcx, self_ty) { err.span_suggestion_verbose(
err.span_suggestion_verbose( fn_call_span.shrink_to_lo(),
fn_call_span.shrink_to_lo(), "you can `clone` the value and consume it, but this might \
"you can `clone` the value and consume it, but this \ not be your desired behavior",
might not be your desired behavior", "clone().".to_string(),
"clone().".to_string(), Applicability::MaybeIncorrect,
Applicability::MaybeIncorrect, );
);
}
} }
} }
} }