• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // run-pass
2 // Test that the lifetime of the enclosing `&` is used for the object
3 // lifetime bound.
4 
5 // pretty-expanded FIXME #23616
6 
7 #![allow(dead_code)]
8 
9 trait Test {
foo(&self)10     fn foo(&self) { }
11 }
12 
13 struct SomeStruct<'a> {
14     t: &'a mut dyn Test,
15     u: &'a mut (dyn Test+'a),
16 }
17 
a<'a>(t: &'a mut dyn Test, mut ss: SomeStruct<'a>)18 fn a<'a>(t: &'a mut dyn Test, mut ss: SomeStruct<'a>) {
19     ss.t = t;
20 }
21 
b<'a>(t: &'a mut dyn Test, mut ss: SomeStruct<'a>)22 fn b<'a>(t: &'a mut dyn Test, mut ss: SomeStruct<'a>) {
23     ss.u = t;
24 }
25 
c<'a>(t: &'a mut (dyn Test+'a), mut ss: SomeStruct<'a>)26 fn c<'a>(t: &'a mut (dyn Test+'a), mut ss: SomeStruct<'a>) {
27     ss.t = t;
28 }
29 
d<'a>(t: &'a mut (dyn Test+'a), mut ss: SomeStruct<'a>)30 fn d<'a>(t: &'a mut (dyn Test+'a), mut ss: SomeStruct<'a>) {
31     ss.u = t;
32 }
33 
34 
main()35 fn main() {
36 }
37