//# publish module 0x42.M { import 0x1.signer; struct Foo has key { x: u64, } public foo(account: &signer) { label b0: move_to(move(account), Foo {x: 100u64}); return; } public bar(account: &signer): u64 acquires Foo { let x: u64; label b0: Foo { x } = move_from(signer.address_of(move(account))); return move(x); } } //# run --signers 0x1 import 0x42.M; main(account: signer) { label b0: M.foo(&account); return; } //# run --signers 0x1 import 0x42.M; main(account: signer) { label b0: assert(M.bar(&account) == 100u64, 42); return; }