// run-pass | |
#![feature(arbitrary_self_types)] | |
use std::rc::Rc; | |
trait Trait { | |
fn trait_method<'a>(self: &'a Box<Rc<Self>>) -> &'a [i32]; | |
} | |
impl Trait for Vec<i32> { | |
fn trait_method<'a>(self: &'a Box<Rc<Self>>) -> &'a [i32] { | |
&***self | |
} | |
} | |
fn main() { | |
let v = vec![1,2,3]; | |
assert_eq!(&[1,2,3], Box::new(Rc::new(v)).trait_method()); | |
} |