forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
downgrade borrowck suggestion level due to possible span conflict
- Loading branch information
1 parent
e2120a7
commit 89682a5
Showing
4 changed files
with
108 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,89 @@ | ||
error[E0716]: temporary value dropped while borrowed | ||
--> $DIR/if-let-rescope-borrowck-suggestions.rs:23:39 | ||
--> $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: lifetime for temporaries generated in `if let`s have been shorted in Edition 2024 | ||
--> $DIR/if-let-rescope-borrowck-suggestions.rs:23:65 | ||
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 }}); | ||
| ~~~~~ ++++++++++++++++ ~~~~ + | ||
LL | do_something({ match Droppy.get_ref() { Some(value) => { value } _ => { &0 }}}); | ||
| ~~~~~~~ ++++++++++++++++ ~~~~ ++ | ||
|
||
error: aborting due to 1 previous error | ||
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`. |