about summary refs log tree commit diff
path: root/compiler/rustc_ty_utils/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2023-07-16 01:41:20 +0000
committerMichael Goulet <michael@errs.io>2023-07-30 21:46:29 +0000
commit0f0ab89feb4d668cb989aefe08f27af45cb10bed (patch)
treeaa2eb83b437e851ae9c65ff917d906b5cab8cc2c /compiler/rustc_ty_utils/src
parenta8be6e070f02fca6e5ab851e10e29d45c3a0217c (diff)
downloadrust-0f0ab89feb4d668cb989aefe08f27af45cb10bed.tar.gz
rust-0f0ab89feb4d668cb989aefe08f27af45cb10bed.zip
Don't install default projection bound for RPITITs
Diffstat (limited to 'compiler/rustc_ty_utils/src')
-rw-r--r--compiler/rustc_ty_utils/src/ty.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_ty_utils/src/ty.rs b/compiler/rustc_ty_utils/src/ty.rs
index 2055852eda0..4c896712b1b 100644
--- a/compiler/rustc_ty_utils/src/ty.rs
+++ b/compiler/rustc_ty_utils/src/ty.rs
@@ -129,7 +129,9 @@ fn param_env(tcx: TyCtxt<'_>, def_id: DefId) -> ty::ParamEnv<'_> {
     // sure that this will succeed without errors anyway.
 
     if tcx.def_kind(def_id) == DefKind::AssocFn
-        && tcx.associated_item(def_id).container == ty::AssocItemContainer::TraitContainer
+        && let assoc_item = tcx.associated_item(def_id)
+        && assoc_item.container == ty::AssocItemContainer::TraitContainer
+        && assoc_item.defaultness(tcx).has_value()
     {
         let sig = tcx.fn_sig(def_id).instantiate_identity();
         // We accounted for the binder of the fn sig, so skip the binder.