about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorLeón Orell Valerian Liehr <me@fmease.dev>2025-07-17 03:58:36 +0200
committerGitHub <noreply@github.com>2025-07-17 03:58:36 +0200
commitd5a471c07e68a2a59cefcc8de9ee0c9a22557975 (patch)
treec6b3061b60b0849b5a5f8db1f743c23cfc7fc891 /compiler
parent7e041c46f7ab5aab9429b7901e0ce42a564c8349 (diff)
parent8d64937dc25eb2b01596a3581ec2660d8e81b9b2 (diff)
downloadrust-d5a471c07e68a2a59cefcc8de9ee0c9a22557975.tar.gz
rust-d5a471c07e68a2a59cefcc8de9ee0c9a22557975.zip
Rollup merge of #144016 - davidtwco:sized-hierarchy-temp-pseudo-revert, r=lcnr
trait_sel: `MetaSized` always holds temporarily

As a temporary measure while a proper fix for `tests/ui/sized-hierarchy/incomplete-inference-issue-143992.rs` is implemented, make `MetaSized` obligations always hold. In effect, temporarily reverting the `sized_hierarchy` feature. This is a small change that can be backported.

cc rust-lang/rust#143992
r? ```@lcnr```
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_trait_selection/src/traits/util.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/util.rs b/compiler/rustc_trait_selection/src/traits/util.rs
index 141454bfe37..00e31021eec 100644
--- a/compiler/rustc_trait_selection/src/traits/util.rs
+++ b/compiler/rustc_trait_selection/src/traits/util.rs
@@ -378,6 +378,13 @@ pub fn sizedness_fast_path<'tcx>(tcx: TyCtxt<'tcx>, predicate: ty::Predicate<'tc
             _ => return false,
         };
 
+        // FIXME(sized_hierarchy): this temporarily reverts the `sized_hierarchy` feature
+        // while a proper fix for `tests/ui/sized-hierarchy/incomplete-inference-issue-143992.rs`
+        // is pending a proper fix
+        if !tcx.features().sized_hierarchy() && matches!(sizedness, SizedTraitKind::MetaSized) {
+            return true;
+        }
+
         if trait_pred.self_ty().has_trivial_sizedness(tcx, sizedness) {
             debug!("fast path -- trivial sizedness");
             return true;