//# publish module 0x42.M { import 0x1.signer; struct Box has key, store { x: T } struct Box3 has store { x: Self.Box> } struct Box7 has store { x: Self.Box3> } struct Box15 has store { x: Self.Box7> } struct Box31 has store { x: Self.Box15> } struct Box63 has store { x: Self.Box31> } struct Box127 has key, store { x: Self.Box63> } struct Box255 has key, store { x: Self.Box127> } public box3(x: T): Self.Box3 { label b0: return Box3 { x: Box> { x: Box { x: move(x) } } }; } public box7(x: T): Self.Box7 { label b0: return Box7 { x: Self.box3>(Self.box3(move(x))) }; } public box15(x: T): Self.Box15 { label b0: return Box15 { x: Self.box7>(Self.box7(move(x))) }; } public box31(x: T): Self.Box31 { label b0: return Box31 { x: Self.box15>(Self.box15(move(x))) }; } public box63(x: T): Self.Box63 { label b0: return Box63 { x: Self.box31>(Self.box31(move(x))) }; } public box127(x: T): Self.Box127 { label b0: return Box127 { x: Self.box63>(Self.box63(move(x))) }; } public box255(x: T): Self.Box255 { label b0: return Box255 { x: Self.box127>(Self.box127(move(x))) }; } public publish_128(account: &signer) { label b0: move_to>(move(account), Self.box127(true)); return; } public publish_256(account: &signer) { label b0: move_to>(move(account), Self.box255(true)); return; } public publish_257(account: &signer) { label b0: move_to>>(move(account), Box> { x: Self.box255(true) }); return; } } //# run --args @0x1 import 0x42.M; main(account: signer) { label b0: M.publish_128(&account); return; } //# run --args @0x2 import 0x42.M; main(account: signer) { label b0: M.publish_256(&account); return; } //# run --args @0x3 import 0x42.M; main(account: signer) { label b0: // hits VM_MAX_VALUE_DEPTH_REACHED M.publish_257(&account); return; }