Rollup merge of #115629 - compiler-errors:sugg-deref-unsize, r=oli-obk
Don't suggest dereferencing to unsized type Rudimentary check that the self type is Sized. I don't really like any of this diagnostics code -- it's really messy and also really prone to false positives and negatives, but oh well. Fixes #115569
This commit is contained in:
commit
38adedc598
23 changed files with 61 additions and 14 deletions
|
@ -1250,21 +1250,18 @@ pub trait PrettyPrinter<'tcx>:
|
|||
.generics_of(principal.def_id)
|
||||
.own_args_no_defaults(cx.tcx(), principal.args);
|
||||
|
||||
let mut projections = predicates.projection_bounds();
|
||||
|
||||
let mut args = args.iter().cloned();
|
||||
let arg0 = args.next();
|
||||
let projection0 = projections.next();
|
||||
if arg0.is_some() || projection0.is_some() {
|
||||
let args = arg0.into_iter().chain(args);
|
||||
let projections = projection0.into_iter().chain(projections);
|
||||
let mut projections: Vec<_> = predicates.projection_bounds().collect();
|
||||
projections.sort_by_cached_key(|proj| {
|
||||
cx.tcx().item_name(proj.item_def_id()).to_string()
|
||||
});
|
||||
|
||||
if !args.is_empty() || !projections.is_empty() {
|
||||
p!(generic_delimiters(|mut cx| {
|
||||
cx = cx.comma_sep(args)?;
|
||||
if arg0.is_some() && projection0.is_some() {
|
||||
cx = cx.comma_sep(args.iter().copied())?;
|
||||
if !args.is_empty() && !projections.is_empty() {
|
||||
write!(cx, ", ")?;
|
||||
}
|
||||
cx.comma_sep(projections)
|
||||
cx.comma_sep(projections.iter().copied())
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue