diff options
| author | Pavel Grigorenko <GrigorenkoPV@ya.ru> | 2024-09-05 00:34:04 +0300 |
|---|---|---|
| committer | Pavel Grigorenko <GrigorenkoPV@ya.ru> | 2024-09-06 00:30:36 +0300 |
| commit | f6e8a84eeae8b5f7291999966ab82d495ea7da26 (patch) | |
| tree | 00162219b0b327bcc68bf7fb0909defcebcee501 /compiler/rustc_monomorphize | |
| parent | 842d6fc32e3d0d26bb11fbe6a2f6ae2afccc06cb (diff) | |
| download | rust-f6e8a84eeae8b5f7291999966ab82d495ea7da26.tar.gz rust-f6e8a84eeae8b5f7291999966ab82d495ea7da26.zip | |
Make `Ty::boxed_ty` return an `Option`
Diffstat (limited to 'compiler/rustc_monomorphize')
| -rw-r--r-- | compiler/rustc_monomorphize/src/collector.rs | 7 | ||||
| -rw-r--r-- | compiler/rustc_monomorphize/src/lib.rs | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/compiler/rustc_monomorphize/src/collector.rs b/compiler/rustc_monomorphize/src/collector.rs index 8515ab45de2..093697a290c 100644 --- a/compiler/rustc_monomorphize/src/collector.rs +++ b/compiler/rustc_monomorphize/src/collector.rs @@ -1041,8 +1041,11 @@ fn find_vtable_types_for_unsizing<'tcx>( match (source_ty.kind(), target_ty.kind()) { (&ty::Ref(_, a, _), &ty::Ref(_, b, _) | &ty::RawPtr(b, _)) | (&ty::RawPtr(a, _), &ty::RawPtr(b, _)) => ptr_vtable(a, b), - (&ty::Adt(def_a, _), &ty::Adt(def_b, _)) if def_a.is_box() && def_b.is_box() => { - ptr_vtable(source_ty.boxed_ty(), target_ty.boxed_ty()) + (_, _) + if let Some(source_boxed) = source_ty.boxed_ty() + && let Some(target_boxed) = target_ty.boxed_ty() => + { + ptr_vtable(source_boxed, target_boxed) } // T as dyn* Trait diff --git a/compiler/rustc_monomorphize/src/lib.rs b/compiler/rustc_monomorphize/src/lib.rs index b22e8e30465..91101ddd590 100644 --- a/compiler/rustc_monomorphize/src/lib.rs +++ b/compiler/rustc_monomorphize/src/lib.rs @@ -1,5 +1,7 @@ // tidy-alphabetical-start #![feature(array_windows)] +#![feature(if_let_guard)] +#![feature(let_chains)] #![warn(unreachable_pub)] // tidy-alphabetical-end |
