From 270730f51403f1e134d918fa0ec1312702569e20 Mon Sep 17 00:00:00 2001 From: Fausto Date: Tue, 1 Mar 2022 13:00:02 -0500 Subject: [PATCH] add suggestion to update trait if error is in impl --- .../nice_region_error/different_lifetimes.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs index 8022cd01f87..d7e88d02595 100644 --- a/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs +++ b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs @@ -167,7 +167,9 @@ fn suggest_adding_lifetime_params( if let Some(anon_reg) = self.tcx().is_suitable_region(sub) { let hir_id = self.tcx().hir().local_def_id_to_hir_id(anon_reg.def_id); - let generics = match self.tcx().hir().get(hir_id) { + let node = self.tcx().hir().get(hir_id); + let is_impl = matches!(&node, hir::Node::ImplItem(_)); + let generics = match node { hir::Node::Item(&hir::Item { kind: hir::ItemKind::Fn(_, ref generics, ..), .. @@ -209,8 +211,12 @@ fn suggest_adding_lifetime_params( suggestions.push(new_param_suggestion); } + let mut sugg = String::from("consider introducing a named lifetime parameter"); + if is_impl { + sugg.push_str(" and update trait if needed"); + } err.multipart_suggestion( - "consider introducing a named lifetime parameter", + sugg.as_str(), suggestions, Applicability::MaybeIncorrect, ); -- GitLab