Rollup merge of #109477 - lcnr:cleanup, r=cjgillot
`HirId` to `LocalDefId` cleanup revival of the still relevant parts of #109125
This commit is contained in:
commit
040001e7c1
@ -1208,7 +1208,7 @@ fn infer_return_ty_for_fn_sig<'tcx>(
|
||||
fn_sig,
|
||||
Applicability::MachineApplicable,
|
||||
);
|
||||
} else if let Some(sugg) = suggest_impl_trait(tcx, ret_ty, ty.span, hir_id, def_id) {
|
||||
} else if let Some(sugg) = suggest_impl_trait(tcx, ret_ty, ty.span, def_id) {
|
||||
diag.span_suggestion(
|
||||
ty.span,
|
||||
"replace with an appropriate return type",
|
||||
@ -1240,12 +1240,10 @@ fn infer_return_ty_for_fn_sig<'tcx>(
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME(vincenzopalazzo): remove the hir item when the refactoring is stable
|
||||
fn suggest_impl_trait<'tcx>(
|
||||
tcx: TyCtxt<'tcx>,
|
||||
ret_ty: Ty<'tcx>,
|
||||
span: Span,
|
||||
_hir_id: hir::HirId,
|
||||
def_id: LocalDefId,
|
||||
) -> Option<String> {
|
||||
let format_as_assoc: fn(_, _, _, _, _) -> _ =
|
||||
|
@ -165,8 +165,7 @@ pub(in super::super) fn extract_callable_info(
|
||||
&self,
|
||||
ty: Ty<'tcx>,
|
||||
) -> Option<(DefIdOrName, Ty<'tcx>, Vec<Ty<'tcx>>)> {
|
||||
let body_hir_id = self.tcx.hir().local_def_id_to_hir_id(self.body_id);
|
||||
self.err_ctxt().extract_callable_info(body_hir_id, self.param_env, ty)
|
||||
self.err_ctxt().extract_callable_info(self.body_id, self.param_env, ty)
|
||||
}
|
||||
|
||||
pub fn suggest_two_fn_call(
|
||||
|
@ -2525,7 +2525,7 @@ pub fn adjust_ident(self, mut ident: Ident, scope: DefId) -> Ident {
|
||||
ident
|
||||
}
|
||||
|
||||
// FIXME(vincenzoapalzzo): move the HirId to a LocalDefId
|
||||
// FIXME(vincenzopalazzo): move the HirId to a LocalDefId
|
||||
pub fn adjust_ident_and_get_scope(
|
||||
self,
|
||||
mut ident: Ident,
|
||||
|
@ -212,7 +212,7 @@ fn suggest_add_clone_to_arg(
|
||||
|
||||
fn extract_callable_info(
|
||||
&self,
|
||||
hir_id: HirId,
|
||||
body_id: LocalDefId,
|
||||
param_env: ty::ParamEnv<'tcx>,
|
||||
found: Ty<'tcx>,
|
||||
) -> Option<(DefIdOrName, Ty<'tcx>, Vec<Ty<'tcx>>)>;
|
||||
@ -909,9 +909,8 @@ fn suggest_fn_call(
|
||||
trait_pred.self_ty(),
|
||||
);
|
||||
|
||||
let body_hir_id = self.tcx.hir().local_def_id_to_hir_id(obligation.cause.body_id);
|
||||
let Some((def_id_or_name, output, inputs)) = self.extract_callable_info(
|
||||
body_hir_id,
|
||||
obligation.cause.body_id,
|
||||
obligation.param_env,
|
||||
self_ty,
|
||||
) else { return false; };
|
||||
@ -1113,10 +1112,9 @@ fn suggest_add_clone_to_arg(
|
||||
/// Extracts information about a callable type for diagnostics. This is a
|
||||
/// heuristic -- it doesn't necessarily mean that a type is always callable,
|
||||
/// because the callable type must also be well-formed to be called.
|
||||
// FIXME(vincenzopalazzo): move the HirId to a LocalDefId
|
||||
fn extract_callable_info(
|
||||
&self,
|
||||
hir_id: HirId,
|
||||
body_id: LocalDefId,
|
||||
param_env: ty::ParamEnv<'tcx>,
|
||||
found: Ty<'tcx>,
|
||||
) -> Option<(DefIdOrName, Ty<'tcx>, Vec<Ty<'tcx>>)> {
|
||||
@ -1168,7 +1166,7 @@ fn extract_callable_info(
|
||||
})
|
||||
}
|
||||
ty::Param(param) => {
|
||||
let generics = self.tcx.generics_of(hir_id.owner.to_def_id());
|
||||
let generics = self.tcx.generics_of(body_id);
|
||||
let name = if generics.count() > param.index as usize
|
||||
&& let def = generics.param_at(param.index as usize, self.tcx)
|
||||
&& matches!(def.kind, ty::GenericParamDefKind::Type { .. })
|
||||
|
Loading…
Reference in New Issue
Block a user