rust/tests/ui/coroutine
Tomasz Miąsko 5161b22143 Fix coroutine validation for mixed panic strategy
Validation introduced in #113124 allows UnwindAction::Continue and
TerminatorKind::Resume to occur only in functions with ABI that can
unwind. The function ABI depends on the panic strategy, which can vary
across crates.

Usually MIR is built and validated in the same crate. The coroutine drop
glue thus far was an exception. As a result validation could fail when
mixing different panic strategies.

Avoid the problem by executing AbortUnwindingCalls along with the
validation.
2023-11-28 21:11:24 +01:00
..
auxiliary Fix coroutine validation for mixed panic strategy 2023-11-28 21:11:24 +01:00
print Show number in error message even for one error 2023-11-24 19:15:52 +01:00
addassign-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
async-coroutine-issue-67158.rs Rename generator folder 2023-10-20 21:14:02 +00:00
async-coroutine-issue-67158.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
auto-trait-regions.rs Rename generator folder 2023-10-20 21:14:02 +00:00
auto-trait-regions.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
borrow-in-tail-expr.rs Rename generator folder 2023-10-20 21:14:02 +00:00
borrowing.rs Rename generator folder 2023-10-20 21:14:02 +00:00
borrowing.stderr dropck_outlives check generator witness needs_drop 2023-11-02 17:20:13 +01:00
clone-impl-async.rs Rename generator folder 2023-10-20 21:14:02 +00:00
clone-impl-async.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
clone-impl-static.rs Rename generator folder 2023-10-20 21:14:02 +00:00
clone-impl-static.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
clone-impl.rs Rename generator folder 2023-10-20 21:14:02 +00:00
clone-impl.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
clone-rpit.rs Allow defining opaques in check_coroutine_obligations 2023-11-22 03:44:13 +00:00
conditional-drop.rs Rename generator folder 2023-10-20 21:14:02 +00:00
control-flow.rs Rename generator folder 2023-10-20 21:14:02 +00:00
coroutine-region-requirements.migrate.stderr Manual find replace updates 2023-11-24 21:04:51 +01:00
coroutine-region-requirements.rs Rename generator folder 2023-10-20 21:14:02 +00:00
coroutine-region-requirements.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coroutine-resume-after-panic.rs Rename generator folder 2023-10-20 21:14:02 +00:00
coroutine-with-nll.rs Rename generator folder 2023-10-20 21:14:02 +00:00
coroutine-with-nll.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coroutine-yielding-or-returning-itself.rs Rename generator folder 2023-10-20 21:14:02 +00:00
coroutine-yielding-or-returning-itself.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
derived-drop-parent-expr.rs Rename generator folder 2023-10-20 21:14:02 +00:00
discriminant.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-and-replace.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-control-flow.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-env.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-track-addassign-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-tracking-parent-expression.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-tracking-parent-expression.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
drop-tracking-yielding-in-match-guards.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-yield-twice.rs Rename generator folder 2023-10-20 21:14:02 +00:00
drop-yield-twice.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
dropck-resume.rs Rename generator folder 2023-10-20 21:14:02 +00:00
dropck-resume.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
dropck.rs Rename generator folder 2023-10-20 21:14:02 +00:00
dropck.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
gen_block_is_coro.rs Feature gate gen blocks, even in 2024 edition 2023-10-27 13:05:48 +00:00
gen_block_is_coro.stderr Make gen blocks implement the Iterator trait 2023-10-27 13:05:48 +00:00
gen_block_is_iter.rs Feature gate gen blocks, even in 2024 edition 2023-10-27 13:05:48 +00:00
gen_block_is_no_future.rs Feature gate gen blocks, even in 2024 edition 2023-10-27 13:05:48 +00:00
gen_block_is_no_future.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
gen_block_iterate.rs Fuse gen blocks 2023-10-27 15:20:44 +00:00
gen_block_move.fixed Handle move generators 2023-10-27 13:05:48 +00:00
gen_block_move.rs Handle move generators 2023-10-27 13:05:48 +00:00
gen_block_move.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
gen_block_panic.rs Only run panic tests on targets that can unwind 2023-10-30 16:32:53 +00:00
gen_block_panic.stderr Only run panic tests on targets that can unwind 2023-10-30 16:32:53 +00:00
gen_block.e2024.stderr Feature gate coroutine yield usage 2023-10-27 13:05:48 +00:00
gen_block.none.stderr Feature gate coroutine yield usage 2023-10-27 13:05:48 +00:00
gen_block.rs Feature gate coroutine yield usage 2023-10-27 13:05:48 +00:00
gen_fn.e2024.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
gen_fn.none.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
gen_fn.rs Talk about gen fn in diagnostics about gen fn 2023-10-30 10:13:12 +00:00
issue-44197.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-45729-unsafe-in-coroutine.mir.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-45729-unsafe-in-coroutine.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-45729-unsafe-in-coroutine.thir.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-48048.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-48048.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-52304.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-52398.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-52398.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
issue-53548-1.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-53548.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-57017.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-57084.rs rename ReLateBound to ReBound 2023-11-13 14:13:54 +00:00
issue-57084.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
issue-57478.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-58888.rs Remove asmjs from tests 2023-10-28 23:11:03 -07:00
issue-61442-stmt-expr-with-drop.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-62506-two_awaits.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-64620-yield-array-element.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-64620-yield-array-element.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-68112.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-68112.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
issue-69017.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-69039.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-87142.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-88653.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-88653.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-91477.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-91477.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-93161.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-102645.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-102645.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-105084.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-105084.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
issue-110929-coroutine-conflict-error-ice.rs dropck_outlives check generator witness needs_drop 2023-11-02 17:20:13 +01:00
issue-113279.rs Rename generator folder 2023-10-20 21:14:02 +00:00
issue-113279.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
iterator-count.rs Rename generator folder 2023-10-20 21:14:02 +00:00
layout-error.rs Rename generator folder 2023-10-20 21:14:02 +00:00
layout-error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
live-upvar-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
match-bindings.rs Rename generator folder 2023-10-20 21:14:02 +00:00
match-bindings.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
metadata-sufficient-for-layout.rs Rename generator folder 2023-10-20 21:14:02 +00:00
metadata-sufficient-for-layout.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nested_coroutine.rs Rename generator folder 2023-10-20 21:14:02 +00:00
niche-in-coroutine.rs Rename generator folder 2023-10-20 21:14:02 +00:00
non-static-is-unpin.rs Rename generator folder 2023-10-20 21:14:02 +00:00
not-send-sync.rs Rename generator folder 2023-10-20 21:14:02 +00:00
not-send-sync.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
overlap-locals.rs Rename generator folder 2023-10-20 21:14:02 +00:00
panic-drops-resume.rs Rename generator folder 2023-10-20 21:14:02 +00:00
panic-drops.rs Rename generator folder 2023-10-20 21:14:02 +00:00
panic-safe.rs Rename generator folder 2023-10-20 21:14:02 +00:00
parent-expression.rs Rename generator folder 2023-10-20 21:14:02 +00:00
parent-expression.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
partial-drop.rs Rename generator folder 2023-10-20 21:14:02 +00:00
partial-initialization-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
partial-initialization-across-yield.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
pattern-borrow.rs Rename generator folder 2023-10-20 21:14:02 +00:00
pattern-borrow.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
pin-box-coroutine.rs Rename generator folder 2023-10-20 21:14:02 +00:00
reborrow-mut-upvar.rs Rename generator folder 2023-10-20 21:14:02 +00:00
reborrow-mut-upvar.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
ref-escapes-but-not-over-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
ref-escapes-but-not-over-yield.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
ref-upvar-not-send.rs Rename generator folder 2023-10-20 21:14:02 +00:00
ref-upvar-not-send.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
reinit-in-match-guard.rs Rename generator folder 2023-10-20 21:14:02 +00:00
resume-after-return.rs Rename generator folder 2023-10-20 21:14:02 +00:00
resume-arg-late-bound.rs Rename generator folder 2023-10-20 21:14:02 +00:00
resume-arg-late-bound.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
resume-arg-size.rs Rename generator folder 2023-10-20 21:14:02 +00:00
resume-live-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
retain-resume-ref.rs Rename generator folder 2023-10-20 21:14:02 +00:00
retain-resume-ref.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
self_referential_gen_block.rs Use targetted diagnostic for borrow across yield error 2023-10-27 13:05:49 +00:00
self_referential_gen_block.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
size-moved-locals.rs Remove asmjs from tests 2023-10-28 23:11:03 -07:00
sized-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
sized-yield.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
smoke-resume-args.rs Rename generator folder 2023-10-20 21:14:02 +00:00
smoke.rs Rename generator folder 2023-10-20 21:14:02 +00:00
static-coroutine.rs Rename generator folder 2023-10-20 21:14:02 +00:00
static-mut-reference-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
static-not-unpin.current.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
static-not-unpin.next.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
static-not-unpin.rs Rename generator folder 2023-10-20 21:14:02 +00:00
static-reference-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
too-live-local-in-immovable-gen.rs Rename generator folder 2023-10-20 21:14:02 +00:00
too-live-local-in-immovable-gen.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
too-many-parameters.rs Rename generator folder 2023-10-20 21:14:02 +00:00
too-many-parameters.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
type-mismatch-error.rs Rename generator folder 2023-10-20 21:14:02 +00:00
type-mismatch-error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
type-mismatch-signature-deduction.rs Rename generator folder 2023-10-20 21:14:02 +00:00
type-mismatch-signature-deduction.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
unresolved-ct-var.rs Rename generator folder 2023-10-20 21:14:02 +00:00
unresolved-ct-var.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unsized-capture-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
unsized-capture-across-yield.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unsized-local-across-yield.rs Rename generator folder 2023-10-20 21:14:02 +00:00
unsized-local-across-yield.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unwind-abort-mix.rs Fix coroutine validation for mixed panic strategy 2023-11-28 21:11:24 +01:00
witness-ignore-fake-reads.rs generator layout: ignore fake borrows 2023-11-08 22:55:28 +01:00
xcrate-reachable.rs Rename generator folder 2023-10-20 21:14:02 +00:00
xcrate.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-args-rev.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-args-rev.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-args.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-args.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
yield-in-const.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-const.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
yield-in-function.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-function.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
yield-in-initializer.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-initializer.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-static.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-in-static.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
yield-outside-coroutine-issue-78653.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-outside-coroutine-issue-78653.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
yield-subtype.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-subtype.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
yield-while-iterating.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-while-iterating.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
yield-while-local-borrowed.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-while-local-borrowed.stderr Rename generator folder 2023-10-20 21:14:02 +00:00
yield-while-ref-reborrowed.rs Rename generator folder 2023-10-20 21:14:02 +00:00
yield-while-ref-reborrowed.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
yielding-in-match-guards.rs Rename generator folder 2023-10-20 21:14:02 +00:00