rust/compiler/rustc_hir_analysis/src
Matthias Krüger 7ca29360a7
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.
2025-02-06 13:09:57 +01:00
..
check Eagerly detect coroutine recursion pre-mono when possible 2025-02-05 18:36:17 +00:00
coherence Rename tcx.ensure() to tcx.ensure_ok() 2025-02-01 12:38:54 +11:00
collect Rollup merge of #136550 - compiler-errors:rpitit-empty-body, r=oli-obk 2025-02-05 19:53:47 -08:00
errors Use a different hir type for patterns in pattern types than we use in match patterns 2025-02-03 08:18:30 +00:00
hir_ty_lowering Use a different hir type for patterns in pattern types than we use in match patterns 2025-02-03 08:18:30 +00:00
impl_wf_check Fix a comment typo. 2025-01-31 08:28:14 +11:00
outlives Remove an unnecessary loop label. 2025-01-31 08:28:28 +11:00
variance Remove xform submodule. 2025-01-31 08:28:28 +11:00
autoderef.rs Rename structurally_normalize to structurally_normalize_ty 2025-01-22 07:04:53 +00:00
bounds.rs Merge HostPolarity and BoundConstness 2024-10-30 16:23:16 +00:00
check_unused.rs Remove #[macro_use] extern crate tracing from rustc_hir_analysis. 2024-08-30 17:14:59 +10:00
collect.rs Rename tcx.ensure() to tcx.ensure_ok() 2025-02-01 12:38:54 +11:00
constrained_generic_params.rs Remove #[macro_use] extern crate tracing from rustc_hir_analysis. 2024-08-30 17:14:59 +10:00
delegation.rs Remove unnecessary builders. 2025-01-31 08:27:15 +11:00
errors.rs Use a different hir type for patterns in pattern types than we use in match patterns 2025-02-03 08:18:30 +00:00
hir_wf_check.rs visit_x_unambig 2025-01-23 06:01:36 +00:00
impl_wf_check.rs Rename tcx.ensure() to tcx.ensure_ok() 2025-02-01 12:38:54 +11:00
lib.rs Use an explicit type when discarding the result of tcx.ensure_ok() 2025-02-01 12:42:41 +11:00