about summary refs log tree commit diff
path: root/compiler/rustc_metadata/src/rmeta/decoder.rs
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2021-06-27 10:38:06 +0200
committerCamille GILLOT <gillot.camille@gmail.com>2021-07-17 19:41:07 +0200
commit2fe37c5bd1cc7d6cfa176f408c2b834e1b2617bf (patch)
tree6fbc2c6730e434a7c31dc915f8e18dbf1664c9f9 /compiler/rustc_metadata/src/rmeta/decoder.rs
parent078dd37f882a59d4277d80b829d729bfd2b5a5c2 (diff)
downloadrust-2fe37c5bd1cc7d6cfa176f408c2b834e1b2617bf.tar.gz
rust-2fe37c5bd1cc7d6cfa176f408c2b834e1b2617bf.zip
Choose encoding format in caller code.
Diffstat (limited to 'compiler/rustc_metadata/src/rmeta/decoder.rs')
-rw-r--r--compiler/rustc_metadata/src/rmeta/decoder.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/decoder.rs b/compiler/rustc_metadata/src/rmeta/decoder.rs
index 4b72ac86957..8b8ca987b38 100644
--- a/compiler/rustc_metadata/src/rmeta/decoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/decoder.rs
@@ -377,7 +377,11 @@ impl<'a, 'tcx> Decodable<DecodeContext<'a, 'tcx>> for ExpnId {
         let local_cdata = decoder.cdata();
         let sess = decoder.sess.unwrap();
 
-        rustc_span::hygiene::decode_expn_id(decoder, |cnum, index| {
+        let cnum = CrateNum::decode(decoder)?;
+        let index = u32::decode(decoder)?;
+
+        let expn_id = rustc_span::hygiene::decode_expn_id(cnum, index, |expn_id| {
+            let ExpnId { krate: cnum, local_id: index } = expn_id;
             // Lookup local `ExpnData`s in our own crate data. Foreign `ExpnData`s
             // are stored in the owning crate, to avoid duplication.
             debug_assert_ne!(cnum, LOCAL_CRATE);
@@ -399,7 +403,8 @@ impl<'a, 'tcx> Decodable<DecodeContext<'a, 'tcx>> for ExpnId {
                 .unwrap()
                 .decode((&crate_data, sess));
             (expn_data, expn_hash)
-        })
+        });
+        Ok(expn_id)
     }
 }