about summary refs log tree commit diff
path: root/compiler/rustc_serialize/src/serialize.rs
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2022-02-09 17:42:38 -0500
committerMark Rousskov <mark.simulacrum@gmail.com>2022-02-20 18:58:23 -0500
commit38e6dad1d3ad540e76ee400daa76cbeeb02925df (patch)
treeab4daa105de97e607c89ce84fc9b38929ada6ae7 /compiler/rustc_serialize/src/serialize.rs
parent24dc0521324830dd4a64f528413a1650493ced7a (diff)
downloadrust-38e6dad1d3ad540e76ee400daa76cbeeb02925df.tar.gz
rust-38e6dad1d3ad540e76ee400daa76cbeeb02925df.zip
Delete Decoder::read_option
Diffstat (limited to 'compiler/rustc_serialize/src/serialize.rs')
-rw-r--r--compiler/rustc_serialize/src/serialize.rs18
1 files changed, 5 insertions, 13 deletions
diff --git a/compiler/rustc_serialize/src/serialize.rs b/compiler/rustc_serialize/src/serialize.rs
index 9a45bc56ce1..16d9270b609 100644
--- a/compiler/rustc_serialize/src/serialize.rs
+++ b/compiler/rustc_serialize/src/serialize.rs
@@ -210,18 +210,6 @@ pub trait Decoder {
         f(self, disr)
     }
 
-    // Specialized types:
-    fn read_option<T, F>(&mut self, mut f: F) -> T
-    where
-        F: FnMut(&mut Self, bool) -> T,
-    {
-        self.read_enum_variant(move |this, idx| match idx {
-            0 => f(this, false),
-            1 => f(this, true),
-            _ => panic!("read_option: expected 0 for None or 1 for Some"),
-        })
-    }
-
     fn read_seq<T, F>(&mut self, f: F) -> T
     where
         F: FnOnce(&mut Self, usize) -> T,
@@ -501,7 +489,11 @@ impl<S: Encoder, T: Encodable<S>> Encodable<S> for Option<T> {
 
 impl<D: Decoder, T: Decodable<D>> Decodable<D> for Option<T> {
     fn decode(d: &mut D) -> Option<T> {
-        d.read_option(|d, b| if b { Some(Decodable::decode(d)) } else { None })
+        d.read_enum_variant(move |this, idx| match idx {
+            0 => None,
+            1 => Some(Decodable::decode(this)),
+            _ => panic!("Encountered invalid discriminant while decoding `Option`."),
+        })
     }
 }