diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2021-06-27 10:38:06 +0200 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2021-07-17 19:41:07 +0200 |
| commit | 2fe37c5bd1cc7d6cfa176f408c2b834e1b2617bf (patch) | |
| tree | 6fbc2c6730e434a7c31dc915f8e18dbf1664c9f9 /compiler/rustc_metadata/src/rmeta/decoder.rs | |
| parent | 078dd37f882a59d4277d80b829d729bfd2b5a5c2 (diff) | |
| download | rust-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.rs | 9 |
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) } } |
