blob: fb06344df7ed04b5dab1eb7ffd66c8f55ba276db [file] [log] [blame]
// 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());
}