about summary refs log tree commit diff
path: root/compiler/rustc_metadata/src/rmeta/decoder.rs
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-03-20 12:52:48 -0400
committerMichael Goulet <michael@errs.io>2024-03-20 13:00:34 -0400
commitaa39dbb962fc1410613458e88269fe0b760ad7f8 (patch)
tree0c5db226029fd98cf8f4a3a50e288164758d1c75 /compiler/rustc_metadata/src/rmeta/decoder.rs
parenta128516cf9de352ae1f9d430ed730363c7ca3c0c (diff)
downloadrust-aa39dbb962fc1410613458e88269fe0b760ad7f8.tar.gz
rust-aa39dbb962fc1410613458e88269fe0b760ad7f8.zip
Split item bounds and item super predicates
Diffstat (limited to 'compiler/rustc_metadata/src/rmeta/decoder.rs')
-rw-r--r--compiler/rustc_metadata/src/rmeta/decoder.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/decoder.rs b/compiler/rustc_metadata/src/rmeta/decoder.rs
index 03783fa9798..596da58b091 100644
--- a/compiler/rustc_metadata/src/rmeta/decoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/decoder.rs
@@ -1063,6 +1063,20 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
         ty::EarlyBinder::bind(&*output)
     }
 
+    fn get_explicit_item_super_predicates(
+        self,
+        index: DefIndex,
+        tcx: TyCtxt<'tcx>,
+    ) -> ty::EarlyBinder<&'tcx [(ty::Clause<'tcx>, Span)]> {
+        let lazy = self.root.tables.explicit_item_super_predicates.get(self, index);
+        let output = if lazy.is_default() {
+            &mut []
+        } else {
+            tcx.arena.alloc_from_iter(lazy.decode((self, tcx)))
+        };
+        ty::EarlyBinder::bind(&*output)
+    }
+
     fn get_variant(
         self,
         kind: DefKind,