| //@ run-pass | |
| pub struct Outer<T: Trait>(T); | |
| pub struct Inner<'a> { value: &'a bool } | |
| pub trait Trait { | |
| type Error; | |
| fn ready(self) -> Self::Error; | |
| } | |
| impl<'a> Trait for Inner<'a> { | |
| type Error = Outer<Inner<'a>>; | |
| fn ready(self) -> Outer<Inner<'a>> { Outer(self) } | |
| } | |
| fn main() { | |
| let value = true; | |
| let inner = Inner { value: &value }; | |
| assert_eq!(inner.ready().0.value, &value); | |
| } |