move-stackless-bytecode 0.3.2

Move stackless bytecode
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// dep: ../../move-stdlib/sources/vector.move

module 0x2::ReadVector {
    use std::vector;

    struct S has drop { a: vector<address> }
    struct Glob has key { b: bool }

    fun extract_addr_from_vec(s: S): address {
        let S { a } = s;
        *vector::borrow(&a, 0)
    } // ret |-> { Formal(0)/a/0 }

    fun read_addr_from_vec(s: S): bool acquires Glob {
        let a = extract_addr_from_vec(s);
        *&borrow_global<Glob>(a).b
    }
}