diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2023-04-14 18:59:17 +0000 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2023-04-23 10:04:41 +0000 |
| commit | 7efcf67a3b96c8ff27bd80ce9df9fa84e93eb3a3 (patch) | |
| tree | 502987f48a687d67aaf63ea99c5e7735da18d465 /compiler/rustc_mir_transform/src | |
| parent | 21fab435da99d6ef14c1c870650ee976499564f3 (diff) | |
| download | rust-7efcf67a3b96c8ff27bd80ce9df9fa84e93eb3a3.tar.gz rust-7efcf67a3b96c8ff27bd80ce9df9fa84e93eb3a3.zip | |
Also reveal constants before MIR opts.
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/reveal_all.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/reveal_all.rs b/compiler/rustc_mir_transform/src/reveal_all.rs index abe6cb285f5..23442f8b97b 100644 --- a/compiler/rustc_mir_transform/src/reveal_all.rs +++ b/compiler/rustc_mir_transform/src/reveal_all.rs @@ -35,10 +35,22 @@ impl<'tcx> MutVisitor<'tcx> for RevealAllVisitor<'tcx> { } #[inline] + fn visit_constant(&mut self, constant: &mut Constant<'tcx>, _: Location) { + // We have to use `try_normalize_erasing_regions` here, since it's + // possible that we visit impossible-to-satisfy where clauses here, + // see #91745 + if let Ok(c) = self.tcx.try_normalize_erasing_regions(self.param_env, constant.literal) { + constant.literal = c; + } + } + + #[inline] fn visit_ty(&mut self, ty: &mut Ty<'tcx>, _: TyContext) { // We have to use `try_normalize_erasing_regions` here, since it's // possible that we visit impossible-to-satisfy where clauses here, // see #91745 - *ty = self.tcx.try_normalize_erasing_regions(self.param_env, *ty).unwrap_or(*ty); + if let Ok(t) = self.tcx.try_normalize_erasing_regions(self.param_env, *ty) { + *ty = t; + } } } |
