rust/compiler/rustc_trait_selection
许杰友 Jieyou Xu (Joe) 765e8c75b0
Rollup merge of #131864 - lrh2000:upcast_reorder, r=WaffleLapkin
Never emit `vptr` for empty/auto traits

Emiting `vptr`s for empty/auto traits is unnecessary (#114942) and causes unsoundness in `trait_upcasting` (#131813). This PR should ensure that we never emit vtables for such traits. See the linked issues for more details.

I'm not sure if I can add tests for the vtable layout. So this PR only adds tests for the soundness hole (i.e., the segmentation fault will disappear after this PR).

Fixes #114942
Fixes #131813

Cc #65991 (tracking issue for `trait_upcasting`)

r? `@WaffleLapkin`  (per https://github.com/rust-lang/rust/issues/131813#issuecomment-2419969745)
2024-10-18 14:52:25 +01:00
..
src Rollup merge of #131864 - lrh2000:upcast_reorder, r=WaffleLapkin 2024-10-18 14:52:25 +01:00
Cargo.toml Swap PredicateObligation to ThinVec 2024-10-12 15:17:16 +01:00
messages.ftl Emit specific message for time<0.3.35 inference failure 2024-08-28 22:53:02 +00:00