about summary refs log tree commit diff
path: root/src/libsyntax/codemap.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-03-28 00:26:52 -0700
committerbors <bors@rust-lang.org>2014-03-28 00:26:52 -0700
commitff64381c8bf6a49a0671287de5f5b7316ae2ef9c (patch)
tree8b506d4d1a0fe9b5242ed1ab4817c91890c929c3 /src/libsyntax/codemap.rs
parent5a68892507cdd42fdf6f1f645d6e38f6f5be67a4 (diff)
parentf1739b14a1346419a4598339aee32aab07e0d12e (diff)
downloadrust-ff64381c8bf6a49a0671287de5f5b7316ae2ef9c.tar.gz
rust-ff64381c8bf6a49a0671287de5f5b7316ae2ef9c.zip
auto merge of #13107 : seanmonstar/rust/encoder-errors, r=erickt
All of Decoder and Encoder's methods now return a Result.

Encodable.encode() and Decodable.decode() return a Result as well.

fixes #12292
Diffstat (limited to 'src/libsyntax/codemap.rs')
-rw-r--r--src/libsyntax/codemap.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs
index 4a9e53c63e7..f3ff7f97ee2 100644
--- a/src/libsyntax/codemap.rs
+++ b/src/libsyntax/codemap.rs
@@ -110,6 +110,8 @@ impl Eq for Span {
 
 impl TotalEq for Span {}
 
+// FIXME: remove stage0 Encodables/Decodables after snapshot
+#[cfg(stage0)]
 impl<S:Encoder> Encodable<S> for Span {
     /* Note #1972 -- spans are encoded but not decoded */
     fn encode(&self, s: &mut S) {
@@ -117,12 +119,28 @@ impl<S:Encoder> Encodable<S> for Span {
     }
 }
 
+#[cfg(stage0)]
 impl<D:Decoder> Decodable<D> for Span {
     fn decode(_d: &mut D) -> Span {
         DUMMY_SP
     }
 }
 
+#[cfg(not(stage0))]
+impl<S:Encoder<E>, E> Encodable<S, E> for Span {
+    /* Note #1972 -- spans are encoded but not decoded */
+    fn encode(&self, s: &mut S) -> Result<(), E> {
+        s.emit_nil()
+    }
+}
+
+#[cfg(not(stage0))]
+impl<D:Decoder<E>, E> Decodable<D, E> for Span {
+    fn decode(_d: &mut D) -> Result<Span, E> {
+        Ok(DUMMY_SP)
+    }
+}
+
 pub fn spanned<T>(lo: BytePos, hi: BytePos, t: T) -> Spanned<T> {
     respan(mk_sp(lo, hi), t)
 }