about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/query
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2024-05-21 20:12:07 -0400
committerBen Kimock <kimockb@gmail.com>2024-05-21 20:12:30 -0400
commitc3a606237d9c01e4622b267031596bf632567e6f (patch)
treefdcf8485698540fe24cc40d645b96c21561797a5 /compiler/rustc_middle/src/query
parent95150d72465db491f4b04b73545e106462bd003b (diff)
downloadrust-c3a606237d9c01e4622b267031596bf632567e6f.tar.gz
rust-c3a606237d9c01e4622b267031596bf632567e6f.zip
PR feedback
Diffstat (limited to 'compiler/rustc_middle/src/query')
-rw-r--r--compiler/rustc_middle/src/query/on_disk_cache.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/rustc_middle/src/query/on_disk_cache.rs b/compiler/rustc_middle/src/query/on_disk_cache.rs
index 6815e4263d5..941911c2230 100644
--- a/compiler/rustc_middle/src/query/on_disk_cache.rs
+++ b/compiler/rustc_middle/src/query/on_disk_cache.rs
@@ -154,7 +154,10 @@ impl EncodedSourceFileId {
 
 impl<'sess> OnDiskCache<'sess> {
     /// Creates a new `OnDiskCache` instance from the serialized data in `data`.
-    pub fn new(sess: &'sess Session, data: Mmap, start_pos: usize) -> Option<Self> {
+    ///
+    /// The serialized cache has some basic integrity checks, if those checks indicate that the
+    /// on-disk data is corrupt, an error is returned.
+    pub fn new(sess: &'sess Session, data: Mmap, start_pos: usize) -> Result<Self, ()> {
         assert!(sess.opts.incremental.is_some());
 
         let mut decoder = MemDecoder::new(&data, start_pos)?;
@@ -169,7 +172,7 @@ impl<'sess> OnDiskCache<'sess> {
         let footer: Footer =
             decoder.with_position(footer_pos, |decoder| decode_tagged(decoder, TAG_FILE_FOOTER));
 
-        Some(Self {
+        Ok(Self {
             serialized_data: RwLock::new(Some(data)),
             file_index_to_stable_id: footer.file_index_to_stable_id,
             file_index_to_file: Default::default(),