//# publish module 0x42::Test { struct Cup { value: T } public fun t1(x: T): T { x } public fun t2(x: T): vector { vector[x] } public fun t3(x: T): Cup { Cup { value: x } } public fun t4(x: T, y: U): (U, T) { (y, x) } } //# run 0x42::Test::t1 --type-args u64 --args 0 //# run 0x42::Test::t1 --type-args u8 --args 0u8 //# run 0x42::Test::t1 --type-args vector --args b"wat" //# run 0x42::Test::t1 --type-args 0x42::Test::Cup --args 0 //# run 0x42::Test::t2 --type-args u64 --args 0 //# run 0x42::Test::t2 --type-args u8 --args 0u8 //# run 0x42::Test::t2 --type-args vector --args b"wat" //# run 0x42::Test::t2 --type-args 0x42::Test::Cup --args 0 //# run 0x42::Test::t3 --type-args u64 --args 0 //# run 0x42::Test::t3 --type-args u8 --args 0u8 //# run 0x42::Test::t3 --type-args vector --args b"wat" //# run 0x42::Test::t3 --type-args 0x42::Test::Cup --args 0 //# run 0x42::Test::t4 --type-args u64 u8 --args 0 0u8 //# run 0x42::Test::t4 --type-args u8 bool --args 0u8 false //# run 0x42::Test::t4 --type-args vector 0x42::Test::Cup --args b"wat" 0 //# run 0x42::Test::t4 --type-args 0x42::Test::Cup address --args 0 @0x42