module B { struct T {g: u64} public new(g: u64): V#Self.T { return T{g: move(g)}; } public t(this: &V#Self.T) { let g: &u64; let y: u64; g = ©(this).g; y = *move(g); release(move(this)); return; } } //! new-transaction import {{default}}.B; main() { let x: V#B.T; let y: &V#B.T; x = B.new(5); y = &x; B.t(move(y)); return; }