//# publish module 0x1.M { struct BoxCopy has copy { f: T } struct BoxDrop has drop { f: T } struct BoxStore has store { f: T } struct BoxKey has key { f: T } struct NeedsCopy { dummy: bool } struct NeedsDrop { dummy: bool } struct NeedsStore { dummy: bool } struct NeedsKey { dummy: bool } } // tests various invalid constraints in script arguments // all tests should give a constraint violation, even without type arguments passed in to 'run' //# run import 0x1.M; main(x: M.NeedsCopy) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsDrop) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsStore) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsKey) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsCopy>) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsDrop>) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsStore>) { label l0: abort 0; } //# run import 0x1.M; main(x: M.NeedsKey>) { label l0: abort 0; }