address 0x42 { module M { struct NoC has drop, store, key {} struct NoK has copy, drop, store {} struct Cup { f: T } struct Box has copy, drop, store, key { f: T } struct Pair has copy, drop, store, key { f1: T1, f2: T2 } fun c() {} fun k() {} fun cds() {} struct Sc {} struct Sk {} struct Scds {} // tests that a variety of constraint instantiations are all invalid fun t() { // prims c(); c>(); c>(); k(); k(); k>(); k>(); cds(); cds>(); cds>>(); let Sc {} = Sc {}; let Sc {} = Sc> {}; let Sc {} = Sc> {}; let Sk {} = Sk {}; let Sk {} = Sk {}; let Sk {} = Sk> {}; let Sk {} = Sk> {}; let Scds {} = Scds {}; let Scds {} = Scds> {}; let Scds {} = Scds>> {}; } } }