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