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