Ensure we never accidentally serialize an ErrorGuaranteed
This commit is contained in:
parent
fd9ef69adf
commit
eb99a89bd7
@ -2244,7 +2244,7 @@ where
|
||||
|
||||
/// Useful type to use with `Result<>` indicate that an error has already
|
||||
/// been reported to the user, so no need to continue checking.
|
||||
#[derive(Clone, Copy, Debug, Encodable, Decodable, Hash, PartialEq, Eq, PartialOrd, Ord)]
|
||||
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
|
||||
#[derive(HashStable_Generic)]
|
||||
pub struct ErrorGuaranteed(());
|
||||
|
||||
@ -2256,3 +2256,20 @@ impl ErrorGuaranteed {
|
||||
ErrorGuaranteed(())
|
||||
}
|
||||
}
|
||||
|
||||
impl<E: rustc_serialize::Encoder> Encodable<E> for ErrorGuaranteed {
|
||||
#[inline]
|
||||
fn encode(&self, _e: &mut E) {
|
||||
panic!(
|
||||
"should never serialize an `ErrorGuaranteed`, as we do not write metadata or incremental caches in case errors occurred"
|
||||
)
|
||||
}
|
||||
}
|
||||
impl<D: rustc_serialize::Decoder> Decodable<D> for ErrorGuaranteed {
|
||||
#[inline]
|
||||
fn decode(_d: &mut D) -> ErrorGuaranteed {
|
||||
panic!(
|
||||
"`ErrorGuaranteed` should never have been serialized to metadata or incremental caches"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user