| //@ run-pass | |
| use std::marker::PhantomData; | |
| pub trait DataBind { | |
| type Data; | |
| } | |
| impl<T> DataBind for Global<T> { | |
| type Data = T; | |
| } | |
| pub struct Global<T>(PhantomData<T>); | |
| pub struct Data { | |
| pub offsets: <Global<[u32; 2]> as DataBind>::Data, | |
| } | |
| fn create_data() -> Data { | |
| let mut d = Data { offsets: [1, 2] }; | |
| d.offsets[0] = 3; | |
| d | |
| } | |
| fn main() { | |
| let d = create_data(); | |
| assert_eq!(d.offsets[0], 3); | |
| assert_eq!(d.offsets[1], 2); | |
| } |