move-stackless-bytecode 0.1.5

Move stackless bytecode
Documentation
module 0x1::CopyStruct {
    struct S has copy, drop { a: address }

    struct G has key { f: u64 }

    public fun ret_struct(a: address): S {
        S { a }
    }

    // returning a copy of S should behave the same as returning S
    public fun ret_struct_copy(a: address): S {
        let s = S { a };
        *&s
    }

    public fun g() acquires G {
        let s1 = ret_struct_copy(@0x7);
        borrow_global_mut<G>(s1.a).f = 1;

        let s2 = ret_struct(@0x7);
        borrow_global_mut<G>(s2.a).f = 2;
    }
}