blob: 825f1ebecb423260ea1156c5cb90becf287a406d [file] [edit]
use rustc_data_structures::fx::FxIndexMap;
use rustc_middle::ty::TyCtxt;
use crate::diagnostics::GlobOrListDelegationUnusedTargetExpr;
pub fn check_glob_and_list_delegations_target_expr(tcx: TyCtxt<'_>) {
let mut delegations_by_group_id = FxIndexMap::default();
for &id in tcx.resolutions(()).delegation_infos.keys() {
if let Some(info) = tcx.hir_opt_delegation_info(id)
&& let Some((group_id, unused_target_expr)) = info.group_id
{
delegations_by_group_id
.entry(group_id)
.or_insert_with(|| (true, tcx.def_span(id)))
.0 &= unused_target_expr;
}
}
for (_, (unused_target_expr, span)) in delegations_by_group_id {
if unused_target_expr {
tcx.dcx().emit_err(GlobOrListDelegationUnusedTargetExpr { span });
}
}
}