diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2025-07-20 23:12:44 +0000 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2025-07-20 23:15:24 +0000 |
| commit | 538b0004bc3a64004c9935c91231ed1d518ee35f (patch) | |
| tree | b6f299fcc7230e351374b690502f91698b2c060a /compiler/rustc_mir_transform/src | |
| parent | 1987471d05854cc8b5014dab44e7648834c02213 (diff) | |
| download | rust-538b0004bc3a64004c9935c91231ed1d518ee35f.tar.gz rust-538b0004bc3a64004c9935c91231ed1d518ee35f.zip | |
Also bail out if predicates contain errors.
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/impossible_predicates.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_mir_transform/src/impossible_predicates.rs b/compiler/rustc_mir_transform/src/impossible_predicates.rs index 5f116d7716d..9a0de3c9326 100644 --- a/compiler/rustc_mir_transform/src/impossible_predicates.rs +++ b/compiler/rustc_mir_transform/src/impossible_predicates.rs @@ -41,7 +41,7 @@ impl<'tcx> MirPass<'tcx> for ImpossiblePredicates { tracing::trace!(def_id = ?body.source.def_id()); let predicates = tcx.predicates_of(body.source.def_id()).instantiate_identity(tcx); tracing::trace!(?predicates); - let predicates = predicates + let predicates: Vec<_> = predicates .predicates .into_iter() .filter(|p| { @@ -54,7 +54,7 @@ impl<'tcx> MirPass<'tcx> for ImpossiblePredicates { }) .collect(); tracing::trace!(?predicates); - if traits::impossible_predicates(tcx, predicates) { + if predicates.references_error() || traits::impossible_predicates(tcx, predicates) { trace!("found unsatisfiable predicates"); // Clear the body to only contain a single `unreachable` statement. let bbs = body.basic_blocks.as_mut(); |
