Ding Xiang Fei | 9b56640 | 2022-07-20 16:35:12 | [diff] [blame] | 1 | // run-pass |
| 2 | // |
| 3 | // from issue #93951, where borrowck complained the temporary that `foo(&x)` was stored in was to |
| 4 | // be dropped sometime after `x` was. It then suggested adding a semicolon that was already there. |
| 5 | |
est31 | 9c7ae38 | 2022-02-27 06:08:31 | [diff] [blame] | 6 | |
Ding Xiang Fei | 9b56640 | 2022-07-20 16:35:12 | [diff] [blame] | 7 | use std::fmt::Debug; |
| 8 | |
| 9 | fn foo<'a>(x: &'a str) -> Result<impl Debug + 'a, ()> { |
| 10 | Ok(x) |
| 11 | } |
| 12 | |
| 13 | fn let_else() { |
| 14 | let x = String::from("Hey"); |
| 15 | let Ok(_) = foo(&x) else { return }; |
| 16 | } |
| 17 | |
| 18 | fn if_let() { |
| 19 | let x = String::from("Hey"); |
| 20 | let _ = if let Ok(s) = foo(&x) { s } else { return }; |
| 21 | } |
| 22 | |
| 23 | fn main() { |
| 24 | let_else(); |
| 25 | if_let(); |
| 26 | } |