]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_ty_utils/src/ty.rs
Auto merge of #99959 - cuviper:niche-size, r=eddyb
[rust.git] / compiler / rustc_ty_utils / src / ty.rs
index f437eb98942a5702ef73e771f482a998b125ba8a..b1af3051719e85ae348628ad4669581fa58a8cd2 100644 (file)
@@ -207,10 +207,14 @@ fn param_env(tcx: TyCtxt<'_>, def_id: DefId) -> ty::ParamEnv<'_> {
         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)
 }