about summary refs log tree commit diff
path: root/compiler/rustc_driver_impl/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2025-02-06 13:09:57 +0100
committerGitHub <noreply@github.com>2025-02-06 13:09:57 +0100
commit7ca29360a7983323c0c3a9623ba8eef0cc68e663 (patch)
tree5cb38099a2acf570d91c6757687921794a43c14b /compiler/rustc_driver_impl/src
parent59588250ad973ce69bd15879314c9769e65f36b3 (diff)
parentd0b0b028a68eaee609b235a8cb5627466b2d79fb (diff)
downloadrust-7ca29360a7983323c0c3a9623ba8eef0cc68e663.tar.gz
rust-7ca29360a7983323c0c3a9623ba8eef0cc68e663.zip
Rollup merge of #136073 - compiler-errors:recursive-coro-always, r=oli-obk
Always compute coroutine layout for eagerly emitting recursive layout errors

Detect recursive coroutine layouts even if we don't detect opaque type recursion in the new solver. This is for two reasons:
1. It helps us detect (bad) recursive async function calls in the new solver, which due to its approach to normalization causes us to not detect this via a recursive RPIT (since the opaques are more eagerly revealed in the opaque body).
    * Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/137.
2. It helps us detect (bad) recursive async functions behind AFITs. See the AFIT test that changed for the old solver too.
3. It also greatly simplifies the recursive impl trait check, since I can remove some jankness around how it handles coroutines.
Diffstat (limited to 'compiler/rustc_driver_impl/src')
0 files changed, 0 insertions, 0 deletions