about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-08-28 01:44:41 +0000
committerbors <bors@rust-lang.org>2023-08-28 01:44:41 +0000
commit3f8c8f51f777f4fab14074cde975bc4bbce3ca5a (patch)
tree60df260c10b807670e6f1e4e88b90a5d72adb1cc
parent1baf77aad0328c9a2fac290e604ee54d23c81a66 (diff)
parentb2332633091c02744e2f1447768f4fd82bf78902 (diff)
downloadrust-3f8c8f51f777f4fab14074cde975bc4bbce3ca5a.tar.gz
rust-3f8c8f51f777f4fab14074cde975bc4bbce3ca5a.zip
Auto merge of #115287 - saethlin:more-specialer, r=cjgillot
Add a specialization for encoding byte arrays in rmeta

This specialization already exists for FileEncoder, but since EncodeContext is implemented by forwarding down to FileEncoder, using EncodeContext used to bypass the specialization.
-rw-r--r--compiler/rustc_metadata/src/rmeta/encoder.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs
index be91ad4088a..5ade67c62ff 100644
--- a/compiler/rustc_metadata/src/rmeta/encoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/encoder.rs
@@ -347,6 +347,13 @@ impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for Symbol {
     }
 }
 
+impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for [u8] {
+    fn encode(&self, e: &mut EncodeContext<'a, 'tcx>) {
+        Encoder::emit_usize(e, self.len());
+        e.emit_raw_bytes(self);
+    }
+}
+
 impl<'a, 'tcx> TyEncoder for EncodeContext<'a, 'tcx> {
     const CLEAR_CROSS_CRATE: bool = true;