mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 00:34:06 +00:00
00eec854f1
to make it easy to understand chnages made by elaboration.
25 lines
499 B
Rust
25 lines
499 B
Rust
// ignore-wasm32-bare compiled with panic=abort by default
|
|
// check that we clear the "ADT master drop flag" even when there are
|
|
// no fields to be dropped.
|
|
|
|
// EMIT_MIR issue_41888.main.ElaborateDrops.diff
|
|
fn main() {
|
|
let e;
|
|
if cond() {
|
|
e = E::F(K);
|
|
if let E::F(_k) = e {
|
|
// older versions of rustc used to not clear the
|
|
// drop flag for `e` in this path.
|
|
}
|
|
}
|
|
}
|
|
|
|
fn cond() -> bool { false }
|
|
|
|
struct K;
|
|
|
|
enum E {
|
|
F(K),
|
|
G(Box<E>)
|
|
}
|