Rollup merge of #113698 - compiler-errors:rpitit-check, r=spastorino
Make it clearer that we're just checking for an RPITIT Tiny nit to use `is_impl_trait_in_trait` more, to make it clearer that we're just checking whether a def-id is an RPITIT, rather than doing something meaningful with the `opt_rpitit_info`. r? `@spastorino`
This commit is contained in:
commit
0baf4406da
9 changed files with 14 additions and 10 deletions
|
@ -123,7 +123,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
let all_candidate_names: Vec<_> = all_candidates()
|
||||
.flat_map(|r| self.tcx().associated_items(r.def_id()).in_definition_order())
|
||||
.filter_map(|item| {
|
||||
if item.opt_rpitit_info.is_none() && item.kind == ty::AssocKind::Type {
|
||||
if !item.is_impl_trait_in_trait() && item.kind == ty::AssocKind::Type {
|
||||
Some(item.name)
|
||||
} else {
|
||||
None
|
||||
|
@ -164,7 +164,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
self.tcx().associated_items(*trait_def_id).in_definition_order()
|
||||
})
|
||||
.filter_map(|item| {
|
||||
if item.opt_rpitit_info.is_none() && item.kind == ty::AssocKind::Type {
|
||||
if !item.is_impl_trait_in_trait() && item.kind == ty::AssocKind::Type {
|
||||
Some(item.name)
|
||||
} else {
|
||||
None
|
||||
|
|
|
@ -173,7 +173,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
tcx.associated_items(pred.def_id())
|
||||
.in_definition_order()
|
||||
.filter(|item| item.kind == ty::AssocKind::Type)
|
||||
.filter(|item| item.opt_rpitit_info.is_none())
|
||||
.filter(|item| !item.is_impl_trait_in_trait())
|
||||
.map(|item| item.def_id),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1322,7 +1322,7 @@ fn compare_number_of_generics<'tcx>(
|
|||
// has mismatched type or const generic arguments, then the method that it's
|
||||
// inheriting the generics from will also have mismatched arguments, and
|
||||
// we'll report an error for that instead. Delay a bug for safety, though.
|
||||
if trait_.opt_rpitit_info.is_some() {
|
||||
if trait_.is_impl_trait_in_trait() {
|
||||
return Err(tcx.sess.delay_span_bug(
|
||||
rustc_span::DUMMY_SP,
|
||||
"errors comparing numbers of generics of trait/impl functions were not emitted",
|
||||
|
@ -2116,7 +2116,7 @@ pub(super) fn check_type_bounds<'tcx>(
|
|||
// A synthetic impl Trait for RPITIT desugaring has no HIR, which we currently use to get the
|
||||
// span for an impl's associated type. Instead, for these, use the def_span for the synthesized
|
||||
// associated type.
|
||||
let impl_ty_span = if impl_ty.opt_rpitit_info.is_some() {
|
||||
let impl_ty_span = if impl_ty.is_impl_trait_in_trait() {
|
||||
tcx.def_span(impl_ty_def_id)
|
||||
} else {
|
||||
match tcx.hir().get_by_def_id(impl_ty_def_id) {
|
||||
|
|
|
@ -188,7 +188,7 @@ fn missing_items_err(
|
|||
full_impl_span: Span,
|
||||
) {
|
||||
let missing_items =
|
||||
missing_items.iter().filter(|trait_item| trait_item.opt_rpitit_info.is_none());
|
||||
missing_items.iter().filter(|trait_item| !trait_item.is_impl_trait_in_trait());
|
||||
|
||||
let missing_items_msg = missing_items
|
||||
.clone()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue