about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-02-21 04:22:23 +0000
committerbors <bors@rust-lang.org>2023-02-21 04:22:23 +0000
commitf715e430aac0de131e2ad21804013ea405722a66 (patch)
tree939698b73a07d4fb71bc0a27a9c8e0054986d42f /compiler/rustc_trait_selection/src
parent2deff71719a32af76eb4493ddb1dc4653fb88cad (diff)
parent054c76d6580eb84139cb619c3dff8865828a9fbc (diff)
downloadrust-f715e430aac0de131e2ad21804013ea405722a66.tar.gz
rust-f715e430aac0de131e2ad21804013ea405722a66.zip
Auto merge of #107728 - RalfJung:miri-dyn-star, r=RalfJung,oli-obk
Miri: basic dyn* support

As usual I am very unsure about the dynamic dispatch stuff, but it passes even the `Pin<&mut dyn* Trait>` test so that is something.

TBH I think it was a mistake to make `dyn Trait` and `dyn* Trait` part of the same `TyKind` variant. Almost everywhere in Miri this lead to the wrong default behavior, resulting in strange ICEs instead of nice "unimplemented" messages. The two types describe pretty different runtime data layout after all.

Strangely I did not need to do the equivalent of [this diff](https://github.com/rust-lang/rust/pull/106532#discussion_r1087095963) in Miri. Maybe that is because the unsizing logic matches on `ty::Dynamic(.., ty::Dyn)` already? In `unsized_info` I don't think the `target_dyn_kind` can be `DynStar`, since then it wouldn't be unsized!

r? `@oli-obk` Cc `@eholk` (dyn-star) https://github.com/rust-lang/rust/issues/102425
Diffstat (limited to 'compiler/rustc_trait_selection/src')
0 files changed, 0 insertions, 0 deletions