From ee9bdcabe530e9bec17d5beb12c046ce34a4cc29 Mon Sep 17 00:00:00 2001 From: lcnr Date: Fri, 25 Apr 2025 18:40:27 +0000 Subject: [PATCH] add regression test --- .../coroutine/dont-drop-stalled-generators.rs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/ui/coroutine/dont-drop-stalled-generators.rs diff --git a/tests/ui/coroutine/dont-drop-stalled-generators.rs b/tests/ui/coroutine/dont-drop-stalled-generators.rs new file mode 100644 index 0000000000000..8e0c45a9773b3 --- /dev/null +++ b/tests/ui/coroutine/dont-drop-stalled-generators.rs @@ -0,0 +1,25 @@ +//@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) +//@[next] compile-flags: -Znext-solver +//@ check-pass +//@ edition: 2024 + +// This test previously used the `is_copy_raw` query during +// HIR typeck, dropping the list of generators from the current +// body. This then caused a query cycle. + +struct W(*const T); + +impl Clone for W { + fn clone(&self) -> Self { W(self.0) } +} + +impl Copy for W {} + +fn main() { + let coro = async {}; + let x = W(&raw const coro); + let c = || { + let x = x; + }; +}