Rollup merge of #150825 - move-items, r=JonathanBrouwer

Query associated_item_def_ids when needed

This commit moves a query to `associated_item_defs` from above an error condition caused independently of it to below it.

It looks generally cleaner and might potentially save some runtime in case the error condition is met, rendering `items` to be left unused, yet still queried.
This commit is contained in:
Matthias Krüger 2026-01-08 22:21:21 +01:00 committed by GitHub
commit 0fbcfb9a05
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -79,13 +79,12 @@ impl<'tcx> InherentCollect<'tcx> {
}
if self.tcx.features().rustc_attrs() {
let items = self.tcx.associated_item_def_ids(impl_def_id);
if !self.tcx.has_attr(ty_def_id, sym::rustc_has_incoherent_inherent_impls) {
let impl_span = self.tcx.def_span(impl_def_id);
return Err(self.tcx.dcx().emit_err(errors::InherentTyOutside { span: impl_span }));
}
let items = self.tcx.associated_item_def_ids(impl_def_id);
for &impl_item in items {
if !find_attr!(
self.tcx.get_all_attrs(impl_item),