Skip to content

Commit 270730f

Browse files
committed
add suggestion to update trait if error is in impl
1 parent abcccc9 commit 270730f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
167167
if let Some(anon_reg) = self.tcx().is_suitable_region(sub) {
168168
let hir_id = self.tcx().hir().local_def_id_to_hir_id(anon_reg.def_id);
169169

170-
let generics = match self.tcx().hir().get(hir_id) {
170+
let node = self.tcx().hir().get(hir_id);
171+
let is_impl = matches!(&node, hir::Node::ImplItem(_));
172+
let generics = match node {
171173
hir::Node::Item(&hir::Item {
172174
kind: hir::ItemKind::Fn(_, ref generics, ..),
173175
..
@@ -209,8 +211,12 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
209211
suggestions.push(new_param_suggestion);
210212
}
211213

214+
let mut sugg = String::from("consider introducing a named lifetime parameter");
215+
if is_impl {
216+
sugg.push_str(" and update trait if needed");
217+
}
212218
err.multipart_suggestion(
213-
"consider introducing a named lifetime parameter",
219+
sugg.as_str(),
214220
suggestions,
215221
Applicability::MaybeIncorrect,
216222
);

0 commit comments

Comments
 (0)