about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorDylan DPC <99973273+Dylan-DPC@users.noreply.github.com>2022-04-12 23:17:01 +0200
committerGitHub <noreply@github.com>2022-04-12 23:17:01 +0200
commite96304b73d7913ab4bc14358b0d3fee7586ab62a (patch)
treef4db843f4bf7b5ed135024b22c30c38777b68b8b /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parentd63a46ad2845683266479ee6e945ac476a85edc6 (diff)
parent6d0349d2ea97e2a3e208e0342a6a95d6b90d92ea (diff)
downloadrust-e96304b73d7913ab4bc14358b0d3fee7586ab62a.tar.gz
rust-e96304b73d7913ab4bc14358b0d3fee7586ab62a.zip
Rollup merge of #95973 - oli-obk:tait_ub3, r=compiler-errors
prevent opaque types from appearing in impl headers

cc `@lqd`

opaque types are not distinguishable from their hidden type at the codegen stage. So we could either end up with cases where the hidden type doesn't implement the trait (which will thus ICE) or where the hidden type does implement the trait (so we'd be using its impl instead of the one written for the opaque type). This can even lead to unsound behaviour without unsafe code.

Fixes https://github.com/rust-lang/rust/issues/86411.
Fixes https://github.com/rust-lang/rust/issues/84660.

rebase of #87382 plus some diagnostic tweaks
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions