2023-10-16 17:36:39 +00:00
|
|
|
// skip-filecheck
|
2023-06-08 07:18:34 +00:00
|
|
|
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
|
2017-05-15 12:22:59 +00:00
|
|
|
// check that we clear the "ADT master drop flag" even when there are
|
|
|
|
// no fields to be dropped.
|
|
|
|
|
2023-02-23 00:00:00 +00:00
|
|
|
// EMIT_MIR issue_41888.main.ElaborateDrops.diff
|
2017-05-15 12:22:59 +00:00
|
|
|
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.
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-06-03 00:18:33 +00:00
|
|
|
fn cond() -> bool {
|
|
|
|
false
|
|
|
|
}
|
2017-05-15 12:22:59 +00:00
|
|
|
|
|
|
|
struct K;
|
|
|
|
|
|
|
|
enum E {
|
|
|
|
F(K),
|
2024-06-03 00:18:33 +00:00
|
|
|
G(Box<E>),
|
2017-05-15 12:22:59 +00:00
|
|
|
}
|