|  | //@ run-pass | 
|  | // Test that the lifetime from the enclosing `&` is "inherited" | 
|  | // through the `MyBox` struct. | 
|  |  | 
|  |  | 
|  | #![allow(dead_code, unused)] | 
|  |  | 
|  | trait Test { | 
|  | fn foo(&self) { } | 
|  | } | 
|  |  | 
|  | struct SomeStruct<'a> { | 
|  | t: &'a MyBox<dyn Test>, | 
|  | u: &'a MyBox<dyn Test+'a>, | 
|  | } | 
|  |  | 
|  | struct MyBox<T:?Sized> { | 
|  | b: Box<T> | 
|  | } | 
|  |  | 
|  | fn a<'a>(t: &'a MyBox<dyn Test>, mut ss: SomeStruct<'a>) { | 
|  | ss.t = t; | 
|  | } | 
|  |  | 
|  | fn b<'a>(t: &'a MyBox<dyn Test>, mut ss: SomeStruct<'a>) { | 
|  | ss.u = t; | 
|  | } | 
|  |  | 
|  | // see also ui/object-lifetime/object-lifetime-default-from-rptr-box-error.rs | 
|  |  | 
|  | fn d<'a>(t: &'a MyBox<dyn Test+'a>, mut ss: SomeStruct<'a>) { | 
|  | ss.u = t; | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | } |