// run-pass fn g(x: X) -> X { return x; } #[derive(Clone)] struct Pair { a: T, b: T } fn f(t: T) -> Pair { let x: Pair = Pair {a: t.clone(), b: t}; return g::>(x); } pub fn main() { let b = f::(10); println!("{}" ,b.a); println!("{}", b.b); assert_eq!(b.a, 10); assert_eq!(b.b, 10); }