未验证 提交 3cce9507 编写于 作者: Y Yuki Okushi 提交者: GitHub

Rollup merge of #67671 - estebank:type-impl-trait, r=davidtwco

Account for `type X = impl Trait;` in lifetime suggestion

Fix #67619.
......@@ -800,7 +800,7 @@ fn add_static_impl_trait_suggestion(
// If there is a static predicate, then the only sensible suggestion is to replace
// fr with `'static`.
if has_static_predicate {
diag.help(&format!("consider replacing `{}` with `{}`", fr_name, static_str,));
diag.help(&format!("consider replacing `{}` with `{}`", fr_name, static_str));
} else {
// Otherwise, we should suggest adding a constraint on the return type.
let span = infcx.tcx.def_span(*did);
......@@ -810,7 +810,12 @@ fn add_static_impl_trait_suggestion(
} else {
"'_".to_string()
};
let suggestion = if snippet.ends_with(";") {
// `type X = impl Trait;`
format!("{} + {};", &snippet[..snippet.len() - 1], suggestable_fr_name)
} else {
format!("{} + {}", snippet, suggestable_fr_name)
};
diag.span_suggestion(
span,
&format!(
......@@ -818,7 +823,7 @@ fn add_static_impl_trait_suggestion(
`{}`, add `{}` as a bound",
fr_name, suggestable_fr_name,
),
format!("{} + {}", snippet, suggestable_fr_name),
suggestion,
Applicability::MachineApplicable,
);
}
......
......@@ -7,7 +7,7 @@ LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
= help: consider replacing `'a` with `'static`
help: to allow this `impl Trait` to capture borrowed data with lifetime `'a`, add `'a` as a bound
|
LL | type E<'a, 'b> = impl Sized; + 'a
LL | type E<'a, 'b> = impl Sized + 'a;
|
error: aborting due to previous error
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册