constness,
);
- let body_id = local_did
- .and_then(|id| tcx.hir().maybe_body_owned_by(id).map(|body| body.hir_id))
- .or(hir_id)
- .map_or(hir::CRATE_HIR_ID, |did| did);
+ let body_id =
+ local_did.and_then(|id| tcx.hir().maybe_body_owned_by(id).map(|body| body.hir_id));
+ let body_id = match body_id {
+ Some(id) => id,
+ None if hir_id.is_some() => hir_id.unwrap(),
+ _ => hir::CRATE_HIR_ID,
+ };
+
let cause = traits::ObligationCause::misc(tcx.def_span(def_id), body_id);
traits::normalize_param_env_or_error(tcx, unnormalized_env, cause)
}