error[E0716]: temporary value dropped while borrowed --> $DIR/if-let-rescope-borrowck-suggestions.rs:22:39 | LL | do_something(if let Some(value) = Droppy.get_ref() { value } else { &0 }); | ^^^^^^ - temporary value is freed at the end of this statement | | | creates a temporary value which is freed while still in use | note: lifetimes for temporaries generated in `if let`s have been shortened in Edition 2024 so that they are dropped here instead --> $DIR/if-let-rescope-borrowck-suggestions.rs:22:64 | LL | do_something(if let Some(value) = Droppy.get_ref() { value } else { &0 }); | ^ help: consider using a `let` binding to create a longer lived value | LL ~ let binding = Droppy; LL ~ do_something(if let Some(value) = binding.get_ref() { value } else { &0 }); | help: consider rewriting the `if` into `match` which preserves the extended lifetime | LL | do_something({ match Droppy.get_ref() { Some(value) => { value } _ => { &0 }}}); | ~~~~~~~ ++++++++++++++++ ~~~~ ++ error[E0716]: temporary value dropped while borrowed --> $DIR/if-let-rescope-borrowck-suggestions.rs:24:39 | LL | do_something(if let Some(value) = Droppy.get_ref() { | ^^^^^^ creates a temporary value which is freed while still in use ... LL | } else if let Some(value) = Droppy.get_ref() { | - temporary value is freed at the end of this statement | note: lifetimes for temporaries generated in `if let`s have been shortened in Edition 2024 so that they are dropped here instead --> $DIR/if-let-rescope-borrowck-suggestions.rs:27:5 | LL | } else if let Some(value) = Droppy.get_ref() { | ^ help: consider using a `let` binding to create a longer lived value | LL ~ let binding = Droppy; LL ~ do_something(if let Some(value) = binding.get_ref() { | help: consider rewriting the `if` into `match` which preserves the extended lifetime | LL ~ do_something({ match Droppy.get_ref() { Some(value) => { LL | LL | value LL ~ } _ => if let Some(value) = Droppy.get_ref() { LL | ... LL | &0 LL ~ }}}); | error[E0716]: temporary value dropped while borrowed --> $DIR/if-let-rescope-borrowck-suggestions.rs:27:33 | LL | } else if let Some(value) = Droppy.get_ref() { | ^^^^^^ creates a temporary value which is freed while still in use ... LL | } else { | - temporary value is freed at the end of this statement | note: lifetimes for temporaries generated in `if let`s have been shortened in Edition 2024 so that they are dropped here instead --> $DIR/if-let-rescope-borrowck-suggestions.rs:30:5 | LL | } else { | ^ help: consider using a `let` binding to create a longer lived value | LL ~ let binding = Droppy; LL ~ do_something(if let Some(value) = Droppy.get_ref() { LL | LL | value LL ~ } else if let Some(value) = binding.get_ref() { | help: consider rewriting the `if` into `match` which preserves the extended lifetime | LL ~ } else { match Droppy.get_ref() { Some(value) => { LL | LL | value LL ~ } _ => { LL | &0 LL ~ }}}); | error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0716`.