| //@ run-pass | 
 | // Test that the lifetime of the enclosing `&` is used for the object | 
 | // lifetime bound. | 
 |  | 
 |  | 
 | #![allow(dead_code, unused)] | 
 |  | 
 | trait Test { | 
 |     fn foo(&self) { } | 
 | } | 
 |  | 
 | struct SomeStruct<'a> { | 
 |     t: &'a mut dyn Test, | 
 |     u: &'a mut (dyn Test+'a), | 
 | } | 
 |  | 
 | fn a<'a>(t: &'a mut dyn Test, mut ss: SomeStruct<'a>) { | 
 |     ss.t = t; | 
 | } | 
 |  | 
 | fn b<'a>(t: &'a mut dyn Test, mut ss: SomeStruct<'a>) { | 
 |     ss.u = t; | 
 | } | 
 |  | 
 | fn c<'a>(t: &'a mut (dyn Test+'a), mut ss: SomeStruct<'a>) { | 
 |     ss.t = t; | 
 | } | 
 |  | 
 | fn d<'a>(t: &'a mut (dyn Test+'a), mut ss: SomeStruct<'a>) { | 
 |     ss.u = t; | 
 | } | 
 |  | 
 |  | 
 | fn main() { | 
 | } |