]> git.lizzy.rs Git - rust.git/blob - tests/ui-fulldeps/issue-14021.rs
Rollup merge of #107596 - Kobzol:stage-build-timer, r=Mark-Simulacrum
[rust.git] / tests / ui-fulldeps / issue-14021.rs
1 // run-pass
2
3 #![allow(unused_mut)]
4 #![allow(unused_imports)]
5 #![feature(rustc_private)]
6
7 extern crate rustc_macros;
8 extern crate rustc_serialize;
9
10 // Necessary to pull in object code as the rest of the rustc crates are shipped only as rmeta
11 // files.
12 #[allow(unused_extern_crates)]
13 extern crate rustc_driver;
14
15 use rustc_macros::{Decodable, Encodable};
16 use rustc_serialize::opaque::{MemDecoder, MemEncoder};
17 use rustc_serialize::{Decodable, Encodable, Encoder};
18
19 #[derive(Encodable, Decodable, PartialEq, Debug)]
20 struct UnitLikeStruct;
21
22 pub fn main() {
23     let obj = UnitLikeStruct;
24
25     let mut encoder = MemEncoder::new();
26     obj.encode(&mut encoder);
27     let data = encoder.finish();
28
29     let mut decoder = MemDecoder::new(&data, 0);
30     let obj2 = UnitLikeStruct::decode(&mut decoder);
31
32     assert_eq!(obj, obj2);
33 }