about summary refs log tree commit diff
path: root/compiler/rustc_metadata/src/rmeta
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2022-06-10 11:58:29 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2022-06-10 11:58:29 +1000
commit3186e311e526e3dad197dacc91c2d84cde2be846 (patch)
tree9a8b86ea039a286af6d64215920531f8b372702e /compiler/rustc_metadata/src/rmeta
parent7f51a1b97638780a3d22979d886384ad7903cc4e (diff)
downloadrust-3186e311e526e3dad197dacc91c2d84cde2be846.tar.gz
rust-3186e311e526e3dad197dacc91c2d84cde2be846.zip
Revert dc08bc51f2c58a0f5f815a07f9bb3d671153b5a1.
Diffstat (limited to 'compiler/rustc_metadata/src/rmeta')
-rw-r--r--compiler/rustc_metadata/src/rmeta/encoder.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs
index e090b4c37e5..3285273ba90 100644
--- a/compiler/rustc_metadata/src/rmeta/encoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/encoder.rs
@@ -93,6 +93,9 @@ macro_rules! encoder_methods {
 }
 
 impl<'a, 'tcx> Encoder for EncodeContext<'a, 'tcx> {
+    type Ok = <opaque::Encoder as Encoder>::Ok;
+    type Err = <opaque::Encoder as Encoder>::Err;
+
     encoder_methods! {
         emit_usize(usize);
         emit_u128(u128);
@@ -115,6 +118,10 @@ impl<'a, 'tcx> Encoder for EncodeContext<'a, 'tcx> {
         emit_str(&str);
         emit_raw_bytes(&[u8]);
     }
+
+    fn finish(self) -> Result<Self::Ok, Self::Err> {
+        self.opaque.finish()
+    }
 }
 
 impl<'a, 'tcx, T> Encodable<EncodeContext<'a, 'tcx>> for LazyValue<T> {
@@ -2216,7 +2223,7 @@ fn encode_metadata_impl(tcx: TyCtxt<'_>) -> EncodedMetadata {
     // culminating in the `CrateRoot` which points to all of it.
     let root = ecx.encode_crate_root();
 
-    let mut result = ecx.opaque.finish();
+    let mut result = ecx.opaque.finish().unwrap();
 
     // Encode the root position.
     let header = METADATA_HEADER.len();