diff options
| author | bors <bors@rust-lang.org> | 2023-02-15 20:56:07 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-02-15 20:56:07 +0000 |
| commit | c5283576ec18937d98889679a54aa8f2dee2b875 (patch) | |
| tree | 950ca5fd9d874fa9f7c990eee71df8a14e5ee58c /compiler/rustc_middle/src/query | |
| parent | 2d14db321b043ffc579a7461464c88d7e3f54f83 (diff) | |
| parent | b096f0e0f01f9cc1f13d4d664fda93f9efe95485 (diff) | |
| download | rust-c5283576ec18937d98889679a54aa8f2dee2b875.tar.gz rust-c5283576ec18937d98889679a54aa8f2dee2b875.zip | |
Auto merge of #108012 - compiler-errors:issue-107999, r=oli-obk
Don't ICE in `might_permit_raw_init` if reference is polymorphic Emitting optimized MIR for a polymorphic function may require computing layout of a type that isn't (yet) known. This happens in the instcombine pass, for example. Let's fail gracefully in that condition. cc `@saethlin` fixes #107999
Diffstat (limited to 'compiler/rustc_middle/src/query')
| -rw-r--r-- | compiler/rustc_middle/src/query/mod.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index f02e3a9aa29..4b34f6b4881 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -2143,12 +2143,12 @@ rustc_queries! { separate_provide_extern } - query permits_uninit_init(key: ty::ParamEnvAnd<'tcx, TyAndLayout<'tcx>>) -> bool { - desc { "checking to see if `{}` permits being left uninit", key.value.ty } + query permits_uninit_init(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> Result<bool, ty::layout::LayoutError<'tcx>> { + desc { "checking to see if `{}` permits being left uninit", key.value } } - query permits_zero_init(key: ty::ParamEnvAnd<'tcx, TyAndLayout<'tcx>>) -> bool { - desc { "checking to see if `{}` permits being left zeroed", key.value.ty } + query permits_zero_init(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> Result<bool, ty::layout::LayoutError<'tcx>> { + desc { "checking to see if `{}` permits being left zeroed", key.value } } query compare_impl_const( |
