a423fa7b46
Correctly handle aggregates in DataflowConstProp The previous implementation from https://github.com/rust-lang/rust/pull/107411 flooded target of an aggregate assignment with `Bottom`, corresponding to the `deinit` that the interpreter does. As a consequence, when assigning `target = Enum::Variant#i(...)` all the `(target as Variant#j)` were at `Bottom` while they should have been `Top`. This PR replaces that flooding with `Top`. Aside, it corrects a second bug where the wrong place would be used to assign to enum variant fields, resulting to nothing happening. Fixes https://github.com/rust-lang/rust/issues/108166 |
||
---|---|---|
.. | ||
cast.main.DataflowConstProp.diff | ||
cast.rs | ||
checked.main.DataflowConstProp.diff | ||
checked.rs | ||
enum.multiple.DataflowConstProp.diff | ||
enum.mutate_discriminant.DataflowConstProp.diff | ||
enum.rs | ||
enum.simple.DataflowConstProp.diff | ||
if.main.DataflowConstProp.diff | ||
if.rs | ||
inherit_overflow.main.DataflowConstProp.diff | ||
inherit_overflow.rs | ||
issue_81605.f.DataflowConstProp.diff | ||
issue_81605.rs | ||
ref_without_sb.main.DataflowConstProp.diff | ||
ref_without_sb.rs | ||
repr_transparent.main.DataflowConstProp.diff | ||
repr_transparent.rs | ||
self_assign_add.main.DataflowConstProp.diff | ||
self_assign_add.rs | ||
self_assign.main.DataflowConstProp.diff | ||
self_assign.rs | ||
sibling_ptr.main.DataflowConstProp.diff | ||
sibling_ptr.rs | ||
struct.main.DataflowConstProp.diff | ||
struct.rs | ||
terminator.main.DataflowConstProp.diff | ||
terminator.rs | ||
tuple.main.DataflowConstProp.diff | ||
tuple.rs |