1 // this tests move up progration, which is not yet implemented
3 // Check codegen for assignments (`a = b`) where the left-hand-side is
4 // not yet initialized. Assignments tend to be absent in simple code,
5 // so subtle breakage in them can leave a quite hard-to-find trail of
8 // ignore-tidy-linelength
14 // Since boolean does not require drop, this can be a simple
18 let drop_x : Option<Box<u32>> = None;
21 // Since the type of `drop_y` has drop, we generate a `replace`
27 // START rustc.main.SimplifyCfg-initial.after.mir
31 // FakeRead(ForLet, _1);
38 // _4 = std::option::Option::<std::boxed::Box<u32>>::None;
39 // FakeRead(ForLet, _4);
40 // AscribeUserType(_4, o, UserTypeProjection { base: UserType(1), projs: [] });
44 // replace(_5 <- move _6) -> [return: bb2, unwind: bb5];
48 // drop(_6) -> [return: bb6, unwind: bb4];
54 // END rustc.main.SimplifyCfg-initial.after.mir