From 4a2c1a12b662eb590dbe78f7f9d13c2f327d3bb6 Mon Sep 17 00:00:00 2001 From: Ding Xiang Fei Date: Wed, 28 Sep 2022 16:45:09 +0800 Subject: fix unwind drop glue for if-then scopes --- src/test/ui/let-else/issue-102317.rs | 20 ++++++++++++++++++++ src/test/ui/mir/issue-99852.rs | 24 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/test/ui/let-else/issue-102317.rs create mode 100644 src/test/ui/mir/issue-99852.rs (limited to 'src') diff --git a/src/test/ui/let-else/issue-102317.rs b/src/test/ui/let-else/issue-102317.rs new file mode 100644 index 00000000000..7dfaf1358ae --- /dev/null +++ b/src/test/ui/let-else/issue-102317.rs @@ -0,0 +1,20 @@ +// issue #102317 +// run-pass +// compile-flags: --edition 2021 -C opt-level=3 -Zvalidate-mir + +struct SegmentJob; + +impl Drop for SegmentJob { + fn drop(&mut self) {} +} + +pub async fn run() -> Result<(), ()> { + let jobs = Vec::::new(); + let Some(_job) = jobs.into_iter().next() else { + return Ok(()) + }; + + Ok(()) +} + +fn main() {} diff --git a/src/test/ui/mir/issue-99852.rs b/src/test/ui/mir/issue-99852.rs new file mode 100644 index 00000000000..1c675788ee9 --- /dev/null +++ b/src/test/ui/mir/issue-99852.rs @@ -0,0 +1,24 @@ +// check-pass +// compile-flags: -Z validate-mir +#![feature(let_chains)] + +fn lambda() -> U +where + T: Default, + U: Default, +{ + let foo: Result = Ok(T::default()); + let baz: U = U::default(); + + if let Ok(foo) = foo && let Ok(bar) = transform(foo) { + bar + } else { + baz + } +} + +fn transform(input: T) -> Result { + todo!() +} + +fn main() {} -- cgit 1.4.1-3-g733a5 From 5131e9db07fb6cd158cf5bf2aa9fefbad3af1d2b Mon Sep 17 00:00:00 2001 From: X <6884440+dingxiangfei2009@users.noreply.github.com> Date: Fri, 30 Sep 2022 21:04:03 +0800 Subject: use build-pass for the test --- src/test/ui/let-else/issue-102317.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/test/ui/let-else/issue-102317.rs b/src/test/ui/let-else/issue-102317.rs index 7dfaf1358ae..7369b4938ee 100644 --- a/src/test/ui/let-else/issue-102317.rs +++ b/src/test/ui/let-else/issue-102317.rs @@ -1,5 +1,5 @@ // issue #102317 -// run-pass +// build-pass // compile-flags: --edition 2021 -C opt-level=3 -Zvalidate-mir struct SegmentJob; -- cgit 1.4.1-3-g733a5