1 // run-pass 2 // Test unboxed closure sugar used in object types. 3 4 #![allow(dead_code)] 5 6 struct Foo<T,U> { 7 t: T, u: U 8 } 9 10 trait Getter<A,R> { get(&self, arg: A) -> R11 fn get(&self, arg: A) -> R; 12 } 13 14 struct Identity; 15 impl<X> Getter<X,X> for Identity { get(&self, arg: X) -> X16 fn get(&self, arg: X) -> X { 17 arg 18 } 19 } 20 main()21fn main() { 22 let x: &dyn Getter<(i32,), (i32,)> = &Identity; 23 let (y,) = x.get((22,)); 24 assert_eq!(y, 22); 25 } 26