// run-pass // Test unboxed closure sugar used in object types. #![allow(dead_code)] struct Foo<T,U> { t: T, u: U } trait Getter<A,R> { fn get(&self, arg: A) -> R; } struct Identity; impl<X> Getter<X,X> for Identity { fn get(&self, arg: X) -> X { arg } } fn main() { let x: &dyn Getter<(i32,), (i32,)> = &Identity; let (y,) = x.get((22,)); assert_eq!(y, 22); }