mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 23:20:39 +00:00
fix: use LocalDefId instead of HirId in trait res
use LocalDefId instead of HirId in trait resolution to simplify the obligation clause resolution Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
This commit is contained in:
parent
298a78277e
commit
2d8ede2335
3 changed files with 4 additions and 3 deletions
|
@ -78,7 +78,8 @@ impl<'tcx> LateLintPass<'tcx> for FutureNotSend {
|
||||||
let send_trait = cx.tcx.get_diagnostic_item(sym::Send).unwrap();
|
let send_trait = cx.tcx.get_diagnostic_item(sym::Send).unwrap();
|
||||||
let span = decl.output.span();
|
let span = decl.output.span();
|
||||||
let infcx = cx.tcx.infer_ctxt().build();
|
let infcx = cx.tcx.infer_ctxt().build();
|
||||||
let cause = traits::ObligationCause::misc(span, hir_id);
|
let def_id = cx.tcx.hir().local_def_id(hir_id);
|
||||||
|
let cause = traits::ObligationCause::misc(span, def_id);
|
||||||
let send_errors = traits::fully_solve_bound(&infcx, cause, cx.param_env, ret_ty, send_trait);
|
let send_errors = traits::fully_solve_bound(&infcx, cause, cx.param_env, ret_ty, send_trait);
|
||||||
if !send_errors.is_empty() {
|
if !send_errors.is_empty() {
|
||||||
span_lint_and_then(
|
span_lint_and_then(
|
||||||
|
|
|
@ -371,7 +371,7 @@ fn can_change_type<'a>(cx: &LateContext<'a>, mut expr: &'a Expr<'a>, mut ty: Ty<
|
||||||
&& let output_ty = return_ty(cx, item.hir_id())
|
&& let output_ty = return_ty(cx, item.hir_id())
|
||||||
&& let local_def_id = cx.tcx.hir().local_def_id(item.hir_id())
|
&& let local_def_id = cx.tcx.hir().local_def_id(item.hir_id())
|
||||||
&& Inherited::build(cx.tcx, local_def_id).enter(|inherited| {
|
&& Inherited::build(cx.tcx, local_def_id).enter(|inherited| {
|
||||||
let fn_ctxt = FnCtxt::new(inherited, cx.param_env, item.hir_id());
|
let fn_ctxt = FnCtxt::new(inherited, cx.param_env, local_def_id);
|
||||||
fn_ctxt.can_coerce(ty, output_ty)
|
fn_ctxt.can_coerce(ty, output_ty)
|
||||||
}) {
|
}) {
|
||||||
if has_lifetime(output_ty) && has_lifetime(ty) {
|
if has_lifetime(output_ty) && has_lifetime(ty) {
|
||||||
|
|
|
@ -46,7 +46,7 @@ fn check_cast<'tcx>(cx: &LateContext<'tcx>, e: &'tcx Expr<'_>, from_ty: Ty<'tcx>
|
||||||
let local_def_id = hir_id.owner.def_id;
|
let local_def_id = hir_id.owner.def_id;
|
||||||
|
|
||||||
Inherited::build(cx.tcx, local_def_id).enter(|inherited| {
|
Inherited::build(cx.tcx, local_def_id).enter(|inherited| {
|
||||||
let fn_ctxt = FnCtxt::new(inherited, cx.param_env, hir_id);
|
let fn_ctxt = FnCtxt::new(inherited, cx.param_env, local_def_id);
|
||||||
|
|
||||||
// If we already have errors, we can't be sure we can pointer cast.
|
// If we already have errors, we can't be sure we can pointer cast.
|
||||||
assert!(
|
assert!(
|
||||||
|
|
Loading…
Reference in a new issue