about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2014-06-11 17:18:57 +1200
committerNick Cameron <ncameron@mozilla.com>2014-06-18 10:30:33 +1200
commit8e7213f65b4348e1b54d8baeeb291267581227d2 (patch)
tree167d35131ffc76366c5a70909adbe82d1de7186a /src/libsyntax
parentdb298145c702c49e5f3cc17adeafe58c8b1bbd6a (diff)
downloadrust-8e7213f65b4348e1b54d8baeeb291267581227d2.tar.gz
rust-8e7213f65b4348e1b54d8baeeb291267581227d2.zip
Remove TraitStore from ty_trait
Use ty_rptr/ty_uniq(ty_trait) rather than TraitStore to represent trait types.
Also addresses (but doesn't close) #12470.
Part of the work towards DST (#12938).

[breaking-change] lifetime parameters in `&mut trait` are now invariant. They used to be contravariant.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/parse/mod.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs
index faffc496846..eb0c6f2555a 100644
--- a/src/libsyntax/parse/mod.rs
+++ b/src/libsyntax/parse/mod.rs
@@ -281,6 +281,7 @@ mod test {
     use serialize::{json, Encodable};
     use std::io;
     use std::io::MemWriter;
+    use std::mem::transmute;
     use std::str;
     use std::gc::GC;
     use codemap::{Span, BytePos, Spanned};
@@ -295,8 +296,11 @@ mod test {
 
     fn to_json_str<'a, E: Encodable<json::Encoder<'a>, io::IoError>>(val: &E) -> String {
         let mut writer = MemWriter::new();
-        let mut encoder = json::Encoder::new(&mut writer as &mut io::Writer);
-        let _ = val.encode(&mut encoder);
+        // FIXME(14302) remove the transmute and unsafe block.
+        unsafe {
+            let mut encoder = json::Encoder::new(&mut writer as &mut io::Writer);
+            let _ = val.encode(transmute(&mut encoder));
+        }
         str::from_utf8(writer.unwrap().as_slice()).unwrap().to_string()
     }