| fn shorten_lifetime<'a, 'b, 'min>(a: &'a i32, b: &'b i32) -> &'min i32 | |
| where | |
| 'a: 'min, | |
| 'b: 'min, | |
| { | |
| if *a < *b { | |
| &a | |
| } else { | |
| &b | |
| } | |
| } | |
| fn main() { | |
| let promoted_fn_item_ref = &shorten_lifetime; | |
| let a = &5; | |
| let ptr = { | |
| let l = 3; | |
| let b = &l; //~ ERROR does not live long enough | |
| let c = promoted_fn_item_ref(a, b); | |
| c | |
| }; | |
| println!("ptr = {:?}", ptr); | |
| } |